Skip to content

Commit 049edb2

Browse files
committed
[pyqgis-console] added more settings for fonts color
1 parent 6595f5f commit 049edb2

File tree

6 files changed

+797
-457
lines changed

6 files changed

+797
-457
lines changed

python/console/console.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -687,8 +687,8 @@ def openSettings(self):
687687
self.options.exec_()
688688

689689
def prefChanged(self):
690-
self.shell.settingsShell()
691-
self.shellOut.refreshLexerProperties()
690+
self.shell.refreshSettingsShell()
691+
self.shellOut.refreshSettingsOutput()
692692
self.tabEditorWidget.refreshSettingsEditor()
693693

694694
def callWidgetMessageBar(self, text):

python/console/console_editor.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def __init__(self, parent=None):
109109
self.setMarginsForegroundColor(QColor("#3E3EE3"))
110110
self.setMarginsBackgroundColor(QColor("#f9f9f9"))
111111
self.setCaretLineVisible(True)
112-
self.setCaretLineBackgroundColor(QColor("#fcf3ed"))
112+
self.setCaretWidth(2)
113113

114114
self.markerDefine(QgsApplication.getThemePixmap("console/iconSyntaxErrorConsole.png"),
115115
self.MARKER_NUM)
@@ -199,6 +199,11 @@ def settingsEditor(self):
199199
else:
200200
self.setAutoCompletionSource(self.AcsNone)
201201

202+
caretLineColorEditor = self.settings.value("pythonConsole/caretLineColorEditor", QColor("#fcf3ed"))
203+
cursorColorEditor = self.settings.value("pythonConsole/cursorColorEditor", QColor(Qt.black))
204+
self.setCaretLineBackgroundColor(caretLineColorEditor)
205+
self.setCaretForegroundColor(cursorColorEditor)
206+
202207
def autoCompleteKeyBinding(self):
203208
radioButtonSource = self.settings.value("pythonConsole/autoCompleteSourceEditor", 'fromAPI')
204209
autoCompEnabled = self.settings.value("pythonConsole/autoCompleteEnabledEditor", True, type=bool)
@@ -233,13 +238,22 @@ def setLexers(self):
233238
self.lexer.setDefaultColor(QColor(self.settings.value("pythonConsole/defaultFontColorEditor", QColor(Qt.black))))
234239
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentFontColorEditor", QColor(Qt.gray))), 1)
235240
self.lexer.setColor(QColor(self.settings.value("pythonConsole/keywordFontColorEditor", QColor(Qt.darkGreen))), 5)
241+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/classFontColorEditor", QColor(Qt.blue))), 8)
236242
self.lexer.setColor(QColor(self.settings.value("pythonConsole/methodFontColorEditor", QColor(Qt.darkGray))), 9)
237243
self.lexer.setColor(QColor(self.settings.value("pythonConsole/decorFontColorEditor", QColor(Qt.darkBlue))), 15)
238244
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentBlockFontColorEditor", QColor(Qt.gray))), 12)
245+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/singleQuoteFontColorEditor", QColor(Qt.blue))), 4)
246+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/doubleQuoteFontColorEditor", QColor(Qt.blue))), 3)
247+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleSingleQuoteFontColorEditor", QColor(Qt.blue))), 6)
248+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleDoubleQuoteFontColorEditor", QColor(Qt.blue))), 7)
239249
self.lexer.setFont(font, 1)
240250
self.lexer.setFont(font, 3)
241251
self.lexer.setFont(font, 4)
242252

253+
for style in range(0, 33):
254+
paperColor = QColor(self.settings.value("pythonConsole/paperBackgroundColorEditor", QColor(Qt.white)))
255+
self.lexer.setPaper(paperColor, style)
256+
243257
self.api = QsciAPIs(self.lexer)
244258
chekBoxAPI = self.settings.value("pythonConsole/preloadAPI", True, type=bool)
245259
chekBoxPreparedAPI = self.settings.value("pythonConsole/usePreparedAPIFile", False, type=bool)

python/console/console_output.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def __init__(self, parent=None):
9999
sys.stderr = writeOut(self, sys.stderr, "_traceback")
100100

101101
self.insertInitText()
102-
self.setLexers()
102+
self.refreshSettingsOutput()
103103
self.setReadOnly(True)
104104

105105
# Set the default font
@@ -120,7 +120,7 @@ def __init__(self, parent=None):
120120
self.setMarginsForegroundColor(QColor("#3E3EE3"))
121121
self.setMarginsBackgroundColor(QColor("#f9f9f9"))
122122
self.setCaretLineVisible(True)
123-
self.setCaretLineBackgroundColor(QColor("#fcf3ed"))
123+
self.setCaretWidth(0)
124124

125125
self.setMinimumHeight(120)
126126

@@ -149,8 +149,13 @@ def insertInitText(self):
149149
else:
150150
initText = self.setText(txtInit + '\n')
151151

152-
def refreshLexerProperties(self):
152+
def refreshSettingsOutput(self):
153+
# Set Python lexer
153154
self.setLexers()
155+
caretLineColor = self.settings.value("pythonConsole/caretLineColor", QColor("#fcf3ed"))
156+
cursorColor = self.settings.value("pythonConsole/cursorColor", QColor(Qt.black))
157+
self.setCaretLineBackgroundColor(caretLineColor)
158+
self.setCaretForegroundColor(cursorColor)
154159

