diff -r e9e7eca7efee -r bf71ee032bb4 src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.py --- a/src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/EditorGeneralPage.py Wed Jul 13 14:55:47 2022 +0200 @@ -15,9 +15,7 @@ from .ConfigurationPageBase import ConfigurationPageBase from .Ui_EditorGeneralPage import Ui_EditorGeneralPage -from .EditorLanguageTabIndentOverrideDialog import ( - EditorLanguageTabIndentOverrideDialog -) +from .EditorLanguageTabIndentOverrideDialog import EditorLanguageTabIndentOverrideDialog from QScintilla.DocstringGenerator import getSupportedDocstringTypes @@ -29,6 +27,7 @@ """ Class implementing the Editor General configuration page. """ + def __init__(self): """ Constructor @@ -36,132 +35,115 @@ super().__init__() self.setupUi(self) self.setObjectName("EditorGeneralPage") - + self.addButton.setIcon(UI.PixmapCache.getIcon("plus")) self.deleteButton.setIcon(UI.PixmapCache.getIcon("minus")) self.editButton.setIcon(UI.PixmapCache.getIcon("edit")) - - for docstringType, docstringStyle in sorted( - getSupportedDocstringTypes() - ): + + for docstringType, docstringStyle in sorted(getSupportedDocstringTypes()): self.docstringStyleComboBox.addItem(docstringStyle, docstringType) - + # set initial values - self.tabwidthSlider.setValue( - Preferences.getEditor("TabWidth")) - self.indentwidthSlider.setValue( - Preferences.getEditor("IndentWidth")) + self.tabwidthSlider.setValue(Preferences.getEditor("TabWidth")) + self.indentwidthSlider.setValue(Preferences.getEditor("IndentWidth")) self.tabforindentationCheckBox.setChecked( - Preferences.getEditor("TabForIndentation")) - self.tabindentsCheckBox.setChecked( - Preferences.getEditor("TabIndents")) - self.converttabsCheckBox.setChecked( - Preferences.getEditor("ConvertTabsOnLoad")) - self.autoindentCheckBox.setChecked( - Preferences.getEditor("AutoIndentation")) - self.comment0CheckBox.setChecked( - Preferences.getEditor("CommentColumn0")) - + Preferences.getEditor("TabForIndentation") + ) + self.tabindentsCheckBox.setChecked(Preferences.getEditor("TabIndents")) + self.converttabsCheckBox.setChecked(Preferences.getEditor("ConvertTabsOnLoad")) + self.autoindentCheckBox.setChecked(Preferences.getEditor("AutoIndentation")) + self.comment0CheckBox.setChecked(Preferences.getEditor("CommentColumn0")) + self.sourceOutlineGroupBox.setChecked( - Preferences.getEditor("ShowSourceOutline")) + Preferences.getEditor("ShowSourceOutline") + ) self.sourceOutlineWidthSpinBox.setValue( - Preferences.getEditor("SourceOutlineWidth")) + Preferences.getEditor("SourceOutlineWidth") + ) self.sourceOutlineWidthStepSpinBox.setValue( - Preferences.getEditor("SourceOutlineStepSize")) + Preferences.getEditor("SourceOutlineStepSize") + ) self.sourceOutlineShowCodingCheckBox.setChecked( - Preferences.getEditor("SourceOutlineShowCoding")) - + Preferences.getEditor("SourceOutlineShowCoding") + ) + index = self.docstringStyleComboBox.findData( - Preferences.getEditor("DocstringType")) + Preferences.getEditor("DocstringType") + ) self.docstringStyleComboBox.setCurrentIndex(index) self.docstringCompletionCheckBox.setChecked( - Preferences.getEditor("DocstringAutoGenerate")) - - self.mouseHoverHelpGroupBox.setChecked( - Preferences.getEditor("MouseHoverHelp")) - self.mouseDwellTimeSpinBox.setValue( - Preferences.getEditor("MouseHoverTimeout")) - + Preferences.getEditor("DocstringAutoGenerate") + ) + + self.mouseHoverHelpGroupBox.setChecked(Preferences.getEditor("MouseHoverHelp")) + self.mouseDwellTimeSpinBox.setValue(Preferences.getEditor("MouseHoverTimeout")) + virtualSpaceOptions = Preferences.getEditor("VirtualSpaceOptions") self.vsSelectionCheckBox.setChecked( - virtualSpaceOptions & QsciScintillaBase.SCVS_RECTANGULARSELECTION) + virtualSpaceOptions & QsciScintillaBase.SCVS_RECTANGULARSELECTION + ) self.vsUserCheckBox.setChecked( - virtualSpaceOptions & QsciScintillaBase.SCVS_USERACCESSIBLE) - + virtualSpaceOptions & QsciScintillaBase.SCVS_USERACCESSIBLE + ) + self.__populateLanguageOverrideWidget() - + def save(self): """ Public slot to save the Editor General configuration. """ - Preferences.setEditor( - "TabWidth", - self.tabwidthSlider.value()) - Preferences.setEditor( - "IndentWidth", - self.indentwidthSlider.value()) - Preferences.setEditor( - "TabForIndentation", - self.tabforindentationCheckBox.isChecked()) + Preferences.setEditor("TabWidth", self.tabwidthSlider.value()) + Preferences.setEditor("IndentWidth", self.indentwidthSlider.value()) Preferences.setEditor( - "TabIndents", - self.tabindentsCheckBox.isChecked()) - Preferences.setEditor( - "ConvertTabsOnLoad", - self.converttabsCheckBox.isChecked()) + "TabForIndentation", self.tabforindentationCheckBox.isChecked() + ) + Preferences.setEditor("TabIndents", self.tabindentsCheckBox.isChecked()) + Preferences.setEditor("ConvertTabsOnLoad", self.converttabsCheckBox.isChecked()) + Preferences.setEditor("AutoIndentation", self.autoindentCheckBox.isChecked()) + Preferences.setEditor("CommentColumn0", self.comment0CheckBox.isChecked()) + Preferences.setEditor( - "AutoIndentation", - self.autoindentCheckBox.isChecked()) + "ShowSourceOutline", self.sourceOutlineGroupBox.isChecked() + ) Preferences.setEditor( - "CommentColumn0", - self.comment0CheckBox.isChecked()) - + "SourceOutlineWidth", self.sourceOutlineWidthSpinBox.value() + ) Preferences.setEditor( - "ShowSourceOutline", - self.sourceOutlineGroupBox.isChecked()) - Preferences.setEditor( - "SourceOutlineWidth", - self.sourceOutlineWidthSpinBox.value()) + "SourceOutlineStepSize", self.sourceOutlineWidthStepSpinBox.value() + ) Preferences.setEditor( - "SourceOutlineStepSize", - self.sourceOutlineWidthStepSpinBox.value()) - Preferences.setEditor( - "SourceOutlineShowCoding", - self.sourceOutlineShowCodingCheckBox.isChecked()) - + "SourceOutlineShowCoding", self.sourceOutlineShowCodingCheckBox.isChecked() + ) + Preferences.setEditor( - "DocstringType", - self.docstringStyleComboBox.currentData()) - Preferences.setEditor( - "DocstringAutoGenerate", - self.docstringCompletionCheckBox.isChecked()) - + "DocstringType", self.docstringStyleComboBox.currentData() + ) Preferences.setEditor( - "MouseHoverHelp", - self.mouseHoverHelpGroupBox.isChecked()) - Preferences.setEditor( - "MouseHoverTimeout", - self.mouseDwellTimeSpinBox.value()) - + "DocstringAutoGenerate", self.docstringCompletionCheckBox.isChecked() + ) + + Preferences.setEditor("MouseHoverHelp", self.mouseHoverHelpGroupBox.isChecked()) + Preferences.setEditor("MouseHoverTimeout", self.mouseDwellTimeSpinBox.value()) + virtualSpaceOptions = QsciScintillaBase.SCVS_NONE if self.vsSelectionCheckBox.isChecked(): virtualSpaceOptions |= QsciScintillaBase.SCVS_RECTANGULARSELECTION if self.vsUserCheckBox.isChecked(): virtualSpaceOptions |= QsciScintillaBase.SCVS_USERACCESSIBLE Preferences.setEditor("VirtualSpaceOptions", virtualSpaceOptions) - + self.__saveLanguageOverrides() - + def on_tabforindentationCheckBox_toggled(self, checked): """ Private slot used to set the tab conversion check box. - + @param checked flag received from the signal (boolean) """ if checked and self.converttabsCheckBox.isChecked(): self.converttabsCheckBox.setChecked(not checked) self.converttabsCheckBox.setEnabled(not checked) - + def __populateLanguageOverrideWidget(self): """ Private method to populate the language specific indentation and tab @@ -173,11 +155,11 @@ self.languageOverrideWidget.sortItems(0, Qt.SortOrder.AscendingOrder) self.__resizeOverrideColumns() self.on_languageOverrideWidget_itemSelectionChanged() - + def __createOverrideItem(self, language, tabWidth, indentWidth): """ Private method to create an entry for a language override. - + @param language name of the language @type str @param tabWidth tabulator width @@ -185,21 +167,22 @@ @param indentWidth indentation width @type int """ - itm = QTreeWidgetItem(self.languageOverrideWidget, [ - language, - "{0:2d}".format(tabWidth), - "{0:2d}".format(indentWidth)]) + itm = QTreeWidgetItem( + self.languageOverrideWidget, + [language, "{0:2d}".format(tabWidth), "{0:2d}".format(indentWidth)], + ) itm.setTextAlignment(1, Qt.AlignmentFlag.AlignHCenter) itm.setTextAlignment(2, Qt.AlignmentFlag.AlignHCenter) - + def __resizeOverrideColumns(self): """ Private method to resize the list columns. """ self.languageOverrideWidget.header().resizeSections( - QHeaderView.ResizeMode.ResizeToContents) + QHeaderView.ResizeMode.ResizeToContents + ) self.languageOverrideWidget.header().setStretchLastSection(True) - + def __saveLanguageOverrides(self): """ Private method to save the language specific indentation and tab width @@ -213,19 +196,21 @@ int(itm.text(1)), int(itm.text(2)), ] - + Preferences.setEditor("TabIndentOverride", overrides) - + @pyqtSlot() def on_languageOverrideWidget_itemSelectionChanged(self): """ Private slot handling a change of the override selection. """ self.deleteButton.setEnabled( - len(self.languageOverrideWidget.selectedItems()) > 0) + len(self.languageOverrideWidget.selectedItems()) > 0 + ) self.editButton.setEnabled( - len(self.languageOverrideWidget.selectedItems()) == 1) - + len(self.languageOverrideWidget.selectedItems()) == 1 + ) + @pyqtSlot() def on_addButton_clicked(self): """ @@ -244,10 +229,9 @@ if dlg.exec() == QDialog.DialogCode.Accepted: language, tabWidth, indentWidth = dlg.getData() self.__createOverrideItem(language, tabWidth, indentWidth) - self.languageOverrideWidget.sortItems( - 0, Qt.SortOrder.AscendingOrder) + self.languageOverrideWidget.sortItems(0, Qt.SortOrder.AscendingOrder) self.__resizeOverrideColumns() - + @pyqtSlot() def on_deleteButton_clicked(self): """ @@ -256,13 +240,14 @@ ok = EricMessageBox.yesNo( self, self.tr("Tab and Indent Override"), - self.tr("""Shall the selected entries really be removed?""")) + self.tr("""Shall the selected entries really be removed?"""), + ) if ok: for itm in self.languageOverrideWidget.selectedItems(): index = self.languageOverrideWidget.indexOfTopLevelItem(itm) self.languageOverrideWidget.takeTopLevelItem(index) del itm - + @pyqtSlot() def on_editButton_clicked(self): """ @@ -284,7 +269,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) """