File indexing completed on 2025-03-09 04:10:20
0001 """ 0002 SPDX-FileCopyrightText: 2017 Eliakin Costa <eliakim170@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 """ 0006 from PyQt5.QtWidgets import QComboBox 0007 from PyQt5.QtGui import QPalette 0008 from scripter.ui_scripter.syntax import syntaxstyles 0009 0010 0011 class SyntaxStylesComboBox(QComboBox): 0012 0013 def __init__(self, highlight, editor, parent=None): 0014 super(SyntaxStylesComboBox, self).__init__(parent) 0015 0016 self.highlight = highlight 0017 self.editor = editor 0018 self.styleClasses = [syntaxstyles.DefaultSyntaxStyle, syntaxstyles.PythonVimSyntaxStyle, syntaxstyles.BreezeLightSyntaxStyle, syntaxstyles.BreezeDarkSyntaxStyle, syntaxstyles.BlenderSyntaxStyle, syntaxstyles.SolarizedDarkSyntaxStyle, syntaxstyles.SolarizedLightSyntaxStyle] 0019 0020 for styleClass in self.styleClasses: 0021 className = styleClass.__name__ 0022 self.addItem(className) 0023 0024 if isinstance(self.highlight.getSyntaxStyle(), styleClass): 0025 self.setCurrentIndex(self.findText(className)) 0026 0027 self.currentIndexChanged.connect(self._currentIndexChanged) 0028 0029 def _currentIndexChanged(self, index): 0030 syntaxStyle = getattr(syntaxstyles, self.itemText(index))() 0031 self.highlight.setSyntaxStyle(syntaxStyle) 0032 self.highlight.rehighlight() 0033 p = self.editor.palette() 0034 p.setColor(QPalette.Base, syntaxStyle['background'].foreground().color()) 0035 p.setColor(QPalette.Text, syntaxStyle['foreground'].foreground().color()) 0036 self.editor.setPalette(p) 0037 self.editor.highlightCurrentLine() 0038 0039 def readSettings(self, settings): 0040 syntaxStyle = settings.value('syntaxStyle', '') 0041 0042 if syntaxStyle: 0043 self.setCurrentIndex(self.findText(syntaxStyle)) 0044 0045 def writeSettings(self, settings): 0046 settings.setValue('syntaxStyle', type(self.highlight.getSyntaxStyle()).__name__)