src/eric7/Preferences/ConfigurationPages/EditorFilePage.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9405
99e65bd24e7d
--- a/src/eric7/Preferences/ConfigurationPages/EditorFilePage.py	Wed Jul 13 11:16:20 2022 +0200
+++ b/src/eric7/Preferences/ConfigurationPages/EditorFilePage.py	Wed Jul 13 14:55:47 2022 +0200
@@ -28,6 +28,7 @@
     """
     Class implementing the Editor File Handling configuration page.
     """
+
     def __init__(self):
         """
         Constructor
@@ -35,52 +36,57 @@
         super().__init__()
         self.setupUi(self)
         self.setObjectName("EditorFilePage")
-        
+
         self.__showsOpenFilters = True
-        self.openFileFilters = Preferences.getEditor(
-            "AdditionalOpenFilters")[:]
-        self.saveFileFilters = Preferences.getEditor(
-            "AdditionalSaveFilters")[:]
+        self.openFileFilters = Preferences.getEditor("AdditionalOpenFilters")[:]
+        self.saveFileFilters = Preferences.getEditor("AdditionalSaveFilters")[:]
         self.fileFiltersList.addItems(self.openFileFilters)
-        
+
         self.__setDefaultFiltersLists()
-        
+
         self.defaultEncodingComboBox.addItems(sorted(supportedCodecs))
-        
-        self.previewMarkdownHTMLFormatComboBox.addItems(
-            ["XHTML1", "HTML4", "HTML5"])
-        self.previewRestDocutilsHTMLFormatComboBox.addItems(
-            ["HTML4", "HTML5"])
-        
+
+        self.previewMarkdownHTMLFormatComboBox.addItems(["XHTML1", "HTML4", "HTML5"])
+        self.previewRestDocutilsHTMLFormatComboBox.addItems(["HTML4", "HTML5"])
+
         # set initial values
-        self.autosaveSlider.setValue(
-            Preferences.getEditor("AutosaveInterval"))
+        self.autosaveSlider.setValue(Preferences.getEditor("AutosaveInterval"))
         self.createBackupFileCheckBox.setChecked(
-            Preferences.getEditor("CreateBackupFile"))
+            Preferences.getEditor("CreateBackupFile")
+        )
         self.defaultEncodingComboBox.setCurrentIndex(
             self.defaultEncodingComboBox.findText(
-                Preferences.getEditor("DefaultEncoding")))
+                Preferences.getEditor("DefaultEncoding")
+            )
+        )
         self.advEncodingCheckBox.setChecked(
-            Preferences.getEditor("AdvancedEncodingDetection"))
-        self.warnFilesizeSpinBox.setValue(
-            Preferences.getEditor("WarnFilesize"))
+            Preferences.getEditor("AdvancedEncodingDetection")
+        )
+        self.warnFilesizeSpinBox.setValue(Preferences.getEditor("WarnFilesize"))
         self.clearBreakpointsCheckBox.setChecked(
-            Preferences.getEditor("ClearBreaksOnClose"))
-        self.automaticReopenCheckBox.setChecked(
-            Preferences.getEditor("AutoReopen"))
+            Preferences.getEditor("ClearBreaksOnClose")
+        )
+        self.automaticReopenCheckBox.setChecked(Preferences.getEditor("AutoReopen"))
         self.stripWhitespaceCheckBox.setChecked(
-            Preferences.getEditor("StripTrailingWhitespace"))
+            Preferences.getEditor("StripTrailingWhitespace")
+        )
         self.openFilesFilterComboBox.setCurrentIndex(
             self.openFilesFilterComboBox.findText(
-                Preferences.getEditor("DefaultOpenFilter")))
+                Preferences.getEditor("DefaultOpenFilter")
+            )
+        )
         self.saveFilesFilterComboBox.setCurrentIndex(
             self.saveFilesFilterComboBox.findText(
-                Preferences.getEditor("DefaultSaveFilter")))
+                Preferences.getEditor("DefaultSaveFilter")
+            )
+        )
         self.automaticEolConversionCheckBox.setChecked(
-            Preferences.getEditor("AutomaticEOLConversion"))
+            Preferences.getEditor("AutomaticEOLConversion")
+        )
         self.insertFinalNewlineCheckBox.setChecked(
-            Preferences.getEditor("InsertFinalNewline"))
-        
+            Preferences.getEditor("InsertFinalNewline")
+        )
+
         eolMode = Preferences.getEditor("EOLMode")
         if eolMode == QsciScintilla.EolMode.EolWindows:
             self.crlfRadioButton.setChecked(True)
@@ -88,166 +94,181 @@
             self.crRadioButton.setChecked(True)
         elif eolMode == QsciScintilla.EolMode.EolUnix:
             self.lfRadioButton.setChecked(True)
-        
+
         self.previewRefreshTimeoutSpinBox.setValue(
-            Preferences.getEditor("PreviewRefreshWaitTimer"))
-        
+            Preferences.getEditor("PreviewRefreshWaitTimer")
+        )
+
         self.previewHtmlExtensionsEdit.setText(
-            " ".join(Preferences.getEditor("PreviewHtmlFileNameExtensions")))
-        
+            " ".join(Preferences.getEditor("PreviewHtmlFileNameExtensions"))
+        )
+
         self.previewMarkdownExtensionsEdit.setText(
-            " ".join(
-                Preferences.getEditor("PreviewMarkdownFileNameExtensions")))
+            " ".join(Preferences.getEditor("PreviewMarkdownFileNameExtensions"))
+        )
         self.previewRestSphinxCheckBox.setChecked(
-            Preferences.getEditor("PreviewRestUseSphinx"))
+            Preferences.getEditor("PreviewRestUseSphinx")
+        )
         self.previewMarkdownNLtoBreakCheckBox.setChecked(
-            Preferences.getEditor("PreviewMarkdownNLtoBR"))
+            Preferences.getEditor("PreviewMarkdownNLtoBR")
+        )
         self.previewMarkdownPyMdownCheckBox.setChecked(
-            Preferences.getEditor("PreviewMarkdownUsePyMdownExtensions"))
+            Preferences.getEditor("PreviewMarkdownUsePyMdownExtensions")
+        )
         self.previewMarkdownMathJaxCheckBox.setChecked(
-            Preferences.getEditor("PreviewMarkdownMathJax"))
+            Preferences.getEditor("PreviewMarkdownMathJax")
+        )
         self.previewMarkdownMermaidCheckBox.setChecked(
-            Preferences.getEditor("PreviewMarkdownMermaid"))
+            Preferences.getEditor("PreviewMarkdownMermaid")
+        )
         index = self.previewMarkdownHTMLFormatComboBox.findText(
-            Preferences.getEditor("PreviewMarkdownHTMLFormat"))
+            Preferences.getEditor("PreviewMarkdownHTMLFormat")
+        )
         self.previewMarkdownHTMLFormatComboBox.setCurrentIndex(index)
-        
+
         self.previewRestExtensionsEdit.setText(
-            " ".join(Preferences.getEditor("PreviewRestFileNameExtensions")))
+            " ".join(Preferences.getEditor("PreviewRestFileNameExtensions"))
+        )
         index = self.previewRestDocutilsHTMLFormatComboBox.findText(
-            Preferences.getEditor("PreviewRestDocutilsHTMLFormat"))
+            Preferences.getEditor("PreviewRestDocutilsHTMLFormat")
+        )
         self.previewRestDocutilsHTMLFormatComboBox.setCurrentIndex(index)
-        
+
         self.previewQssExtensionsEdit.setText(
-            " ".join(Preferences.getEditor("PreviewQssFileNameExtensions")))
-        
+            " ".join(Preferences.getEditor("PreviewQssFileNameExtensions"))
+        )
+
     def save(self):
         """
         Public slot to save the Editor File Handling configuration.
         """
+        Preferences.setEditor("AutosaveInterval", self.autosaveSlider.value())
         Preferences.setEditor(
-            "AutosaveInterval",
-            self.autosaveSlider.value())
-        Preferences.setEditor(
-            "CreateBackupFile",
-            self.createBackupFileCheckBox.isChecked())
+            "CreateBackupFile", self.createBackupFileCheckBox.isChecked()
+        )
         enc = self.defaultEncodingComboBox.currentText()
         if not enc:
             enc = "utf-8"
         Preferences.setEditor("DefaultEncoding", enc)
         Preferences.setEditor(
-            "AdvancedEncodingDetection",
-            self.advEncodingCheckBox.isChecked())
-        Preferences.setEditor(
-            "WarnFilesize",
-            self.warnFilesizeSpinBox.value())
+            "AdvancedEncodingDetection", self.advEncodingCheckBox.isChecked()
+        )
+        Preferences.setEditor("WarnFilesize", self.warnFilesizeSpinBox.value())
         Preferences.setEditor(
-            "ClearBreaksOnClose",
-            self.clearBreakpointsCheckBox.isChecked())
+            "ClearBreaksOnClose", self.clearBreakpointsCheckBox.isChecked()
+        )
+        Preferences.setEditor("AutoReopen", self.automaticReopenCheckBox.isChecked())
         Preferences.setEditor(
-            "AutoReopen",
-            self.automaticReopenCheckBox.isChecked())
+            "StripTrailingWhitespace", self.stripWhitespaceCheckBox.isChecked()
+        )
         Preferences.setEditor(
-            "StripTrailingWhitespace",
-            self.stripWhitespaceCheckBox.isChecked())
+            "DefaultOpenFilter", self.openFilesFilterComboBox.currentText()
+        )
         Preferences.setEditor(
-            "DefaultOpenFilter",
-            self.openFilesFilterComboBox.currentText())
+            "DefaultSaveFilter", self.saveFilesFilterComboBox.currentText()
+        )
         Preferences.setEditor(
-            "DefaultSaveFilter",
-            self.saveFilesFilterComboBox.currentText())
+            "AutomaticEOLConversion", self.automaticEolConversionCheckBox.isChecked()
+        )
         Preferences.setEditor(
-            "AutomaticEOLConversion",
-            self.automaticEolConversionCheckBox.isChecked())
-        Preferences.setEditor(
-            "InsertFinalNewline",
-            self.insertFinalNewlineCheckBox.isChecked())
-        
+            "InsertFinalNewline", self.insertFinalNewlineCheckBox.isChecked()
+        )
+
         if self.crlfRadioButton.isChecked():
             Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolWindows)
         elif self.crRadioButton.isChecked():
             Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolMac)
         elif self.lfRadioButton.isChecked():
             Preferences.setEditor("EOLMode", QsciScintilla.EolMode.EolUnix)
-        
+
         self.__extractFileFilters()
         Preferences.setEditor("AdditionalOpenFilters", self.openFileFilters)
         Preferences.setEditor("AdditionalSaveFilters", self.saveFileFilters)
-        
+
         Preferences.setEditor(
-            "PreviewRefreshWaitTimer",
-            self.previewRefreshTimeoutSpinBox.value())
-        
+            "PreviewRefreshWaitTimer", self.previewRefreshTimeoutSpinBox.value()
+        )
+
         Preferences.setEditor(
             "PreviewHtmlFileNameExtensions",
-            [ext.strip() for ext in
-             self.previewHtmlExtensionsEdit.text().split()])
-        
+            [ext.strip() for ext in self.previewHtmlExtensionsEdit.text().split()],
+        )
+
         Preferences.setEditor(
             "PreviewMarkdownFileNameExtensions",
-            [ext.strip() for ext in
-             self.previewMarkdownExtensionsEdit.text().split()])
+            [ext.strip() for ext in self.previewMarkdownExtensionsEdit.text().split()],
+        )
         Preferences.setEditor(
-            "PreviewRestUseSphinx",
-            self.previewRestSphinxCheckBox.isChecked())
+            "PreviewRestUseSphinx", self.previewRestSphinxCheckBox.isChecked()
+        )
         Preferences.setEditor(
-            "PreviewMarkdownNLtoBR",
-            self.previewMarkdownNLtoBreakCheckBox.isChecked())
+            "PreviewMarkdownNLtoBR", self.previewMarkdownNLtoBreakCheckBox.isChecked()
+        )
         Preferences.setEditor(
             "PreviewMarkdownUsePyMdownExtensions",
-            self.previewMarkdownPyMdownCheckBox.isChecked())
+            self.previewMarkdownPyMdownCheckBox.isChecked(),
+        )
         Preferences.setEditor(
-            "PreviewMarkdownMathJax",
-            self.previewMarkdownMathJaxCheckBox.isChecked())
+            "PreviewMarkdownMathJax", self.previewMarkdownMathJaxCheckBox.isChecked()
+        )
         Preferences.setEditor(
-            "PreviewMarkdownMermaid",
-            self.previewMarkdownMermaidCheckBox.isChecked())
+            "PreviewMarkdownMermaid", self.previewMarkdownMermaidCheckBox.isChecked()
+        )
         Preferences.setEditor(
             "PreviewMarkdownHTMLFormat",
-            self.previewMarkdownHTMLFormatComboBox.currentText())
-        
+            self.previewMarkdownHTMLFormatComboBox.currentText(),
+        )
+
         Preferences.setEditor(
             "PreviewRestFileNameExtensions",
-            [ext.strip() for ext in
-             self.previewRestExtensionsEdit.text().split()])
+            [ext.strip() for ext in self.previewRestExtensionsEdit.text().split()],
+        )
         Preferences.setEditor(
             "PreviewRestDocutilsHTMLFormat",
-            self.previewRestDocutilsHTMLFormatComboBox.currentText())
-        
+            self.previewRestDocutilsHTMLFormatComboBox.currentText(),
+        )
+
         Preferences.setEditor(
             "PreviewQssFileNameExtensions",
-            [ext.strip() for ext in
-             self.previewQssExtensionsEdit.text().split()])
-    
+            [ext.strip() for ext in self.previewQssExtensionsEdit.text().split()],
+        )
+
     def __setDefaultFiltersLists(self, keepSelection=False):
         """
         Private slot to set the default file filter combo boxes.
