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 = [] |
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 |