eric7/PipInterface/PipFreezeDialog.py

branch
eric7
changeset 8356
68ec9c3d4de5
parent 8327
666c2b81cbb7
child 8358
144a6b854f70
equal deleted inserted replaced
8355:8a7677a63c8d 8356:68ec9c3d4de5
12 from PyQt6.QtCore import pyqtSlot, Qt 12 from PyQt6.QtCore import pyqtSlot, Qt
13 from PyQt6.QtWidgets import ( 13 from PyQt6.QtWidgets import (
14 QDialog, QDialogButtonBox, QAbstractButton, QApplication 14 QDialog, QDialogButtonBox, QAbstractButton, QApplication
15 ) 15 )
16 16
17 from E5Gui import E5MessageBox, E5FileDialog 17 from E5Gui import EricMessageBox, EricFileDialog
18 from E5Gui.E5PathPicker import E5PathPickerModes 18 from E5Gui.EricPathPicker import EricPathPickerModes
19 from E5Gui.E5Application import e5App 19 from E5Gui.EricApplication import ericApp
20 from E5Gui.E5OverrideCursor import E5OverrideCursor 20 from E5Gui.EricOverrideCursor import EricOverrideCursor
21 21
22 from .Ui_PipFreezeDialog import Ui_PipFreezeDialog 22 from .Ui_PipFreezeDialog import Ui_PipFreezeDialog
23 23
24 import Utilities 24 import Utilities
25 25
44 self.__refreshButton = self.buttonBox.addButton( 44 self.__refreshButton = self.buttonBox.addButton(
45 self.tr("&Refresh"), QDialogButtonBox.ButtonRole.ActionRole) 45 self.tr("&Refresh"), QDialogButtonBox.ButtonRole.ActionRole)
46 46
47 self.__environmentName = "" 47 self.__environmentName = ""
48 48
49 self.requirementsFilePicker.setMode(E5PathPickerModes.SAVE_FILE_MODE) 49 self.requirementsFilePicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
50 self.requirementsFilePicker.setFilters( 50 self.requirementsFilePicker.setFilters(
51 self.tr("Text Files (*.txt);;All Files (*)")) 51 self.tr("Text Files (*.txt);;All Files (*)"))
52 52
53 self.__pip = pip 53 self.__pip = pip
54 54
111 def __refresh(self): 111 def __refresh(self):
112 """ 112 """
113 Private slot to refresh the displayed list. 113 Private slot to refresh the displayed list.
114 """ 114 """
115 ok = ( 115 ok = (
116 E5MessageBox.yesNo( 116 EricMessageBox.yesNo(
117 self, 117 self,
118 self.tr("Generate Requirements"), 118 self.tr("Generate Requirements"),
119 self.tr("""The requirements were changed. Do you want""" 119 self.tr("""The requirements were changed. Do you want"""
120 """ to overwrite these changes?""")) 120 """ to overwrite these changes?"""))
121 if self.__requirementsEdited else 121 if self.__requirementsEdited else
147 self.requirementsFilePicker.text()) 147 self.requirementsFilePicker.text())
148 if os.path.exists(fileName): 148 if os.path.exists(fileName):
149 args.append("--requirement") 149 args.append("--requirement")
150 args.append(fileName) 150 args.append(fileName)
151 151
152 with E5OverrideCursor(): 152 with EricOverrideCursor():
153 success, output = self.__pip.runProcess(args, interpreter) 153 success, output = self.__pip.runProcess(args, interpreter)
154 154
155 if success: 155 if success:
156 self.requirementsEdit.setPlainText(output) 156 self.requirementsEdit.setPlainText(output)
157 self.__requirementsAvailable = True 157 self.__requirementsAvailable = True
172 bool(self.requirementsFilePicker.text()) 172 bool(self.requirementsFilePicker.text())
173 ) 173 )
174 self.saveToButton.setEnabled(self.__requirementsAvailable) 174 self.saveToButton.setEnabled(self.__requirementsAvailable)
175 self.copyButton.setEnabled(self.__requirementsAvailable) 175 self.copyButton.setEnabled(self.__requirementsAvailable)
176 176
177 aw = e5App().getObject("ViewManager").activeWindow() 177 aw = ericApp().getObject("ViewManager").activeWindow()
178 if aw and self.__requirementsAvailable: 178 if aw and self.__requirementsAvailable:
179 self.insertButton.setEnabled(True) 179 self.insertButton.setEnabled(True)
180 self.replaceAllButton.setEnabled(True) 180 self.replaceAllButton.setEnabled(True)
181 self.replaceSelectionButton.setEnabled( 181 self.replaceSelectionButton.setEnabled(
182 aw.hasSelectedText()) 182 aw.hasSelectedText())
191 191
192 @param fileName name of the file to write to 192 @param fileName name of the file to write to
193 @type str 193 @type str
194 """ 194 """
195 if os.path.exists(fileName): 195 if os.path.exists(fileName):
196 ok = E5MessageBox.warning( 196 ok = EricMessageBox.warning(
197 self, 197 self,
198 self.tr("Generate Requirements"), 198 self.tr("Generate Requirements"),
199 self.tr("""The file <b>{0}</b> already exists. Do you want""" 199 self.tr("""The file <b>{0}</b> already exists. Do you want"""
200 """ to overwrite it?""").format(fileName)) 200 """ to overwrite it?""").format(fileName))
201 if not ok: 201 if not ok:
203 203
204 try: 204 try:
205 with open(fileName, "w") as f: 205 with open(fileName, "w") as f:
206 f.write(self.requirementsEdit.toPlainText()) 206 f.write(self.requirementsEdit.toPlainText())
207 except OSError as err: 207 except OSError as err:
208 E5MessageBox.critical( 208 EricMessageBox.critical(
209 self, 209 self,
210 self.tr("Generate Requirements"), 210 self.tr("Generate Requirements"),
211 self.tr("""<p>The requirements could not be written""" 211 self.tr("""<p>The requirements could not be written"""
212 """ to <b>{0}</b>.</p><p>Reason: {1}</p>""") 212 """ to <b>{0}</b>.</p><p>Reason: {1}</p>""")
213 .format(fileName, str(err))) 213 .format(fileName, str(err)))
223 @pyqtSlot() 223 @pyqtSlot()
224 def on_saveToButton_clicked(self): 224 def on_saveToButton_clicked(self):
225 """ 225 """
226 Private slot to write the requirements text to a new file. 226 Private slot to write the requirements text to a new file.
227 """ 227 """
228 fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( 228 fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
229 self, 229 self,
230 self.tr("Generate Requirements"), 230 self.tr("Generate Requirements"),
231 os.path.expanduser("~"), 231 os.path.expanduser("~"),
232 self.tr("Text Files (*.txt);;All Files (*)"), 232 self.tr("Text Files (*.txt);;All Files (*)"),
233 None, 233 None,
234 E5FileDialog.DontConfirmOverwrite 234 EricFileDialog.DontConfirmOverwrite
235 ) 235 )
236 if fileName: 236 if fileName:
237 ext = os.path.splitext(fileName)[1] 237 ext = os.path.splitext(fileName)[1]
238 if not ext: 238 if not ext:
239 ex = selectedFilter.split("(*")[1].split(")")[0] 239 ex = selectedFilter.split("(*")[1].split(")")[0]
254 def on_insertButton_clicked(self): 254 def on_insertButton_clicked(self):
255 """ 255 """
256 Private slot to insert the requirements text at the cursor position 256 Private slot to insert the requirements text at the cursor position
257 of the current editor. 257 of the current editor.
258 """ 258 """
259 aw = e5App().getObject("ViewManager").activeWindow() 259 aw = ericApp().getObject("ViewManager").activeWindow()
260 if aw: 260 if aw:
261 aw.beginUndoAction() 261 aw.beginUndoAction()
262 aw.insert(self.requirementsEdit.toPlainText()) 262 aw.insert(self.requirementsEdit.toPlainText())
263 aw.endUndoAction() 263 aw.endUndoAction()
264 264
266 def on_replaceSelectionButton_clicked(self): 266 def on_replaceSelectionButton_clicked(self):
267 """ 267 """
268 Private slot to replace the selected text of the current editor 268 Private slot to replace the selected text of the current editor
269 with the requirements text. 269 with the requirements text.
270 """ 270 """
271 aw = e5App().getObject("ViewManager").activeWindow() 271 aw = ericApp().getObject("ViewManager").activeWindow()
272 if aw: 272 if aw:
273 aw.beginUndoAction() 273 aw.beginUndoAction()
274 aw.replaceSelectedText(self.requirementsEdit.toPlainText()) 274 aw.replaceSelectedText(self.requirementsEdit.toPlainText())
275 aw.endUndoAction() 275 aw.endUndoAction()
276 276
278 def on_replaceAllButton_clicked(self): 278 def on_replaceAllButton_clicked(self):
279 """ 279 """
280 Private slot to replace the text of the current editor with the 280 Private slot to replace the text of the current editor with the
281 requirements text. 281 requirements text.
282 """ 282 """
283 aw = e5App().getObject("ViewManager").activeWindow() 283 aw = ericApp().getObject("ViewManager").activeWindow()
284 if aw: 284 if aw:
285 aw.setText(self.requirementsEdit.toPlainText()) 285 aw.setText(self.requirementsEdit.toPlainText())

eric ide

mercurial