-        
+
         @param keepSelection flag indicating to keep the current selection
             if possible (boolean)
         """
         if keepSelection:
             selectedOpenFilter = self.openFilesFilterComboBox.currentText()
             selectedSaveFilter = self.saveFilesFilterComboBox.currentText()
-        
+
         import QScintilla.Lexers
-        openFileFiltersList = QScintilla.Lexers.getOpenFileFiltersList(
-            False, withAdditional=False) + self.openFileFilters
+
+        openFileFiltersList = (
+            QScintilla.Lexers.getOpenFileFiltersList(False, withAdditional=False)
+            + self.openFileFilters
+        )
         openFileFiltersList.sort()
         self.openFilesFilterComboBox.clear()
         self.openFilesFilterComboBox.addItems(openFileFiltersList)
-        saveFileFiltersList = QScintilla.Lexers.getSaveFileFiltersList(
-            False, withAdditional=False) + self.saveFileFilters
+        saveFileFiltersList = (
+            QScintilla.Lexers.getSaveFileFiltersList(False, withAdditional=False)
+            + self.saveFileFilters
+        )
         saveFileFiltersList.sort()
         self.saveFilesFilterComboBox.clear()
         self.saveFilesFilterComboBox.addItems(saveFileFiltersList)
-        
+
         if keepSelection:
             self.openFilesFilterComboBox.setCurrentIndex(
-                self.openFilesFilterComboBox.findText(selectedOpenFilter))
+                self.openFilesFilterComboBox.findText(selectedOpenFilter)
+            )
             self.saveFilesFilterComboBox.setCurrentIndex(
-                self.saveFilesFilterComboBox.findText(selectedSaveFilter))
-    
+                self.saveFilesFilterComboBox.findText(selectedSaveFilter)
+            )
+
     def __extractFileFilters(self):
         """
         Private method to extract the file filters.
