Preferences/ConfigurationPages/EditorPropertiesPage.py

changeset 0
de9c2efb9d02
child 7
c679fb30c8f3
diff -r 000000000000 -r de9c2efb9d02 Preferences/ConfigurationPages/EditorPropertiesPage.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Preferences/ConfigurationPages/EditorPropertiesPage.py	Mon Dec 28 16:03:33 2009 +0000
@@ -0,0 +1,309 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2006 - 2009 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the Editor Properties configuration page.
+"""
+
+from PyQt4.Qsci import QsciScintilla
+
+from QScintilla.QsciScintillaCompat import QSCINTILLA_VERSION
+
+from ConfigurationPageBase import ConfigurationPageBase
+from Ui_EditorPropertiesPage import Ui_EditorPropertiesPage
+
+import Preferences
+
+class EditorPropertiesPage(ConfigurationPageBase, Ui_EditorPropertiesPage):
+    """
+    Class implementing the Editor Properties configuration page.
+    """
+    def __init__(self, lexers):
+        """
+        Constructor
+        
+        @param lexers reference to the lexers dictionary
+        """
+        ConfigurationPageBase.__init__(self)
+        self.setupUi(self)
+        self.setObjectName("EditorPropertiesPage")
+        
+        self.languages = sorted(lexers.keys()[:])
+        
+        # set initial values
+        # All
+        self.allFoldCompactCheckBox.setChecked(\
+            Preferences.getEditor("AllFoldCompact"))
+        
+        # Bash
+        self.foldBashCommentCheckBox.setChecked(\
+            Preferences.getEditor("BashFoldComment"))
+        
+        # CMake
+        self.cmakeFoldAtElseCheckBox.setChecked(\
+            Preferences.getEditor("CMakeFoldAtElse"))
+        
+        # C++
+        self.foldCppCommentCheckBox.setChecked(\
+            Preferences.getEditor("CppFoldComment"))
+        self.foldCppPreprocessorCheckBox.setChecked(\
+            Preferences.getEditor("CppFoldPreprocessor"))
+        self.foldCppAtElseCheckBox.setChecked(\
+            Preferences.getEditor("CppFoldAtElse"))
+        self.cppIndentOpeningBraceCheckBox.setChecked(\
+            Preferences.getEditor("CppIndentOpeningBrace"))
+        self.cppIndentClosingBraceCheckBox.setChecked(\
+            Preferences.getEditor("CppIndentClosingBrace"))
+        self.cppCaseInsensitiveCheckBox.setChecked(\
+            Preferences.getEditor("CppCaseInsensitiveKeywords"))
+        self.cppDollarAllowedCheckBox.setChecked(
+            Preferences.getEditor("CppDollarsAllowed"))
+        
+        # CSS
+        self.foldCssCommentCheckBox.setChecked(\
+            Preferences.getEditor("CssFoldComment"))
+        
+        # D
+        self.foldDCommentCheckBox.setChecked(\
+            Preferences.getEditor("DFoldComment"))
+        self.foldDAtElseCheckBox.setChecked(\
+            Preferences.getEditor("DFoldAtElse"))
+        self.dIndentOpeningBraceCheckBox.setChecked(\
+            Preferences.getEditor("DIndentOpeningBrace"))
+        self.dIndentClosingBraceCheckBox.setChecked(\
+            Preferences.getEditor("DIndentClosingBrace"))
+        
+        # HTML
+        self.foldHtmlPreprocessorCheckBox.setChecked(\
+            Preferences.getEditor("HtmlFoldPreprocessor"))
+        self.htmlCaseSensitiveTagsCheckBox.setChecked(\
+            Preferences.getEditor("HtmlCaseSensitiveTags"))
+        self.foldHtmlScriptCommentsCheckBox.setChecked(
+            Preferences.getEditor("HtmlFoldScriptComments"))
+        self.foldHtmlScriptHereDocsCheckBox.setChecked(
+            Preferences.getEditor("HtmlFoldScriptHeredocs"))
+        
+        # Pascal
+        if "Pascal" in self.languages:
+            self.pascalGroup.setEnabled(True)
+            self.foldPascalCommentCheckBox.setChecked(\
+                Preferences.getEditor("PascalFoldComment"))
+            self.foldPascalPreprocessorCheckBox.setChecked(\
+                Preferences.getEditor("PascalFoldPreprocessor"))
+            if QSCINTILLA_VERSION() >= 0x020400:
+                self.pascalSmartHighlightingCheckBox.setChecked(
+                    Preferences.getEditor("PascalSmartHighlighting"))
+            else:
+                self.pascalSmartHighlightingCheckBox.setEnabled(False)
+        else:
+            self.pascalGroup.setEnabled(False)
+        
+        # Perl
+        self.foldPerlCommentCheckBox.setChecked(\
+            Preferences.getEditor("PerlFoldComment"))
+        self.foldPerlPackagesCheckBox.setChecked(
+            Preferences.getEditor("PerlFoldPackages"))
+        self.foldPerlPODBlocksCheckBox.setChecked(
+            Preferences.getEditor("PerlFoldPODBlocks"))
+        
+        # PostScript
+        if "PostScript" in self.languages:
+            self.postscriptGroup.setEnabled(True)
+            self.psFoldAtElseCheckBox.setChecked(\
+                Preferences.getEditor("PostScriptFoldAtElse"))
+            self.psMarkTokensCheckBox.setChecked(\
+                Preferences.getEditor("PostScriptTokenize"))
+            self.psLevelSpinBox.setValue(\
+                Preferences.getEditor("PostScriptLevel"))
+        else:
+            self.postscriptGroup.setEnabled(False)
+        
+        # Povray
+        self.foldPovrayCommentCheckBox.setChecked(\
+            Preferences.getEditor("PovFoldComment"))
+        self.foldPovrayDirectivesCheckBox.setChecked(\
+            Preferences.getEditor("PovFoldDirectives"))
+        
+        # Python
+        self.foldPythonCommentCheckBox.setChecked(\
+            Preferences.getEditor("PythonFoldComment"))
+        self.foldPythonStringCheckBox.setChecked(\
+            Preferences.getEditor("PythonFoldString"))
+        self.pythonBadIndentationCheckBox.setChecked(\
+            Preferences.getEditor("PythonBadIndentation"))
+        self.pythonAutoindentCheckBox.setChecked(\
+            Preferences.getEditor("PythonAutoIndent"))
+        self.pythonV2UnicodeAllowedCheckBox.setChecked(
+            Preferences.getEditor("PythonAllowV2Unicode"))
+        self.pythonV3BinaryAllowedCheckBox.setChecked(
+            Preferences.getEditor("PythonAllowV3Binary"))
+        self.pythonV3BytesAllowedCheckBox.setChecked(
+            Preferences.getEditor("PythonAllowV3Bytes"))
+        
+        # SQL
+        self.foldSqlCommentCheckBox.setChecked(\
+            Preferences.getEditor("SqlFoldComment"))
+        self.sqlBackslashEscapesCheckBox.setChecked(\
+            Preferences.getEditor("SqlBackslashEscapes"))
+        
+        # VHDL
+        self.vhdlFoldCommentCheckBox.setChecked(\
+            Preferences.getEditor("VHDLFoldComment"))
+        self.vhdlFoldAtElseCheckBox.setChecked(\
+            Preferences.getEditor("VHDLFoldAtElse"))
+        self.vhdlFoldAtBeginCheckBox.setChecked(\
+            Preferences.getEditor("VHDLFoldAtBegin"))
+        self.vhdlFoldAtParenthesisCheckBox.setChecked(\
+            Preferences.getEditor("VHDLFoldAtParenthesis"))
+        
+        # XML
+        self.xmlSyleScriptsCheckBox.setChecked(
+            Preferences.getEditor("XMLStyleScripts"))
+        
+        # YAML
+        if "YAML" in self.languages:
+            self.yamlGroup.setEnabled(True)
+            self.foldYamlCommentCheckBox.setChecked(\
+                Preferences.getEditor("YAMLFoldComment"))
+        else:
+            self.yamlGroup.setEnabled(False)
+        
+    def save(self):
+        """
+        Public slot to save the Editor Properties (1) configuration.
+        """
+        # All
+        Preferences.setEditor("AllFoldCompact",
+            int(self.allFoldCompactCheckBox.isChecked()))
+        
+        # Bash
+        Preferences.setEditor("BashFoldComment",
+            int(self.foldBashCommentCheckBox.isChecked()))
+        
+        # CMake
+        Preferences.setEditor("CMakeFoldAtElse",
+            int(self.cmakeFoldAtElseCheckBox.isChecked()))
+        
+        # C++
+        Preferences.setEditor("CppFoldComment",
+            int(self.foldCppCommentCheckBox.isChecked()))
+        Preferences.setEditor("CppFoldPreprocessor",
+            int(self.foldCppPreprocessorCheckBox.isChecked()))
+        Preferences.setEditor("CppFoldAtElse",
+            int(self.foldCppAtElseCheckBox.isChecked()))
+        Preferences.setEditor("CppIndentOpeningBrace",
+            int(self.cppIndentOpeningBraceCheckBox.isChecked()))
+        Preferences.setEditor("CppIndentClosingBrace",
+            int(self.cppIndentClosingBraceCheckBox.isChecked()))
+        Preferences.setEditor("CppCaseInsensitiveKeywords",
+            int(self.cppCaseInsensitiveCheckBox.isChecked()))
+        Preferences.setEditor("CppDollarsAllowed",
+            int(self.cppDollarAllowedCheckBox.isChecked()))
+        
+        # CSS
+        Preferences.setEditor("CssFoldComment",
+            int(self.foldCssCommentCheckBox.isChecked()))
+        
+        # D
+        Preferences.setEditor("DFoldComment",
+            int(self.foldDCommentCheckBox.isChecked()))
+        Preferences.setEditor("DFoldAtElse",
+            int(self.foldDAtElseCheckBox.isChecked()))
+        Preferences.setEditor("DIndentOpeningBrace",
+            int(self.dIndentOpeningBraceCheckBox.isChecked()))
+        Preferences.setEditor("DIndentClosingBrace",
+            int(self.dIndentClosingBraceCheckBox.isChecked()))
+        
+        # HTML
+        Preferences.setEditor("HtmlFoldPreprocessor",
+            int(self.foldHtmlPreprocessorCheckBox.isChecked()))
+        Preferences.setEditor("HtmlCaseSensitiveTags",
+            int(self.htmlCaseSensitiveTagsCheckBox.isChecked()))
+        Preferences.setEditor("HtmlFoldScriptComments",
+            int(self.foldHtmlScriptCommentsCheckBox.isChecked()))
+        Preferences.setEditor("HtmlFoldScriptHeredocs",
+            int(self.foldHtmlScriptHereDocsCheckBox.isChecked()))
+        
+        # Pascal
+        if "Pascal" in self.languages:
+            Preferences.setEditor("PascalFoldComment",
+                int(self.foldPascalCommentCheckBox.isChecked()))
+            Preferences.setEditor("PascalFoldPreprocessor",
+                int(self.foldPascalPreprocessorCheckBox.isChecked()))
+            Preferences.setEditor("PascalSmartHighlighting",
+                int(self.pascalSmartHighlightingCheckBox.isChecked()))
+        
+        # Perl
+        Preferences.setEditor("PerlFoldComment",
+            int(self.foldPerlCommentCheckBox.isChecked()))
+        Preferences.setEditor("PerlFoldPackages",
+            int(self.foldPerlPackagesCheckBox.isChecked()))
+        Preferences.setEditor("PerlFoldPODBlocks",
+            int(self.foldPerlPODBlocksCheckBox.isChecked()))
+        
+        # PostScript
+        if "PostScript" in self.languages:
+            Preferences.setEditor("PostScriptFoldAtElse",
+                int(self.psFoldAtElseCheckBox.isChecked()))
+            Preferences.setEditor("PostScriptTokenize",
+                int(self.psMarkTokensCheckBox.isChecked()))
+            Preferences.setEditor("PostScriptLevel", 
+                self.psLevelSpinBox.value())
+        
+        # Povray
+        Preferences.setEditor("PovFoldComment",
+            int(self.foldPovrayCommentCheckBox.isChecked()))
+        Preferences.setEditor("PovFoldDirectives",
+            int(self.foldPovrayDirectivesCheckBox.isChecked()))
+        
+        # Python
+        Preferences.setEditor("PythonFoldComment",
+            int(self.foldPythonCommentCheckBox.isChecked()))
+        Preferences.setEditor("PythonFoldString",
+            int(self.foldPythonStringCheckBox.isChecked()))
+        Preferences.setEditor("PythonBadIndentation",
+            int(self.pythonBadIndentationCheckBox.isChecked()))
+        Preferences.setEditor("PythonAutoIndent",
+            int(self.pythonAutoindentCheckBox.isChecked()))
+        Preferences.setEditor("PythonAllowV2Unicode",
+            int(self.pythonV2UnicodeAllowedCheckBox.isChecked()))
+        Preferences.setEditor("PythonAllowV3Binary",
+            int(self.pythonV3BinaryAllowedCheckBox.isChecked()))
+        Preferences.setEditor("PythonAllowV3Bytes",
+            int(self.pythonV3BytesAllowedCheckBox.isChecked()))
+        
+        # SQL
+        Preferences.setEditor("SqlFoldComment",
+            int(self.foldSqlCommentCheckBox.isChecked()))
+        Preferences.setEditor("SqlBackslashEscapes",
+            int(self.sqlBackslashEscapesCheckBox.isChecked()))
+        
+        # VHDL
+        Preferences.setEditor("VHDLFoldComment",
+            int(self.vhdlFoldCommentCheckBox.isChecked()))
+        Preferences.setEditor("VHDLFoldAtElse",
+            int(self.vhdlFoldAtElseCheckBox.isChecked()))
+        Preferences.setEditor("VHDLFoldAtBegin",
+            int(self.vhdlFoldAtBeginCheckBox.isChecked()))
+        Preferences.setEditor("VHDLFoldAtParenthesis",
+            int(self.vhdlFoldAtParenthesisCheckBox.isChecked()))
+        
+        # XML
+        Preferences.setEditor("XMLStyleScripts",
+            int(self.xmlSyleScriptsCheckBox.isChecked()))
+        
+        # YAML
+        if "YAML" in self.languages:
+            Preferences.setEditor("YAMLFoldComment", 
+                int(self.foldYamlCommentCheckBox.isChecked()))
+
+def create(dlg):
+    """
+    Module function to create the configuration page.
+    
+    @param dlg reference to the configuration dialog
+    """
+    page = EditorPropertiesPage(dlg.getLexers())
+    return page

eric ide

mercurial