Example #1
0
    def testDefaultColors(self):
        # default color theme, default application theme
        QgsApplication.setUITheme('default')
        self.assertEqual(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Keyword).name(), '#8959a8')

        # default colors should respond to application ui theme
        QgsApplication.setUITheme('Night Mapping')
        self.assertEqual(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Keyword).name(), '#6cbcf7')

        # explicit theme, should override ui theme defaults
        self.assertEqual(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Keyword, 'solarized').name(), '#b79b00')
        self.assertEqual(QgsCodeEditor.defaultColor(QgsCodeEditor.ColorRole.Keyword, 'solarized_dark').name(), '#6cbcf7')
Example #2
0
    def testFontSize(self):
        f = QgsCodeEditor().getMonospaceFont()
        self.assertEqual(f.pointSize(), 10)

        QgsSettings().setValue('codeEditor/fontsize', 14, QgsSettings.Gui)
        f = QgsCodeEditor().getMonospaceFont()
        self.assertEqual(f.pointSize(), 14)
Example #3
0
    def testFontFamily(self):
        f = QgsCodeEditor().getMonospaceFont()
        self.assertTrue(f.styleHint() & QFont.Monospace)

        QgsSettings().setValue('codeEditor/fontfamily',
                               getTestFont().family(), QgsSettings.Gui)
        f = QgsCodeEditor().getMonospaceFont()
        self.assertEqual(f.family(), 'QGIS Vera Sans')
Example #4
0
    def testColors(self):
        QgsApplication.setUITheme('default')
        self.assertEqual(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Keyword).name(), '#8959a8')
        QgsApplication.setUITheme('Night Mapping')
        self.assertEqual(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Keyword).name(), '#6cbcf7')

        QgsSettings().setValue('codeEditor/colorScheme', 'solarized', QgsSettings.Gui)
        self.assertEqual(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Keyword).name(), '#b79b00')
        QgsSettings().setValue('codeEditor/colorScheme', 'solarized_dark', QgsSettings.Gui)
        self.assertEqual(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Keyword).name(), '#6cbcf7')

        QgsSettings().setValue('codeEditor/overrideColors', True, QgsSettings.Gui)
        QgsCodeEditor.setColor(QgsCodeEditor.ColorRole.Keyword, QColor('#cc11bb'))
        self.assertEqual(QgsCodeEditor.color(QgsCodeEditor.ColorRole.Keyword).name(), '#cc11bb')
Example #5
0
 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))
Example #6
0
    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))
        itemTable = settings.value("pythonConsole/userAPI", [])
        if itemTable:
            self.tableWidget.setRowCount(0)
            for i in range(len(itemTable)):
                self.tableWidget.insertRow(i)
                self.tableWidget.setColumnCount(2)
                pathSplit = itemTable[i].split("/")
                apiName = pathSplit[-1][0:-4]
                self.tableWidget.setItem(i, 0, QTableWidgetItem(apiName))
                self.tableWidget.setItem(i, 1, QTableWidgetItem(itemTable[i]))
        self.autoSaveScript.setChecked(
            settings.value("pythonConsole/autoSaveScript", False, type=bool))

        self.autoCompThreshold.setValue(
            settings.value("pythonConsole/autoCompThreshold", 2, type=int))
        self.groupBoxAutoCompletion.setChecked(
            settings.value("pythonConsole/autoCompleteEnabled",
                           True,
                           type=bool))

        self.enableObjectInspector.setChecked(
            settings.value("pythonConsole/enableObjectInsp", False, type=bool))
        self.autoCloseBracket.setChecked(
            settings.value("pythonConsole/autoCloseBracket", False, type=bool))
        self.autoInsertionImport.setChecked(
            settings.value("pythonConsole/autoInsertionImport",
                           True,
                           type=bool))

        if settings.value("pythonConsole/autoCompleteSource") == 'fromDoc':
            self.autoCompFromDoc.setChecked(True)
        elif settings.value("pythonConsole/autoCompleteSource") == 'fromAPI':
            self.autoCompFromAPI.setChecked(True)
        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))
Example #7
0
    def saveSettings(self):
        settings = QgsSettings()
        settings.setValue("pythonConsole/preloadAPI",
                          self.preloadAPI.isChecked())
        settings.setValue("pythonConsole/autoSaveScript",
                          self.autoSaveScript.isChecked())

        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())
        settings.setValue("pythonConsole/autoCompleteEnabled",
                          self.groupBoxAutoCompletion.isChecked())

        settings.setValue("pythonConsole/usePreparedAPIFile",
                          self.groupBoxPreparedAPI.isChecked())
        settings.setValue("pythonConsole/preparedAPIFile",
                          self.lineEdit.text())

        if self.autoCompFromAPI.isChecked():
            settings.setValue("pythonConsole/autoCompleteSource", 'fromAPI')
        elif self.autoCompFromDoc.isChecked():
            settings.setValue("pythonConsole/autoCompleteSource", 'fromDoc')
        elif self.autoCompFromDocAPI.isChecked():
            settings.setValue("pythonConsole/autoCompleteSource", 'fromDocAPI')

        settings.setValue("pythonConsole/enableObjectInsp",
                          self.enableObjectInspector.isChecked())
        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())