@@ -259,36 +280,38 @@
             self.openFileFilters = filters
         else:
             self.saveFileFilters = filters
-    
+
     def __checkFileFilter(self, fileFilter):
         """
         Private method to check a file filter for validity.
-        
+
         @param fileFilter file filter pattern to check (string)
         @return flag indicating validity (boolean)
         """
-        if (
-            not self.__showsOpenFilters and
-            fileFilter.count("*") != 1
-        ):
+        if not self.__showsOpenFilters and fileFilter.count("*") != 1:
             EricMessageBox.critical(
                 self,
                 self.tr("Add File Filter"),
-                self.tr("""A Save File Filter must contain exactly one"""
-                        """ wildcard pattern. Yours contains {0}.""")
-                .format(fileFilter.count("*")))
+                self.tr(
+                    """A Save File Filter must contain exactly one"""
+                    """ wildcard pattern. Yours contains {0}."""
+                ).format(fileFilter.count("*")),
+            )
             return False
-        
+
         if fileFilter.count("*") == 0:
             EricMessageBox.critical(
                 self,
                 self.tr("Add File Filter"),
-                self.tr("""A File Filter must contain at least one"""
-                        """ wildcard pattern."""))
+                self.tr(
+                    """A File Filter must contain at least one"""
+                    """ wildcard pattern."""
+                ),
+            )
             return False
