--- /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