Preferences/ConfigurationPages/EditorKeywordsPage.py

Fri, 31 Dec 2010 15:49:50 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 31 Dec 2010 15:49:50 +0100
changeset 791
9ec2ac20e54e
parent 467
0911d8be9b07
child 945
8cd4d08fa9f6
child 1445
b27f28bc5830
permissions
-rw-r--r--

Updated copyright notice.

131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
791
9ec2ac20e54e Updated copyright notice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 467
diff changeset
3 # Copyright (c) 2010 - 2011 Detlev Offenbach <detlev@die-offenbachs.de>
131
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the editor highlighter keywords configuration page.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt4.QtCore import pyqtSlot
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from .ConfigurationPageBase import ConfigurationPageBase
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from .Ui_EditorKeywordsPage import Ui_EditorKeywordsPage
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 import QScintilla.Lexers
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import Preferences
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class EditorKeywordsPage(ConfigurationPageBase, Ui_EditorKeywordsPage):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing the editor highlighter keywords configuration page.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 ConfigurationPageBase.__init__(self)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 self.setupUi(self)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 self.setObjectName("EditorKeywordsPage")
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 # set initial values
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self.__keywords = {
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 "" : ["", "", "", "", "", "", "", "", "", ""]
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 }
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 languages = sorted([''] + \
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 list(QScintilla.Lexers.getSupportedLanguages().keys()))
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 for lang in languages:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 if lang != "Guessed":
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.languageCombo.addItem(lang)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 for lang in languages[1:]:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 keywords = Preferences.getEditorKeywords(lang)[:]
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 if not keywords:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 keywords = [""]
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 lex = QScintilla.Lexers.getLexer(lang)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 for kwSet in range(1, 10):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 kw = lex.keywords(kwSet)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 if kw is None:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 kw = ""
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 keywords.append(kw)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.__keywords[lang] = keywords
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.currentLanguage = ''
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.currentSet = 1
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.on_languageCombo_activated(self.currentLanguage)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 def save(self):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 Public slot to save the editor highlighter keywords configuration.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 lang = self.languageCombo.currentText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 kwSet = self.setSpinBox.value()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.__keywords[lang][kwSet] = self.keywordsEdit.toPlainText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 for lang, keywords in self.__keywords.items():
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 Preferences.setEditorKeywords(lang, keywords)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 @pyqtSlot(str)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 def on_languageCombo_activated(self, language):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 Private slot to fill the keywords edit.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @param language selected language (string)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 if self.currentLanguage == language:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 return
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 if self.setSpinBox.value() == 1:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.on_setSpinBox_valueChanged(1)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 first, last = 10, 0
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 for kwSet in range(1, 10):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 if self.__keywords[language][kwSet] != "":
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 first = min(first, kwSet)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 last = max(last, kwSet)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.setSpinBox.setEnabled(language != "" and first < 10)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.keywordsEdit.setEnabled(language != "" and first < 10)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 if first < 10:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 self.setSpinBox.setMinimum(first)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 self.setSpinBox.setMaximum(last)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.setSpinBox.setValue(first)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 else:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.setSpinBox.setMinimum(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.setSpinBox.setMaximum(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.setSpinBox.setValue(0)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @pyqtSlot(int)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 def on_setSpinBox_valueChanged(self, kwSet):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 Private slot to fill the keywords edit.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 @param kwSet number of the selected keyword set (integer)
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 language = self.languageCombo.currentText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 if self.currentLanguage == language and self.currentSet == kwSet:
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 return
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 self.__keywords[self.currentLanguage][self.currentSet] = \
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 self.keywordsEdit.toPlainText()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self.currentApiLanguage = language
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 self.currentSet = kwSet
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.keywordsEdit.setPlainText(self.__keywords[language][kwSet])
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 def create(dlg):
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 Module function to create the configuration page.
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 @param dlg reference to the configuration dialog
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 """
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 page = EditorKeywordsPage()
60d355abbcd8 Added capability to change the keywords of a syntax highlighter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 return page

eric ide

mercurial