-        
+
         return True
-    
+
     @pyqtSlot()
     def on_addFileFilterButton_clicked(self):
         """
@@ -298,12 +321,13 @@
             self,
             self.tr("Add File Filter"),
             self.tr("Enter the file filter entry:"),
-            QLineEdit.EchoMode.Normal)
+            QLineEdit.EchoMode.Normal,
+        )
         if ok and fileFilter and self.__checkFileFilter(fileFilter):
             self.fileFiltersList.addItem(fileFilter)
             self.__extractFileFilters()
             self.__setDefaultFiltersLists(keepSelection=True)
-    
+
     @pyqtSlot()
     def on_editFileFilterButton_clicked(self):
         """
@@ -315,12 +339,13 @@
             self.tr("Add File Filter"),
             self.tr("Enter the file filter entry:"),
             QLineEdit.EchoMode.Normal,
-            fileFilter)
+            fileFilter,
+        )
         if ok and fileFilter and self.__checkFileFilter(fileFilter):
             self.fileFiltersList.currentItem().setText(fileFilter)
             self.__extractFileFilters()
             self.__setDefaultFiltersLists(keepSelection=True)
-    
+
     @pyqtSlot()
     def on_deleteFileFilterButton_clicked(self):
         """
@@ -329,12 +354,12 @@
         self.fileFiltersList.takeItem(self.fileFiltersList.currentRow())
         self.__extractFileFilters()
         self.__setDefaultFiltersLists(keepSelection=True)
-    
+
     @pyqtSlot(bool)
     def on_openFiltersButton_toggled(self, checked):
         """
         Private slot to switch the list of file filters.