155160
def setLexers(self):
156161
self.lexer = QsciLexerPython()
@@ -169,15 +174,24 @@ def setLexers(self):
169174
self.lexer.setDefaultColor(QColor(self.settings.value("pythonConsole/defaultFontColor", QColor(Qt.black))))
170175
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentFontColor", QColor(Qt.gray))), 1)
171176
self.lexer.setColor(QColor(self.settings.value("pythonConsole/keywordFontColor", QColor(Qt.darkGreen))), 5)
177+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/classFontColor", QColor(Qt.blue))), 8)
172178
self.lexer.setColor(QColor(self.settings.value("pythonConsole/methodFontColor", QColor(Qt.darkGray))), 9)
173179
self.lexer.setColor(QColor(self.settings.value("pythonConsole/decorFontColor", QColor(Qt.darkBlue))), 15)
174180
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentBlockFontColor", QColor(Qt.gray))), 12)
181+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/singleQuoteFontColor", QColor(Qt.blue))), 4)
182+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/doubleQuoteFontColor", QColor(Qt.blue))), 3)
183+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleSingleQuoteFontColor", QColor(Qt.blue))), 6)
184+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleDoubleQuoteFontColor", QColor(Qt.blue))), 7)
175185
self.lexer.setColor(QColor(Qt.red), 14)
176186
self.lexer.setFont(font, 1)
177187
self.lexer.setFont(font, 2)
178188
self.lexer.setFont(font, 3)
179189
self.lexer.setFont(font, 4)
180190

191+
for style in range(0, 33):
192+
paperColor = QColor(self.settings.value("pythonConsole/paperBackgroundColor", QColor(Qt.white)))
193+
self.lexer.setPaper(paperColor, style)
194+
181195
self.setLexer(self.lexer)
182196

183197
def clearConsole(self):

python/console/console_sci.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def __init__(self, parent=None):
8282
# Current line visible with special background color
8383
self.setCaretWidth(2)
8484

85-
self.settingsShell()
85+
self.refreshSettingsShell()
8686

8787
# Don't want to see the horizontal scrollbar at all
8888
# Use raw message to Scintilla here (all messages are documented
@@ -113,7 +113,7 @@ def __init__(self, parent=None):
113113
self.newShortcutCAS.activated.connect(self.autoCompleteKeyBinding)
114114
self.newShortcutCSS.activated.connect(self.showHistory)
115115

116-
def settingsShell(self):
116+
def refreshSettingsShell(self):
117117
# Set Python lexer
118118
self.setLexers()
119119
threshold = self.settings.value("pythonConsole/autoCompThreshold", 2, type=int)
@@ -130,6 +130,9 @@ def settingsShell(self):
130130
else:
131131
self.setAutoCompletionSource(self.AcsNone)
132132

133+
cursorColor = self.settings.value("pythonConsole/cursorColor", QColor(Qt.black))
134+
self.setCaretForegroundColor(cursorColor)
135+
133136
def showHistory(self):
134137
if not self.historyDlg.isVisible():
135138
self.historyDlg.show()
@@ -185,13 +188,22 @@ def setLexers(self):
185188
self.lexer.setDefaultColor(QColor(self.settings.value("pythonConsole/defaultFontColor", QColor(Qt.black))))
186189
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentFontColor", QColor(Qt.gray))), 1)
187190
self.lexer.setColor(QColor(self.settings.value("pythonConsole/keywordFontColor", QColor(Qt.darkGreen))), 5)
191+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/classFontColor", QColor(Qt.blue))), 8)
188192
self.lexer.setColor(QColor(self.settings.value("pythonConsole/methodFontColor", QColor(Qt.darkGray))), 9)
189193
self.lexer.setColor(QColor(self.settings.value("pythonConsole/decorFontColor", QColor(Qt.darkBlue))), 15)
190194
self.lexer.setColor(QColor(self.settings.value("pythonConsole/commentBlockFontColor", QColor(Qt.gray))), 12)
195+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/singleQuoteFontColor", QColor(Qt.blue))), 4)
196+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/doubleQuoteFontColor", QColor(Qt.blue))), 3)
197+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleSingleQuoteFontColor", QColor(Qt.blue))), 6)
198+
self.lexer.setColor(QColor(self.settings.value("pythonConsole/tripleDoubleQuoteFontColor", QColor(Qt.blue))), 7)
191199
self.lexer.setFont(font, 1)
192200
self.lexer.setFont(font, 3)
193201
self.lexer.setFont(font, 4)
194202

203+
for style in range(0, 33):
204+
paperColor = QColor(self.settings.value("pythonConsole/paperBackgroundColor", QColor(Qt.white)))
205+
self.lexer.setPaper(paperColor, style)
206+
195207
self.api = QsciAPIs(self.lexer)
196208
chekBoxAPI = self.settings.value("pythonConsole/preloadAPI", True, type=bool)
197209
chekBoxPreparedAPI = self.settings.value("pythonConsole/usePreparedAPIFile", False, type=bool)

0 commit comments

Comments
 (0)