src/eric7/Preferences/ConfigurationPages/EditorFilePage.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9405
99e65bd24e7d
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
26 26
27 class EditorFilePage(ConfigurationPageBase, Ui_EditorFilePage): 27 class EditorFilePage(ConfigurationPageBase, Ui_EditorFilePage):
28 """ 28 """
29 Class implementing the Editor File Handling configuration page. 29 Class implementing the Editor File Handling configuration page.
30 """ 30 """
31
31 def __init__(self): 32 def __init__(self):
32 """ 33 """
33 Constructor 34 Constructor
34 """ 35 """
35 super().__init__() 36 super().__init__()
36 self.setupUi(self) 37 self.setupUi(self)
37 self.setObjectName("EditorFilePage") 38 self.setObjectName("EditorFilePage")
38 39
39 self.__showsOpenFilters = True 40 self.__showsOpenFilters = True
40 self.openFileFilters = Preferences.getEditor( 41 self.openFileFilters = Preferences.getEditor("AdditionalOpenFilters")[:]
41 "AdditionalOpenFilters")[:] 42 self.saveFileFilters = Preferences.getEditor("AdditionalSaveFilters")[:]
42 self.saveFileFilters = Preferences.getEditor(
43 "AdditionalSaveFilters")[:]
44 self.fileFiltersList.addItems(self.openFileFilters) 43 self.fileFiltersList.addItems(self.openFileFilters)
45 44
46 self.__setDefaultFiltersLists() 45 self.__setDefaultFiltersLists()
47 46
48 self.defaultEncodingComboBox.addItems(sorted(supportedCodecs)) 47 self.defaultEncodingComboBox.addItems(sorted(supportedCodecs))
49 48
50 self.previewMarkdownHTMLFormatComboBox.addItems( 49 self.previewMarkdownHTMLFormatComboBox.addItems(["XHTML1", "HTML4", "HTML5"])
51 ["XHTML1", "HTML4", "HTML5"]) 50 self.previewRestDocutilsHTMLFormatComboBox.addItems(["HTML4", "HTML5"])
52 self.previewRestDocutilsHTMLFormatComboBox.addItems( 51
53 ["HTML4", "HTML5"])
54
55 # set initial values 52 # set initial values
56 self.autosaveSlider.setValue( 53 self.autosaveSlider.setValue(Preferences.getEditor("AutosaveInterval"))
57 Preferences.getEditor("AutosaveInterval"))
58 self.createBackupFileCheckBox.setChecked( 54 self.createBackupFileCheckBox.setChecked(
59 Preferences.getEditor("CreateBackupFile")) 55 Preferences.getEditor("CreateBackupFile")
56 )
60 self.defaultEncodingComboBox.setCurrentIndex( 57 self.defaultEncodingComboBox.setCurrentIndex(
61 self.defaultEncodingComboBox.findText( 58 self.defaultEncodingComboBox.findText(
62 Preferences.getEditor("DefaultEncoding"))) 59 Preferences.getEditor("DefaultEncoding")
60 )
61 )
63 self.advEncodingCheckBox.setChecked( 62 self.advEncodingCheckBox.setChecked(
64 Preferences.getEditor("AdvancedEncodingDetection")) 63 Preferences.getEditor("AdvancedEncodingDetection")
65 self.warnFilesizeSpinBox.setValue( 64 )
66 Preferences.getEditor("WarnFilesize")) 65 self.warnFilesizeSpinBox.setValue(Preferences.getEditor("WarnFilesize"))
67 self.clearBreakpointsCheckBox.setChecked( 66 self.clearBreakpointsCheckBox.setChecked(
68 Preferences.getEditor("ClearBreaksOnClose")) 67 Preferences.getEditor("ClearBreaksOnClose")
69 self.automaticReopenCheckBox.setChecked( 68 )
70 Preferences.getEditor("AutoReopen")) 69 self.automaticReopenCheckBox.setChecked(Preferences.getEditor("AutoReopen"))
71 self.stripWhitespaceCheckBox.setChecked( 70 self.stripWhitespaceCheckBox.setChecked(
72 Preferences.getEditor("StripTrailingWhitespace")) 71 Preferences.getEditor("StripTrailingWhitespace")
72 )
73 self.openFilesFilterComboBox.setCurrentIndex( 73 self.openFilesFilterComboBox.setCurrentIndex(
74 self.openFilesFilterComboBox.findText( 74 self.openFilesFilterComboBox.findText(
75 Preferences.getEditor("DefaultOpenFilter"))) 75 Preferences.getEditor("DefaultOpenFilter")
76 )
77 )
76 self.saveFilesFilterComboBox.setCurrentIndex( 78 self.saveFilesFilterComboBox.setCurrentIndex(
77 self.saveFilesFilterComboBox.findText( 79 self.saveFilesFilterComboBox.findText(
78 Preferences.getEditor("DefaultSaveFilter"))) 80 Preferences.getEditor("DefaultSaveFilter")
81 )
82 )
79 self.automaticEolConversionCheckBox.setChecked( 83 self.automaticEolConversionCheckBox.setChecked(
80 Preferences.getEditor("AutomaticEOLConversion")) 84 Preferences.getEditor("AutomaticEOLConversion")
85 )
81 self.insertFinalNewlineCheckBox.setChecked( 86 self.insertFinalNewlineCheckBox.setChecked(
82 Preferences.getEditor("InsertFinalNewline")) 87 Preferences.getEditor("InsertFinalNewline")
83 88 )
89
84 eolMode = Preferences.getEditor("EOLMode") 90 eolMode = Preferences.getEditor("EOLMode")
85 if eolMode == QsciScintilla.EolMode.EolWindows: 91 if eolMode == QsciScintilla.EolMode.EolWindows:
86 self.crlfRadioButton.setChecked(True) 92 self.crlfRadioButton.setChecked(True)
87 elif eolMode == QsciScintilla.EolMode.EolMac: 93 elif eolMode == QsciScintilla.EolMode.EolMac:
88 self.crRadioButton.setChecked(True) 94 self.crRadioButton.setChecked(True)
89 elif eolMode == QsciScintilla.EolMode.EolUnix: 95 elif eolMode == QsciScintilla.EolMode.EolUnix:
90 self.lfRadioButton.setChecked(True) 96 self.lfRadioButton.setChecked(True)
91 97
92 self.previewRefreshTimeoutSpinBox.setValue( 98 self.previewRefreshTimeoutSpinBox.setValue(
93 Preferences.getEditor("PreviewRefreshWaitTimer")) 99 Preferences.getEditor("PreviewRefreshWaitTimer")
94 100 )
101
95 self.previewHtmlExtensionsEdit.setText( 102 self.previewHtmlExtensionsEdit.setText(
96 " ".join(Preferences.getEditor("PreviewHtmlFileNameExtensions"))) 103 " ".join(Preferences.getEditor("PreviewHtmlFileNameExtensions"))
97 104 )
105
98 self.previewMarkdownExtensionsEdit.setText( 106 self.previewMarkdownExtensionsEdit.setText(
99 " ".join( 107 " ".join(Preferences.getEditor("PreviewMarkdownFileNameExtensions"))
100 Preferences.getEditor("PreviewMarkdownFileNameExtensions"))) 108 )
101 self.previewRestSphinxCheckBox.setChecked( 109 self.previewRestSphinxCheckBox.setChecked(
102 Preferences.getEditor("PreviewRestUseSphinx")) 110 Preferences.getEditor("PreviewRestUseSphinx")
111 )
103 self.previewMarkdownNLtoBreakCheckBox.setChecked( 112 self.previewMarkdownNLtoBreakCheckBox.setChecked(
104 Preferences.getEditor("PreviewMarkdownNLtoBR")) 113 Preferences.getEditor("PreviewMarkdownNLtoBR")
114 )
105 self.previewMarkdownPyMdownCheckBox.setChecked( 115 self.previewMarkdownPyMdownCheckBox.setChecked(
106 Preferences.getEditor("PreviewMarkdownUsePyMdownExtensions")) 116 Preferences.getEditor("PreviewMarkdownUsePyMdownExtensions")
117 )
107 self.previewMarkdownMathJaxCheckBox.setChecked( 118 self.previewMarkdownMathJaxCheckBox.setChecked(
108 Preferences.getEditor("PreviewMarkdownMathJax")) 119 Preferences.getEditor("PreviewMarkdownMathJax")
120 )
109 self.previewMarkdownMermaidCheckBox.setChecked( 121 self.previewMarkdownMermaidCheckBox.setChecked(
110 Preferences.getEditor("PreviewMarkdownMermaid")) 122 Preferences.getEditor("PreviewMarkdownMermaid")
123 )
111 index = self.previewMarkdownHTMLFormatComboBox.findText( 124 index = self.previewMarkdownHTMLFormatComboBox.findText(
112 Preferences.getEditor("PreviewMarkdownHTMLFormat")) 125 Preferences.getEditor("PreviewMarkdownHTMLFormat")
126 )
113 self.previewMarkdownHTMLFormatComboBox.setCurrentIndex(index) 127 self.previewMarkdownHTMLFormatComboBox.setCurrentIndex(index)
114 128
115 self.previewRestExtensionsEdit.setText( 129 self.previewRestExtensionsEdit.setText(
116 " ".join(Preferences.getEditor("PreviewRestFileNameExtensions"))) 130 " ".join(Preferences.getEditor("PreviewRestFileNameExtensions"))
131 )
117 index = self.previewRestDocutilsHTMLFormatComboBox.findText( 132 index = self.previewRestDocutilsHTMLFormatComboBox.findText(
118 Preferences.getEditor("PreviewRestDocutilsHTMLFormat")) 133 Preferences.getEditor("PreviewRestDocutilsHTMLFormat")
134 )
119 self.previewRestDocutilsHTMLFormatComboBox.setCurrentIndex(index) 135 self.previewRestDocutilsHTMLFormatComboBox.setCurrentIndex(index)
120 136
121 self.previewQssExtensionsEdit.setText( 137 self.previewQssExtensionsEdit.setText(
122 " ".join(Preferences.getEditor("PreviewQssFileNameExtensions"))) 138 " ".join(Preferences.getEditor("PreviewQssFileNameExtensions"))
123 139 )
140
124 def save(self): 141 def save(self):
125 """ 142 """
126 Public slot to save the Editor File Handling configuration. 143 Public slot to save the Editor File Handling configuration.
127 """ 144 """
128 Preferences.setEditor( 145 Preferences.setEditor("AutosaveInterval", self.autosaveSlider.value())
129 "AutosaveInterval", 146 Preferences.setEditor(
130 self.autosaveSlider.value()) 147 "CreateBackupFile", self.createBackupFileCheckBox.isChecked()
131 Preferences.setEditor( 148 )
132 "CreateBackupFile",
133 self.createBackupFileCheckBox.isChecked())
134 enc = self.defaultEncodingComboBox.currentText() 149 enc = self.defaultEncodingComboBox.currentText()
135 if not enc: 150 if not enc:
136 enc = "utf-8" 151 enc = "utf-8"
137 Preferences.setEditor("DefaultEncoding", enc) 152 Preferences.setEditor("DefaultEncoding", enc)
138 Preferences.setEditor( 153 Preferences.setEditor(
139 "AdvancedEncodingDetection", 154 "AdvancedEncodingDetection", self.advEncodingCheckBox.isChecked()
140 self.advEncodingCheckBox.isChecked()) 155 )
141 Preferences.setEditor( 156 Preferences.setEditor("WarnFilesize", self.warnFilesizeSpinBox.value())
142 "WarnFilesize", 157 Preferences.setEditor(
143 self.warnFilesizeSpinBox.value()) 158 "ClearBreaksOnClose", self.clearBreakpointsCheckBox.isChecked()
144 Preferences.setEditor( 159 )
145 "ClearBreaksOnClose", 160 Preferences.setEditor("AutoReopen", self.automaticReopenCheckBox.isChecked())
146 self.clearBreakpointsCheckBox.isChecked()) 161 Preferences.setEditor(
147 Preferences.setEditor( 162 "StripTrailingWhitespace", self.stripWhitespaceCheckBox.isChecked()
148 "AutoReopen", 163 )
149 self.automaticReopenCheckBox.isChecked()) 164 Preferences.setEditor(
150 Preferences.setEditor( 165 "DefaultOpenFilter", self.openFilesFilterComboBox.currentText()
151 "StripTrailingWhitespace", 166 )
152 self.stripWhitespaceCheckBox.isChecked()) 167 Preferences.setEditor(
153 Preferences.setEditor( 168 "DefaultSaveFilter", self.saveFilesFilterComboBox.currentText()
154 "DefaultOpenFilter", 169 )
155 self.openFilesFilterComboBox.currentText()) 170 Preferences.setEditor(
156 Preferences.setEditor( 171 "AutomaticEOLConversion", self.automaticEolConversionCheckBox.isChecked()
157 "DefaultSaveFilter", 172 )
158 self.saveFilesFilterComboBox.currentText()) 173 Preferences.setEditor(
159 Preferences.setEditor( 174 "InsertFinalNewline", self.insertFinalNewlineCheckBox.isChecked()
160 "AutomaticEOLConversion", 175 )
161 self.automaticEolConversionCheckBox.isChecked()) 176
162 Preferences.setEditor(
163 "InsertFinalNewline",
164 self.insertFinalNewlineCheckBox.isChecked())
165
166 if self.crlfRadioButton.isChecked(): 177 if self.crlfRadioButton.isChecked():
167 Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolWindows) 178 Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolWindows)
168 elif self.crRadioButton.isChecked(): 179 elif self.crRadioButton.isChecked():
169 Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolMac) 180 Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolMac)
170 elif self.lfRadioButton.isChecked(): 181 elif self.lfRadioButton.isChecked():
171 Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolUnix) 182 Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolUnix)
172 183
173 self.__extractFileFilters() 184 self.__extractFileFilters()
174 Preferences.setEditor("AdditionalOpenFilters", self.openFileFilters) 185 Preferences.setEditor("AdditionalOpenFilters", self.openFileFilters)
175 Preferences.setEditor("AdditionalSaveFilters", self.saveFileFilters) 186 Preferences.setEditor("AdditionalSaveFilters", self.saveFileFilters)
176 187
177 Preferences.setEditor( 188 Preferences.setEditor(
178 "PreviewRefreshWaitTimer", 189 "PreviewRefreshWaitTimer", self.previewRefreshTimeoutSpinBox.value()
179 self.previewRefreshTimeoutSpinBox.value()) 190 )
180 191
181 Preferences.setEditor( 192 Preferences.setEditor(
182 "PreviewHtmlFileNameExtensions", 193 "PreviewHtmlFileNameExtensions",
183 [ext.strip() for ext in 194 [ext.strip() for ext in self.previewHtmlExtensionsEdit.text().split()],
184 self.previewHtmlExtensionsEdit.text().split()]) 195 )
185 196
186 Preferences.setEditor( 197 Preferences.setEditor(
187 "PreviewMarkdownFileNameExtensions", 198 "PreviewMarkdownFileNameExtensions",
188 [ext.strip() for ext in 199 [ext.strip() for ext in self.previewMarkdownExtensionsEdit.text().split()],
189 self.previewMarkdownExtensionsEdit.text().split()]) 200 )
190 Preferences.setEditor( 201 Preferences.setEditor(
191 "PreviewRestUseSphinx", 202 "PreviewRestUseSphinx", self.previewRestSphinxCheckBox.isChecked()
192 self.previewRestSphinxCheckBox.isChecked()) 203 )
193 Preferences.setEditor( 204 Preferences.setEditor(
194 "PreviewMarkdownNLtoBR", 205 "PreviewMarkdownNLtoBR", self.previewMarkdownNLtoBreakCheckBox.isChecked()
195 self.previewMarkdownNLtoBreakCheckBox.isChecked()) 206 )
196 Preferences.setEditor( 207 Preferences.setEditor(
197 "PreviewMarkdownUsePyMdownExtensions", 208 "PreviewMarkdownUsePyMdownExtensions",
198 self.previewMarkdownPyMdownCheckBox.isChecked()) 209 self.previewMarkdownPyMdownCheckBox.isChecked(),
199 Preferences.setEditor( 210 )
200 "PreviewMarkdownMathJax", 211 Preferences.setEditor(
201 self.previewMarkdownMathJaxCheckBox.isChecked()) 212 "PreviewMarkdownMathJax", self.previewMarkdownMathJaxCheckBox.isChecked()
202 Preferences.setEditor( 213 )
203 "PreviewMarkdownMermaid", 214 Preferences.setEditor(
204 self.previewMarkdownMermaidCheckBox.isChecked()) 215 "PreviewMarkdownMermaid", self.previewMarkdownMermaidCheckBox.isChecked()
216 )
205 Preferences.setEditor( 217 Preferences.setEditor(
206 "PreviewMarkdownHTMLFormat", 218 "PreviewMarkdownHTMLFormat",
207 self.previewMarkdownHTMLFormatComboBox.currentText()) 219 self.previewMarkdownHTMLFormatComboBox.currentText(),
208 220 )
221
209 Preferences.setEditor( 222 Preferences.setEditor(
210 "PreviewRestFileNameExtensions", 223 "PreviewRestFileNameExtensions",
211 [ext.strip() for ext in 224 [ext.strip() for ext in self.previewRestExtensionsEdit.text().split()],
212 self.previewRestExtensionsEdit.text().split()]) 225 )
213 Preferences.setEditor( 226 Preferences.setEditor(
214 "PreviewRestDocutilsHTMLFormat", 227 "PreviewRestDocutilsHTMLFormat",
215 self.previewRestDocutilsHTMLFormatComboBox.currentText()) 228 self.previewRestDocutilsHTMLFormatComboBox.currentText(),
216 229 )
230
217 Preferences.setEditor( 231 Preferences.setEditor(
218 "PreviewQssFileNameExtensions", 232 "PreviewQssFileNameExtensions",
219 [ext.strip() for ext in 233 [ext.strip() for ext in self.previewQssExtensionsEdit.text().split()],
220 self.previewQssExtensionsEdit.text().split()]) 234 )
221 235
222 def __setDefaultFiltersLists(self, keepSelection=False): 236 def __setDefaultFiltersLists(self, keepSelection=False):
223 """ 237 """
224 Private slot to set the default file filter combo boxes. 238 Private slot to set the default file filter combo boxes.
225 239
226 @param keepSelection flag indicating to keep the current selection 240 @param keepSelection flag indicating to keep the current selection
227 if possible (boolean) 241 if possible (boolean)
228 """ 242 """
229 if keepSelection: 243 if keepSelection:
230 selectedOpenFilter = self.openFilesFilterComboBox.currentText() 244 selectedOpenFilter = self.openFilesFilterComboBox.currentText()
231 selectedSaveFilter = self.saveFilesFilterComboBox.currentText() 245 selectedSaveFilter = self.saveFilesFilterComboBox.currentText()
232 246
233 import QScintilla.Lexers 247 import QScintilla.Lexers
234 openFileFiltersList = QScintilla.Lexers.getOpenFileFiltersList( 248
235 False, withAdditional=False) + self.openFileFilters 249 openFileFiltersList = (
250 QScintilla.Lexers.getOpenFileFiltersList(False, withAdditional=False)
251 + self.openFileFilters
252 )
236 openFileFiltersList.sort() 253 openFileFiltersList.sort()
237 self.openFilesFilterComboBox.clear() 254 self.openFilesFilterComboBox.clear()
238 self.openFilesFilterComboBox.addItems(openFileFiltersList) 255 self.openFilesFilterComboBox.addItems(openFileFiltersList)
239 saveFileFiltersList = QScintilla.Lexers.getSaveFileFiltersList( 256 saveFileFiltersList = (
240 False, withAdditional=False) + self.saveFileFilters 257 QScintilla.Lexers.getSaveFileFiltersList(False, withAdditional=False)
258 + self.saveFileFilters
259 )
241 saveFileFiltersList.sort() 260 saveFileFiltersList.sort()
242 self.saveFilesFilterComboBox.clear() 261 self.saveFilesFilterComboBox.clear()
243 self.saveFilesFilterComboBox.addItems(saveFileFiltersList) 262 self.saveFilesFilterComboBox.addItems(saveFileFiltersList)
244 263
245 if keepSelection: 264 if keepSelection:
246 self.openFilesFilterComboBox.setCurrentIndex( 265 self.openFilesFilterComboBox.setCurrentIndex(
247 self.openFilesFilterComboBox.findText(selectedOpenFilter)) 266 self.openFilesFilterComboBox.findText(selectedOpenFilter)
267 )
248 self.saveFilesFilterComboBox.setCurrentIndex( 268 self.saveFilesFilterComboBox.setCurrentIndex(
249 self.saveFilesFilterComboBox.findText(selectedSaveFilter)) 269 self.saveFilesFilterComboBox.findText(selectedSaveFilter)
250 270 )
271
251 def __extractFileFilters(self): 272 def __extractFileFilters(self):
252 """ 273 """
253 Private method to extract the file filters. 274 Private method to extract the file filters.
254 """ 275 """
255 filters = [] 276 filters = []
257 filters.append(self.fileFiltersList.item(row).text()) 278 filters.append(self.fileFiltersList.item(row).text())
258 if self.__showsOpenFilters: 279 if self.__showsOpenFilters:
259 self.openFileFilters = filters 280 self.openFileFilters = filters
260 else: 281 else:
261 self.saveFileFilters = filters 282 self.saveFileFilters = filters
262 283
263 def __checkFileFilter(self, fileFilter): 284 def __checkFileFilter(self, fileFilter):
264 """ 285 """
265 Private method to check a file filter for validity. 286 Private method to check a file filter for validity.
266 287
267 @param fileFilter file filter pattern to check (string) 288 @param fileFilter file filter pattern to check (string)
268 @return flag indicating validity (boolean) 289 @return flag indicating validity (boolean)
269 """ 290 """
270 if ( 291 if not self.__showsOpenFilters and fileFilter.count("*") != 1:
271 not self.__showsOpenFilters and
272 fileFilter.count("*") != 1
273 ):
274 EricMessageBox.critical( 292 EricMessageBox.critical(
275 self, 293 self,
276 self.tr("Add File Filter"), 294 self.tr("Add File Filter"),
277 self.tr("""A Save File Filter must contain exactly one""" 295 self.tr(
278 """ wildcard pattern. Yours contains {0}.""") 296 """A Save File Filter must contain exactly one"""
279 .format(fileFilter.count("*"))) 297 """ wildcard pattern. Yours contains {0}."""
298 ).format(fileFilter.count("*")),
299 )
280 return False 300 return False
281 301
282 if fileFilter.count("*") == 0: 302 if fileFilter.count("*") == 0:
283 EricMessageBox.critical( 303 EricMessageBox.critical(
284 self, 304 self,
285 self.tr("Add File Filter"), 305 self.tr("Add File Filter"),
286 self.tr("""A File Filter must contain at least one""" 306 self.tr(
287 """ wildcard pattern.""")) 307 """A File Filter must contain at least one"""
308 """ wildcard pattern."""
309 ),
310 )
288 return False 311 return False
289 312
290 return True 313 return True
291 314
292 @pyqtSlot() 315 @pyqtSlot()
293 def on_addFileFilterButton_clicked(self): 316 def on_addFileFilterButton_clicked(self):
294 """ 317 """
295 Private slot to add a file filter to the list. 318 Private slot to add a file filter to the list.
296 """ 319 """
297 fileFilter, ok = QInputDialog.getText( 320 fileFilter, ok = QInputDialog.getText(
298 self, 321 self,
299 self.tr("Add File Filter"), 322 self.tr("Add File Filter"),
300 self.tr("Enter the file filter entry:"), 323 self.tr("Enter the file filter entry:"),
301 QLineEdit.EchoMode.Normal) 324 QLineEdit.EchoMode.Normal,
325 )
302 if ok and fileFilter and self.__checkFileFilter(fileFilter): 326 if ok and fileFilter and self.__checkFileFilter(fileFilter):
303 self.fileFiltersList.addItem(fileFilter) 327 self.fileFiltersList.addItem(fileFilter)
304 self.__extractFileFilters() 328 self.__extractFileFilters()
305 self.__setDefaultFiltersLists(keepSelection=True) 329 self.__setDefaultFiltersLists(keepSelection=True)
306 330
307 @pyqtSlot() 331 @pyqtSlot()
308 def on_editFileFilterButton_clicked(self): 332 def on_editFileFilterButton_clicked(self):
309 """ 333 """
310 Private slot called to edit a file filter entry. 334 Private slot called to edit a file filter entry.
311 """ 335 """
313 fileFilter, ok = QInputDialog.getText( 337 fileFilter, ok = QInputDialog.getText(
314 self, 338 self,
315 self.tr("Add File Filter"), 339 self.tr("Add File Filter"),
316 self.tr("Enter the file filter entry:"), 340 self.tr("Enter the file filter entry:"),
317 QLineEdit.EchoMode.Normal, 341 QLineEdit.EchoMode.Normal,
318 fileFilter) 342 fileFilter,
343 )
319 if ok and fileFilter and self.__checkFileFilter(fileFilter): 344 if ok and fileFilter and self.__checkFileFilter(fileFilter):
320 self.fileFiltersList.currentItem().setText(fileFilter) 345 self.fileFiltersList.currentItem().setText(fileFilter)
321 self.__extractFileFilters() 346 self.__extractFileFilters()
322 self.__setDefaultFiltersLists(keepSelection=True) 347 self.__setDefaultFiltersLists(keepSelection=True)
323 348
324 @pyqtSlot() 349 @pyqtSlot()
325 def on_deleteFileFilterButton_clicked(self): 350 def on_deleteFileFilterButton_clicked(self):
326 """ 351 """
327 Private slot called to delete a file filter entry. 352 Private slot called to delete a file filter entry.
328 """ 353 """
329 self.fileFiltersList.takeItem(self.fileFiltersList.currentRow()) 354 self.fileFiltersList.takeItem(self.fileFiltersList.currentRow())
330 self.__extractFileFilters() 355 self.__extractFileFilters()
331 self.__setDefaultFiltersLists(keepSelection=True) 356 self.__setDefaultFiltersLists(keepSelection=True)
332 357
333 @pyqtSlot(bool) 358 @pyqtSlot(bool)
334 def on_openFiltersButton_toggled(self, checked): 359 def on_openFiltersButton_toggled(self, checked):
335 """ 360 """
336 Private slot to switch the list of file filters. 361 Private slot to switch the list of file filters.
337 362
338 @param checked flag indicating the check state of the button (boolean) 363 @param checked flag indicating the check state of the button (boolean)
339 """ 364 """
340 self.__extractFileFilters() 365 self.__extractFileFilters()
341 self.__showsOpenFilters = checked 366 self.__showsOpenFilters = checked
342 self.fileFiltersList.clear() 367 self.fileFiltersList.clear()
343 if checked: 368 if checked:
344 self.fileFiltersList.addItems(self.openFileFilters) 369 self.fileFiltersList.addItems(self.openFileFilters)
345 else: 370 else:
346 self.fileFiltersList.addItems(self.saveFileFilters) 371 self.fileFiltersList.addItems(self.saveFileFilters)
347 372
348 @pyqtSlot(QListWidgetItem, QListWidgetItem) 373 @pyqtSlot(QListWidgetItem, QListWidgetItem)
349 def on_fileFiltersList_currentItemChanged(self, current, previous): 374 def on_fileFiltersList_currentItemChanged(self, current, previous):
350 """ 375 """
351 Private slot to set the state of the edit and delete buttons. 376 Private slot to set the state of the edit and delete buttons.
352 377
353 @param current new current item (QListWidgetItem) 378 @param current new current item (QListWidgetItem)
354 @param previous previous current item (QListWidgetItem) 379 @param previous previous current item (QListWidgetItem)
355 """ 380 """
356 self.editFileFilterButton.setEnabled(current is not None) 381 self.editFileFilterButton.setEnabled(current is not None)
357 self.deleteFileFilterButton.setEnabled(current is not None) 382 self.deleteFileFilterButton.setEnabled(current is not None)
358 383
359 @pyqtSlot() 384 @pyqtSlot()
360 def on_previewMarkdownPyMdownInstallPushButton_clicked(self): 385 def on_previewMarkdownPyMdownInstallPushButton_clicked(self):
361 """ 386 """
362 Private slot to install the pymdown extensions package via pip. 387 Private slot to install the pymdown extensions package via pip.
363 """ 388 """
364 pip = ericApp().getObject("Pip") 389 pip = ericApp().getObject("Pip")
365 pip.installPackages(["pymdown-extensions"], 390 pip.installPackages(
366 interpreter=Globals.getPythonExecutable()) 391 ["pymdown-extensions"], interpreter=Globals.getPythonExecutable()
392 )
367 self.polishPage() 393 self.polishPage()
368 394
369 def polishPage(self): 395 def polishPage(self):
370 """ 396 """
371 Public slot to perform some polishing actions. 397 Public slot to perform some polishing actions.
372 """ 398 """
373 try: 399 try:
374 import pymdownx # __IGNORE_WARNING__ 400 import pymdownx # __IGNORE_WARNING__
401
375 self.previewMarkdownPyMdownInstallPushButton.setEnabled(False) 402 self.previewMarkdownPyMdownInstallPushButton.setEnabled(False)
376 del sys.modules["pymdownx"] 403 del sys.modules["pymdownx"]
377 except ImportError: 404 except ImportError:
378 self.previewMarkdownPyMdownInstallPushButton.setEnabled(True) 405 self.previewMarkdownPyMdownInstallPushButton.setEnabled(True)
379 406
380 407
381 def create(dlg): 408 def create(dlg):
382 """ 409 """
383 Module function to create the configuration page. 410 Module function to create the configuration page.
384 411
385 @param dlg reference to the configuration dialog 412 @param dlg reference to the configuration dialog
386 @return reference to the instantiated page (ConfigurationPageBase) 413 @return reference to the instantiated page (ConfigurationPageBase)
387 """ 414 """
388 page = EditorFilePage() 415 page = EditorFilePage()
389 return page 416 return page

eric ide

mercurial