-        
+
         @param checked flag indicating the check state of the button (boolean)
         """
         self.__extractFileFilters()
@@ -344,34 +369,36 @@
             self.fileFiltersList.addItems(self.openFileFilters)
         else:
             self.fileFiltersList.addItems(self.saveFileFilters)
-    
+
     @pyqtSlot(QListWidgetItem, QListWidgetItem)
     def on_fileFiltersList_currentItemChanged(self, current, previous):
         """
         Private slot to set the state of the edit and delete buttons.
-        
+
         @param current new current item (QListWidgetItem)
         @param previous previous current item (QListWidgetItem)
         """
         self.editFileFilterButton.setEnabled(current is not None)
         self.deleteFileFilterButton.setEnabled(current is not None)
-    
+
     @pyqtSlot()
     def on_previewMarkdownPyMdownInstallPushButton_clicked(self):
         """
         Private slot to install the pymdown extensions package via pip.
         """
         pip = ericApp().getObject("Pip")
-        pip.installPackages(["pymdown-extensions"],
-                            interpreter=Globals.getPythonExecutable())
+        pip.installPackages(
+            ["pymdown-extensions"], interpreter=Globals.getPythonExecutable()
+        )
         self.polishPage()
-        
+
     def polishPage(self):
         """
         Public slot to perform some polishing actions.
         """
         try:
-            import pymdownx     # __IGNORE_WARNING__
+            import pymdownx  # __IGNORE_WARNING__
+
             self.previewMarkdownPyMdownInstallPushButton.setEnabled(False)
             del sys.modules["pymdownx"]
         except ImportError:
@@ -381,7 +408,7 @@
 def create(dlg):
     """
     Module function to create the configuration page.
-    
+
     @param dlg reference to the configuration dialog
     @return reference to the instantiated page (ConfigurationPageBase)
     """

eric ide

mercurial