mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-15 00:07:25 -05:00
[needs-docs] Move Python Console settings for font colors and family
to new "Code Editor" tab in options dialog These settings apply to more than just the Python console editors - rather they apply to all code editors across QGIS (including expression editors)
This commit is contained in:
parent
e2ff63da48
commit
47236421af
@ -19,14 +19,13 @@ email : lrssvtml (at) gmail (dot) com
|
||||
Some portions of code were taken from https://code.google.com/p/pydee/
|
||||
"""
|
||||
|
||||
from qgis.PyQt.QtCore import QCoreApplication, QSize, QUrl, QObject, Qt, pyqtSignal
|
||||
from qgis.PyQt.QtCore import QCoreApplication, QUrl, QObject, pyqtSignal
|
||||
from qgis.PyQt.QtWidgets import QDialog, QFileDialog, QMessageBox, QTableWidgetItem, QHBoxLayout
|
||||
from qgis.PyQt.QtGui import QIcon, QFont, QColor, QFontDatabase, QDesktopServices
|
||||
from qgis.PyQt.QtGui import QIcon, QDesktopServices
|
||||
|
||||
from qgis.core import QgsSettings, QgsApplication
|
||||
from qgis.gui import QgsOptionsPageWidget, QgsOptionsWidgetFactory, QgsCodeEditor
|
||||
from qgis.gui import QgsOptionsPageWidget, QgsOptionsWidgetFactory
|
||||
|
||||
from .console_base import QgsPythonConsoleBase
|
||||
from .console_compile_apis import PrepareAPIDialog
|
||||
from .ui_console_settings import Ui_SettingsDialogPythonConsole
|
||||
|
||||
@ -94,10 +93,6 @@ class optionsDialog(QDialog, Ui_SettingsDialogPythonConsole):
|
||||
self.removeAPIpath.clicked.connect(self.removeAPI)
|
||||
self.compileAPIs.clicked.connect(self._prepareAPI)
|
||||
|
||||
self.resetFontColor.setIcon(QIcon(":/images/themes/default/mActionUndo.svg"))
|
||||
self.resetFontColor.setIconSize(QSize(18, 18))
|
||||
self.resetFontColor.clicked.connect(self._resetFontColor)
|
||||
|
||||
self.generateToken.clicked.connect(self.generateGHToken)
|
||||
|
||||
def generateGHToken(self):
|
||||
@ -194,15 +189,9 @@ class optionsDialog(QDialog, Ui_SettingsDialogPythonConsole):
|
||||
|
||||
settings.setValue("pythonConsole/accessTokenGithub", self.tokenGhLineEdit.text())
|
||||
|
||||
fontFamilyText = self.fontComboBox.currentText()
|
||||
settings.setValue("pythonConsole/fontfamilytext", fontFamilyText)
|
||||
|
||||
fontSize = self.spinBox.value()
|
||||
|
||||
for i in range(0, self.tableWidget.rowCount()):
|
||||
text = self.tableWidget.item(i, 1).text()
|
||||
self.listPath.append(text)
|
||||
settings.setValue("pythonConsole/fontsize", fontSize)
|
||||
settings.setValue("pythonConsole/userAPI", self.listPath)
|
||||
|
||||
settings.setValue("pythonConsole/autoCompThreshold", self.autoCompThreshold.value())
|
||||
@ -222,38 +211,8 @@ class optionsDialog(QDialog, Ui_SettingsDialogPythonConsole):
|
||||
settings.setValue("pythonConsole/autoCloseBracket", self.autoCloseBracket.isChecked())
|
||||
settings.setValue("pythonConsole/autoInsertionImport", self.autoInsertionImport.isChecked())
|
||||
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Default, self.defaultFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Class, self.classFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Keyword, self.keywordFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Decoration, self.decorFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Number, self.numberFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Method, self.methodFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Comment, self.commentFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.CommentBlock, self.commentBlockFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Background, self.paperBackgroundColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Cursor, self.cursorColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.CaretLine, self.caretLineColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Error, self.stderrFontColor.color())
|
||||
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.SingleQuote, self.singleQuoteFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.DoubleQuote, self.doubleQuoteFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.TripleSingleQuote, self.tripleSingleQuoteFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.TripleDoubleQuote, self.tripleDoubleQuoteFontColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Edge, self.edgeColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.MarginBackground, self.marginBackgroundColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.MarginForeground, self.marginForegroundColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Fold, self.foldColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.SelectionBackground, self.selectionBackgroundColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.SelectionForeground, self.selectionForegroundColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.MatchedBraceBackground, self.matchedBraceBackgroundColor.color())
|
||||
QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.MatchedBraceForeground, self.matchedBraceForegroundColor.color())
|
||||
|
||||
def restoreSettings(self):
|
||||
settings = QgsSettings()
|
||||
font = QFontDatabase.systemFont(QFontDatabase.FixedFont)
|
||||
self.spinBox.setValue(settings.value("pythonConsole/fontsize", font.pointSize(), type=int))
|
||||
self.fontComboBox.setCurrentFont(QFont(settings.value("pythonConsole/fontfamilytext",
|
||||
font.family())))
|
||||
self.preloadAPI.setChecked(settings.value("pythonConsole/preloadAPI", True, type=bool))
|
||||
self.lineEdit.setText(settings.value("pythonConsole/preparedAPIFile", "", type=str))
|
||||
self.tokenGhLineEdit.setText(settings.value("pythonConsole/accessTokenGithub", "", type=str))
|
||||
@ -283,58 +242,6 @@ class optionsDialog(QDialog, Ui_SettingsDialogPythonConsole):
|
||||
elif settings.value("pythonConsole/autoCompleteSource") == 'fromDocAPI':
|
||||
self.autoCompFromDocAPI.setChecked(True)
|
||||
|
||||
# Setting font lexer color
|
||||
self.defaultFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Default))
|
||||
self.keywordFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Keyword))
|
||||
self.classFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Class))
|
||||
self.methodFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Method))
|
||||
self.decorFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Decoration))
|
||||
self.numberFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Number))
|
||||
self.commentFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Comment))
|
||||
self.commentBlockFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.CommentBlock))
|
||||
self.paperBackgroundColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Background))
|
||||
self.cursorColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Cursor))
|
||||
self.caretLineColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.CaretLine))
|
||||
self.singleQuoteFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.SingleQuote))
|
||||
self.doubleQuoteFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.DoubleQuote))
|
||||
self.tripleSingleQuoteFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.TripleSingleQuote))
|
||||
self.tripleDoubleQuoteFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.TripleDoubleQuote))
|
||||
self.marginBackgroundColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.MarginBackground))
|
||||
self.marginForegroundColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.MarginForeground))
|
||||
self.selectionBackgroundColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.SelectionBackground))
|
||||
self.selectionForegroundColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.SelectionForeground))
|
||||
self.matchedBraceBackgroundColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.MatchedBraceBackground))
|
||||
self.matchedBraceForegroundColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.MatchedBraceForeground))
|
||||
self.stderrFontColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Error))
|
||||
self.edgeColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Edge))
|
||||
self.foldColor.setColor(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Fold))
|
||||
|
||||
def _resetFontColor(self):
|
||||
self.defaultFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Default))
|
||||
self.keywordFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Keyword))
|
||||
self.classFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Class))
|
||||
self.methodFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Method))
|
||||
self.decorFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Decoration))
|
||||
self.numberFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Number))
|
||||
self.commentFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Comment))
|
||||
self.commentBlockFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.CommentBlock))
|
||||
self.paperBackgroundColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Background))
|
||||
self.cursorColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Cursor))
|
||||
self.caretLineColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.CaretLine))
|
||||
self.singleQuoteFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.SingleQuote))
|
||||
self.doubleQuoteFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.DoubleQuote))
|
||||
self.tripleSingleQuoteFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.TripleSingleQuote))
|
||||
self.tripleDoubleQuoteFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.TripleDoubleQuote))
|
||||
self.marginBackgroundColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.MarginBackground))
|
||||
self.marginForegroundColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.MarginForeground))
|
||||
self.selectionBackgroundColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.SelectionBackground))
|
||||
self.selectionForegroundColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.SelectionForeground))
|
||||
self.matchedBraceBackgroundColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.MatchedBraceBackground))
|
||||
self.matchedBraceForegroundColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.MatchedBraceForeground))
|
||||
self.stderrFontColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Error))
|
||||
self.edgeColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Edge))
|
||||
self.foldColor.setColor(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Fold))
|
||||
|
||||
def reject(self):
|
||||
self.restoreSettings()
|
||||
QDialog.reject(self)
|
||||
|
||||
@ -60,12 +60,35 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1055</width>
|
||||
<height>1029</height>
|
||||
<width>1041</width>
|
||||
<height>736</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="0">
|
||||
<item row="5" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>GitHub Access Token</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLineEdit" name="tokenGhLineEdit">
|
||||
<property name="placeholderText">
|
||||
<string><PERSONAL_ACCESS_TOKEN></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="generateToken">
|
||||
<property name="text">
|
||||
<string>Generate</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QgsCollapsibleGroupBox" name="groupBox_4">
|
||||
<property name="title">
|
||||
<string>Typing</string>
|
||||
@ -98,7 +121,130 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QgsCollapsibleGroupBox" name="groupBoxAutoCompletion">
|
||||
<property name="title">
|
||||
<string>Autocompletion</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCheckedState" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_36">
|
||||
<property name="text">
|
||||
<string>characters</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="autoCompThreshold">
|
||||
<property name="maximum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>2</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Autocompletion threshold</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<layout class="QGridLayout" name="layoutRadioButton">
|
||||
<item row="0" column="2">
|
||||
<widget class="QRadioButton" name="autoCompFromDocAPI">
|
||||
<property name="toolTip">
|
||||
<string>Get autocompletion from current document and installed APIs</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>From doc and APIs</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QRadioButton" name="autoCompFromAPI">
|
||||
<property name="toolTip">
|
||||
<string>Get autocompletion from installed APIs</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>From API files</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="autoCompFromDoc">
|
||||
<property name="toolTip">
|
||||
<string>Get autocompletion from current document</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>From document</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QgsCollapsibleGroupBox" name="groupBoxRunDebugEditor">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Run and Debug</string>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_21">
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="enableObjectInspector">
|
||||
<property name="text">
|
||||
<string>Enable Object Inspector (switching between tabs may be slow)</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="autoSaveScript">
|
||||
<property name="text">
|
||||
<string>Auto-save script before running</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QgsCollapsibleGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>APIs</string>
|
||||
@ -294,599 +440,6 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QgsCollapsibleGroupBox" name="groupBoxFontColor">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Font and Colors</string>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_15">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Font</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFontComboBox" name="fontComboBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="insertPolicy">
|
||||
<enum>QComboBox::NoInsert</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Size</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>51</width>
|
||||
<height>26</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>51</width>
|
||||
<height>26</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>99</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_8">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>Default</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QgsColorButton" name="defaultFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>Keyword</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QgsColorButton" name="keywordFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<widget class="QLabel" name="label_26">
|
||||
<property name="text">
|
||||
<string>Class name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<widget class="QgsColorButton" name="classFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>Function</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QgsColorButton" name="methodFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>Decorator</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QgsColorButton" name="decorFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QLabel" name="label_55">
|
||||
<property name="text">
|
||||
<string>Number</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<widget class="QgsColorButton" name="numberFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>Comment</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QgsColorButton" name="commentFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>Comment block</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QgsColorButton" name="commentBlockFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="4">
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="text">
|
||||
<string>Cursor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="5">
|
||||
<widget class="QgsColorButton" name="cursorColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="text">
|
||||
<string>Caretline</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="5">
|
||||
<widget class="QgsColorButton" name="caretLineColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_28">
|
||||
<property name="text">
|
||||
<string>Single quote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QgsColorButton" name="singleQuoteFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLabel" name="label_31">
|
||||
<property name="text">
|
||||
<string>Double quote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QgsColorButton" name="doubleQuoteFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_29">
|
||||
<property name="text">
|
||||
<string>Triple single quote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QgsColorButton" name="tripleSingleQuoteFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLabel" name="label_30">
|
||||
<property name="text">
|
||||
<string>Triple double quote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QgsColorButton" name="tripleDoubleQuoteFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="4">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="text">
|
||||
<string>Background</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="5">
|
||||
<widget class="QgsColorButton" name="paperBackgroundColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_42">
|
||||
<property name="text">
|
||||
<string>Margin background</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QgsColorButton" name="marginBackgroundColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QLabel" name="label_43">
|
||||
<property name="text">
|
||||
<string>Margin foreground</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="3">
|
||||
<widget class="QgsColorButton" name="marginForegroundColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="4">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>Error</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="5">
|
||||
<widget class="QgsColorButton" name="stderrFontColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_48">
|
||||
<property name="text">
|
||||
<string>Selection background</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QgsColorButton" name="selectionBackgroundColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<widget class="QLabel" name="label_49">
|
||||
<property name="text">
|
||||
<string>Selection foreground</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="3">
|
||||
<widget class="QgsColorButton" name="selectionForegroundColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_50">
|
||||
<property name="text">
|
||||
<string>Brace background</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QgsColorButton" name="matchedBraceBackgroundColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2">
|
||||
<widget class="QLabel" name="label_60">
|
||||
<property name="text">
|
||||
<string>Brace foreground</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="3">
|
||||
<widget class="QgsColorButton" name="matchedBraceForegroundColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="4">
|
||||
<widget class="QLabel" name="label_38">
|
||||
<property name="text">
|
||||
<string>Edge</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="4">
|
||||
<widget class="QLabel" name="label_39">
|
||||
<property name="text">
|
||||
<string>Fold guide</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="5">
|
||||
<widget class="QgsColorButton" name="edgeColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="5">
|
||||
<widget class="QgsColorButton" name="foldColor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QToolButton" name="resetFontColor">
|
||||
<property name="toolTip">
|
||||
<string>Reset to default colors</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QgsCollapsibleGroupBox" name="groupBoxAutoCompletion">
|
||||
<property name="title">
|
||||
<string>Autocompletion</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCheckedState" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_36">
|
||||
<property name="text">
|
||||
<string>characters</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="autoCompThreshold">
|
||||
<property name="maximum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>2</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Autocompletion threshold</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<layout class="QGridLayout" name="layoutRadioButton">
|
||||
<item row="0" column="2">
|
||||
<widget class="QRadioButton" name="autoCompFromDocAPI">
|
||||
<property name="toolTip">
|
||||
<string>Get autocompletion from current document and installed APIs</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>From doc and APIs</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QRadioButton" name="autoCompFromAPI">
|
||||
<property name="toolTip">
|
||||
<string>Get autocompletion from installed APIs</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>From API files</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="autoCompFromDoc">
|
||||
<property name="toolTip">
|
||||
<string>Get autocompletion from current document</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>From document</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QgsCollapsibleGroupBox" name="groupBoxRunDebugEditor">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Run and Debug</string>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_21">
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="enableObjectInspector">
|
||||
<property name="text">
|
||||
<string>Enable Object Inspector (switching between tabs may be slow)</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="autoSaveScript">
|
||||
<property name="text">
|
||||
<string>Auto-save script before running</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>GitHub Access Token</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLineEdit" name="tokenGhLineEdit">
|
||||
<property name="placeholderText">
|
||||
<string><PERSONAL_ACCESS_TOKEN></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="generateToken">
|
||||
<property name="text">
|
||||
<string>Generate</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
@ -146,6 +146,13 @@ the default color.
|
||||
|
||||
.. seealso:: :py:func:`color`
|
||||
|
||||
.. versionadded:: 3.16
|
||||
%End
|
||||
|
||||
static QFont getMonospaceFont();
|
||||
%Docstring
|
||||
Returns the monospaced font to use for code editors.
|
||||
|
||||
.. versionadded:: 3.16
|
||||
%End
|
||||
|
||||
@ -158,8 +165,6 @@ the default color.
|
||||
virtual void keyPressEvent( QKeyEvent *event );
|
||||
|
||||
|
||||
QFont getMonospaceFont();
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -197,6 +197,7 @@ SET(QGIS_APP_SRCS
|
||||
locator/qgsinbuiltlocatorfilters.cpp
|
||||
locator/qgslocatoroptionswidget.cpp
|
||||
|
||||
options/qgscodeeditoroptions.cpp
|
||||
options/qgsoptions.cpp
|
||||
options/qgsoptionsutils.cpp
|
||||
|
||||
|
||||
172
src/app/options/qgscodeeditoroptions.cpp
Normal file
172
src/app/options/qgscodeeditoroptions.cpp
Normal file
@ -0,0 +1,172 @@
|
||||
/***************************************************************************
|
||||
qgscodeeditoroptions.cpp
|
||||
-------------------------
|
||||
begin : September 2020
|
||||
copyright : (C) 2020 by Nyall Dawson
|
||||
email : nyall dot dawson at gmail dot com
|
||||
***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "qgscodeeditoroptions.h"
|
||||
#include "qgsapplication.h"
|
||||
#include "qgssettings.h"
|
||||
#include "qgis.h"
|
||||
|
||||
//
|
||||
// QgsCodeEditorOptionsWidget
|
||||
//
|
||||
|
||||
QgsCodeEditorOptionsWidget::QgsCodeEditorOptionsWidget( QWidget *parent )
|
||||
: QgsOptionsPageWidget( parent )
|
||||
{
|
||||
setupUi( this );
|
||||
|
||||
layout()->setContentsMargins( 0, 0, 0, 0 );
|
||||
|
||||
mSizeSpin->setClearValue( 10 );
|
||||
|
||||
mColorButtonMap =
|
||||
{
|
||||
{QgsCodeEditor::ColorRole::Default, mColorDefault },
|
||||
{QgsCodeEditor::ColorRole::Keyword, mColorKeyword },
|
||||
{QgsCodeEditor::ColorRole::Class, mColorClass },
|
||||
{QgsCodeEditor::ColorRole::Method, mColorFunction },
|
||||
{QgsCodeEditor::ColorRole::Decoration, mColorDecorator },
|
||||
{QgsCodeEditor::ColorRole::Number, mColorNumber },
|
||||
{QgsCodeEditor::ColorRole::Comment, mColorComment },
|
||||
//{QgsCodeEditor::ColorRole::CommentLine, mColorCommentLine },
|
||||
{QgsCodeEditor::ColorRole::CommentBlock, mColorCommentBlock },
|
||||
{QgsCodeEditor::ColorRole::Background, mColorBackground },
|
||||
{QgsCodeEditor::ColorRole::Cursor, mColorCursor },
|
||||
{QgsCodeEditor::ColorRole::CaretLine, mColorCaretLine },
|
||||
//{QgsCodeEditor::ColorRole::Operator, mColorOperator },
|
||||
//{QgsCodeEditor::ColorRole::QuotedOperator, mColorQuotedOperator },
|
||||
//{QgsCodeEditor::ColorRole::Identifier, mColorIdentifier },
|
||||
//{QgsCodeEditor::ColorRole::QuotedIdentifier, mColorQuotedIdentified },
|
||||
//{QgsCodeEditor::ColorRole::Tag, mColorTag },
|
||||
//{QgsCodeEditor::ColorRole::UnknownTag, mColorUnknownTag },
|
||||
{QgsCodeEditor::ColorRole::SingleQuote, mColorSingleQuote },
|
||||
{QgsCodeEditor::ColorRole::DoubleQuote, mColorDoubleQuote },
|
||||
{QgsCodeEditor::ColorRole::TripleSingleQuote, mColorTripleSingleQuote },
|
||||
{QgsCodeEditor::ColorRole::TripleDoubleQuote, mColorTripleDoubleQuote },
|
||||
{QgsCodeEditor::ColorRole::MarginBackground, mColorMarginBackground },
|
||||
{QgsCodeEditor::ColorRole::MarginForeground, mColorMarginForeground },
|
||||
{QgsCodeEditor::ColorRole::SelectionBackground, mColorSelectionBackground },
|
||||
{QgsCodeEditor::ColorRole::SelectionForeground, mColorSelectionForeground },
|
||||
{QgsCodeEditor::ColorRole::MatchedBraceBackground, mColorBraceBackground },
|
||||
{QgsCodeEditor::ColorRole::MatchedBraceForeground, mColorBraceForeground },
|
||||
{QgsCodeEditor::ColorRole::Edge, mColorEdge },
|
||||
{QgsCodeEditor::ColorRole::Fold, mColorFold },
|
||||
{QgsCodeEditor::ColorRole::Error, mColorError },
|
||||
};
|
||||
|
||||
for ( auto it = mColorButtonMap.constBegin(); it != mColorButtonMap.constEnd(); ++it )
|
||||
{
|
||||
it.value()->setColor( QgsCodeEditor::color( it.key() ) );
|
||||
}
|
||||
|
||||
mColorSchemeComboBox->addItem( tr( "Default" ), QString() );
|
||||
mColorSchemeComboBox->addItem( tr( "Solarized (Light)" ), QStringLiteral( "solarized" ) );
|
||||
mColorSchemeComboBox->addItem( tr( "Solarized (Dark)" ), QStringLiteral( "solarized_dark" ) );
|
||||
mColorSchemeComboBox->addItem( tr( "Custom" ), QStringLiteral( "custom" ) );
|
||||
|
||||
QgsSettings settings;
|
||||
if ( !settings.value( QStringLiteral( "codeEditor/overrideColors" ), false, QgsSettings::Gui ).toBool() )
|
||||
{
|
||||
const QString theme = settings.value( QStringLiteral( "codeEditor/colorScheme" ), QString(), QgsSettings::Gui ).toString();
|
||||
mColorSchemeComboBox->setCurrentIndex( mColorSchemeComboBox->findData( theme ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
mColorSchemeComboBox->setCurrentIndex( mColorSchemeComboBox->findData( QStringLiteral( "custom" ) ) );
|
||||
}
|
||||
|
||||
connect( mColorSchemeComboBox, qgis::overload<int>::of( &QComboBox::currentIndexChanged ), this, [ = ]
|
||||
{
|
||||
const QString theme = mColorSchemeComboBox->currentData().toString();
|
||||
if ( theme != QStringLiteral( "custom" ) )
|
||||
{
|
||||
mBlockCustomColorChange = true;
|
||||
for ( auto it = mColorButtonMap.constBegin(); it != mColorButtonMap.constEnd(); ++it )
|
||||
{
|
||||
it.value()->setColor( QgsCodeEditor::defaultColor( it.key(), theme ) );
|
||||
}
|
||||
mBlockCustomColorChange = false;
|
||||
}
|
||||
} );
|
||||
|
||||
for ( auto it = mColorButtonMap.constBegin(); it != mColorButtonMap.constEnd(); ++it )
|
||||
{
|
||||
connect( it.value(), &QgsColorButton::colorChanged, this, [ = ]
|
||||
{
|
||||
if ( mBlockCustomColorChange )
|
||||
return;
|
||||
|
||||
mColorSchemeComboBox->setCurrentIndex( mColorSchemeComboBox->findData( QStringLiteral( "custom" ) ) );
|
||||
} );
|
||||
}
|
||||
|
||||
// font
|
||||
const QFont font = QgsCodeEditor::getMonospaceFont();
|
||||
mFontComboBox->setCurrentFont( font );
|
||||
mSizeSpin->setValue( font.pointSize() );
|
||||
mOverrideFontGroupBox->setChecked( !settings.value( QStringLiteral( "codeEditor/fontfamily" ), QString(), QgsSettings::Gui ).toString().isEmpty() );
|
||||
}
|
||||
|
||||
QString QgsCodeEditorOptionsWidget::helpKey() const
|
||||
{
|
||||
return QStringLiteral( "plugins/python_console.html" );
|
||||
}
|
||||
|
||||
void QgsCodeEditorOptionsWidget::apply()
|
||||
{
|
||||
const QString theme = mColorSchemeComboBox->currentData().toString();
|
||||
|
||||
QgsSettings settings;
|
||||
const bool customTheme = theme == QStringLiteral( "custom" );
|
||||
settings.setValue( QStringLiteral( "codeEditor/overrideColors" ), customTheme, QgsSettings::Gui );
|
||||
if ( !customTheme )
|
||||
{
|
||||
settings.setValue( QStringLiteral( "codeEditor/colorScheme" ), theme, QgsSettings::Gui );
|
||||
}
|
||||
for ( auto it = mColorButtonMap.constBegin(); it != mColorButtonMap.constEnd(); ++it )
|
||||
{
|
||||
QgsCodeEditor::setColor( it.key(), it.value()->color() );
|
||||
}
|
||||
|
||||
if ( mOverrideFontGroupBox->isChecked() )
|
||||
{
|
||||
settings.setValue( QStringLiteral( "codeEditor/fontfamily" ), mFontComboBox->currentFont().family(), QgsSettings::Gui );
|
||||
settings.setValue( QStringLiteral( "codeEditor/fontsize" ), mSizeSpin->value(), QgsSettings::Gui );
|
||||
}
|
||||
else
|
||||
{
|
||||
settings.remove( QStringLiteral( "codeEditor/fontfamily" ), QgsSettings::Gui );
|
||||
settings.remove( QStringLiteral( "codeEditor/fontsize" ), QgsSettings::Gui );
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// QgsCodeEditorOptionsFactory
|
||||
//
|
||||
QgsCodeEditorOptionsFactory::QgsCodeEditorOptionsFactory()
|
||||
: QgsOptionsWidgetFactory( tr( "Code Editor" ), QIcon() )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QIcon QgsCodeEditorOptionsFactory::icon() const
|
||||
{
|
||||
return QgsApplication::getThemeIcon( QStringLiteral( "/console/mIconRunConsole.svg" ) );
|
||||
}
|
||||
|
||||
QgsOptionsPageWidget *QgsCodeEditorOptionsFactory::createWidget( QWidget *parent ) const
|
||||
{
|
||||
return new QgsCodeEditorOptionsWidget( parent );
|
||||
}
|
||||
66
src/app/options/qgscodeeditoroptions.h
Normal file
66
src/app/options/qgscodeeditoroptions.h
Normal file
@ -0,0 +1,66 @@
|
||||
/***************************************************************************
|
||||
qgscodeeditoroptions.h
|
||||
-------------------------
|
||||
begin : September 2020
|
||||
copyright : (C) 2020 by Nyall Dawson
|
||||
email : nyall dot dawson at gmail dot com
|
||||
***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
#ifndef QGSCODEEDITOROPTIONS_H
|
||||
#define QGSCODEEDITOROPTIONS_H
|
||||
|
||||
#include "ui_qgscodeditorsettings.h"
|
||||
#include "qgsoptionswidgetfactory.h"
|
||||
#include "qgscodeeditor.h"
|
||||
|
||||
/**
|
||||
* \ingroup app
|
||||
* \class QgsCodeEditorOptionsWidget
|
||||
* \brief An options widget showing code editor settings.
|
||||
*
|
||||
* \since QGIS 3.16
|
||||
*/
|
||||
class QgsCodeEditorOptionsWidget : public QgsOptionsPageWidget, private Ui::QgsCodeEditorSettingsBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* Constructor for QgsCodeEditorOptionsWidget with the specified \a parent widget.
|
||||
*/
|
||||
QgsCodeEditorOptionsWidget( QWidget *parent );
|
||||
|
||||
QString helpKey() const override;
|
||||
|
||||
void apply() override;
|
||||
|
||||
private:
|
||||
|
||||
QMap< QgsCodeEditor::ColorRole, QgsColorButton * > mColorButtonMap;
|
||||
bool mBlockCustomColorChange = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
class QgsCodeEditorOptionsFactory : public QgsOptionsWidgetFactory
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
QgsCodeEditorOptionsFactory();
|
||||
|
||||
QIcon icon() const override;
|
||||
QgsOptionsPageWidget *createWidget( QWidget *parent = nullptr ) const override;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif // QGSCODEEDITOROPTIONS_H
|
||||
@ -97,6 +97,8 @@
|
||||
#include "qgsanalysis.h"
|
||||
#include "qgsgeometrycheckregistry.h"
|
||||
|
||||
#include "options/qgscodeeditoroptions.h"
|
||||
|
||||
#ifdef HAVE_3D
|
||||
#include "qgs3d.h"
|
||||
#include "qgs3danimationsettings.h"
|
||||
@ -1699,6 +1701,8 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, bool skipVersionCh
|
||||
{
|
||||
mCentralContainer->setCurrentIndex( 0 );
|
||||
} );
|
||||
|
||||
mCodeEditorWidgetFactory.reset( qgis::make_unique< QgsCodeEditorOptionsFactory >() );
|
||||
} // QgisApp ctor
|
||||
|
||||
QgisApp::QgisApp()
|
||||
|
||||
@ -173,6 +173,7 @@ class QgsNetworkLoggerWidgetFactory;
|
||||
#include "qgis_app.h"
|
||||
#include "qgsvectorlayerref.h"
|
||||
#include "devtools/qgsappdevtoolutils.h"
|
||||
#include "options/qgsoptionsutils.h"
|
||||
|
||||
#include <QGestureEvent>
|
||||
#include <QTapAndHoldGesture>
|
||||
@ -2628,6 +2629,8 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
|
||||
QgsScopedDevToolWidgetFactory mNetworkLoggerWidgetFactory;
|
||||
QgsScopedDevToolWidgetFactory mStartupProfilerWidgetFactory;
|
||||
|
||||
QgsScopedOptionsWidgetFactory mCodeEditorWidgetFactory;
|
||||
|
||||
class QgsCanvasRefreshBlocker
|
||||
{
|
||||
public:
|
||||
|
||||
@ -159,6 +159,13 @@ class GUI_EXPORT QgsCodeEditor : public QsciScintilla
|
||||
*/
|
||||
static void setColor( ColorRole role, const QColor &color );
|
||||
|
||||
/**
|
||||
* Returns the monospaced font to use for code editors.
|
||||
*
|
||||
* \since QGIS 3.16
|
||||
*/
|
||||
static QFont getMonospaceFont();
|
||||
|
||||
protected:
|
||||
|
||||
bool isFixedPitch( const QFont &font );
|
||||
@ -166,8 +173,6 @@ class GUI_EXPORT QgsCodeEditor : public QsciScintilla
|
||||
void focusOutEvent( QFocusEvent *event ) override;
|
||||
void keyPressEvent( QKeyEvent *event ) override;
|
||||
|
||||
QFont getMonospaceFont();
|
||||
|
||||
private:
|
||||
|
||||
void setSciWidget();
|
||||
|
||||
494
src/ui/qgscodeditorsettings.ui
Normal file
494
src/ui/qgscodeditorsettings.ui
Normal file
@ -0,0 +1,494 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QgsCodeEditorSettingsBase</class>
|
||||
<widget class="QWidget" name="QgsCodeEditorSettingsBase">
|
||||
<property name="modal" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>588</width>
|
||||
<height>469</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_16">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>588</width>
|
||||
<height>469</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<widget class="QGroupBox" name="groupBoxFontColor">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Colors</string>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_8">
|
||||
<item row="4" column="4">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="text">
|
||||
<string>Background</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QgsColorButton" name="mColorComment">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="2">
|
||||
<widget class="QLabel" name="label_60">
|
||||
<property name="text">
|
||||
<string>Brace foreground</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="4">
|
||||
<widget class="QLabel" name="label_39">
|
||||
<property name="text">
|
||||
<string>Fold guide</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="3">
|
||||
<widget class="QgsColorButton" name="mColorBraceForeground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLabel" name="label_20">
|
||||
<property name="text">
|
||||
<string>Comment block</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="5">
|
||||
<widget class="QgsColorButton" name="mColorFold">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QgsColorButton" name="mColorTripleSingleQuote">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_29">
|
||||
<property name="text">
|
||||
<string>Triple single quote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_48">
|
||||
<property name="text">
|
||||
<string>Selection background</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="3">
|
||||
<widget class="QgsColorButton" name="mColorSelectionForeground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="5">
|
||||
<widget class="QgsColorButton" name="mColorError">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QLabel" name="label_30">
|
||||
<property name="text">
|
||||
<string>Triple double quote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QgsColorButton" name="mColorCommentBlock">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QgsColorButton" name="mColorFunction">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<widget class="QLabel" name="label_43">
|
||||
<property name="text">
|
||||
<string>Margin foreground</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="5">
|
||||
<widget class="QgsColorButton" name="mColorNumber">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="4">
|
||||
<widget class="QLabel" name="label_38">
|
||||
<property name="text">
|
||||
<string>Edge</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="5">
|
||||
<widget class="QgsColorButton" name="mColorCursor">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2">
|
||||
<widget class="QLabel" name="label_49">
|
||||
<property name="text">
|
||||
<string>Selection foreground</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QLabel" name="label_26">
|
||||
<property name="text">
|
||||
<string>Class name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="4">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>Error</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>Function</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_50">
|
||||
<property name="text">
|
||||
<string>Brace background</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QgsColorButton" name="mColorDecorator">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="4">
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="text">
|
||||
<string>Cursor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_42">
|
||||
<property name="text">
|
||||
<string>Margin background</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_28">
|
||||
<property name="text">
|
||||
<string>Single quote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QgsColorButton" name="mColorDoubleQuote">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="4">
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="text">
|
||||
<string>Caretline</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="3">
|
||||
<widget class="QgsColorButton" name="mColorTripleDoubleQuote">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QgsColorButton" name="mColorSingleQuote">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="5">
|
||||
<widget class="QgsColorButton" name="mColorEdge">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>Decorator</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="5">
|
||||
<widget class="QgsColorButton" name="mColorClass">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QgsColorButton" name="mColorSelectionBackground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QgsColorButton" name="mColorMarginBackground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
<widget class="QLabel" name="label_55">
|
||||
<property name="text">
|
||||
<string>Number</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>Default</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>Comment</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="3">
|
||||
<widget class="QgsColorButton" name="mColorMarginForeground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QgsColorButton" name="mColorBraceBackground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QgsColorButton" name="mColorKeyword">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="5">
|
||||
<widget class="QgsColorButton" name="mColorBackground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>Keyword</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="5">
|
||||
<widget class="QgsColorButton" name="mColorCaretLine">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLabel" name="label_31">
|
||||
<property name="text">
|
||||
<string>Double quote</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QgsColorButton" name="mColorDefault">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Color scheme</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="5">
|
||||
<widget class="QComboBox" name="mColorSchemeComboBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="mOverrideFontGroupBox">
|
||||
<property name="title">
|
||||
<string>Override Code Editor Font</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,5,0,1">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Font</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFontComboBox" name="mFontComboBox">
|
||||
<property name="insertPolicy">
|
||||
<enum>QComboBox::NoInsert</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Size</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsSpinBox" name="mSizeSpin">
|
||||
<property name="minimum">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>99</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>QgsColorButton</class>
|
||||
<extends>QPushButton</extends>
|
||||
<header>qgscolorbutton.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsSpinBox</class>
|
||||
<extends>QSpinBox</extends>
|
||||
<header>qgsspinbox.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
Loading…
x
Reference in New Issue
Block a user