added live syntax check to scripting options, fixed its font

This commit is contained in:
Nikolai Prokoschenko
2009-02-24 23:04:35 +01:00
parent 99f4925c2d
commit 03f49dfdff
3 changed files with 43 additions and 42 deletions

View File

@@ -70,11 +70,24 @@ class ScriptingOptionsPage(OptionsPage):
TextOption("setting", "tagger_script", ""),
]
STYLESHEET_ERROR = "QWidget { background-color: #f55; color: white; font-weight:bold }"
def __init__(self, parent=None):
super(ScriptingOptionsPage, self).__init__(parent)
self.ui = Ui_ScriptingOptionsPage()
self.ui.setupUi(self)
self.highlighter = TaggerScriptSyntaxHighlighter(self.ui.tagger_script.document())
self.connect(self.ui.tagger_script, QtCore.SIGNAL("textChanged()"), self.live_checker)
def live_checker(self):
self.ui.script_error.setStyleSheet("");
self.ui.script_error.setText("")
try:
self.check()
except OptionsCheckError, e:
self.ui.script_error.setStyleSheet(self.STYLESHEET_ERROR);
self.ui.script_error.setText(e.message)
return
def check(self):
parser = ScriptParser()
@@ -91,5 +104,4 @@ class ScriptingOptionsPage(OptionsPage):
self.config.setting["enable_tagger_script"] = self.ui.enable_tagger_script.isChecked()
self.config.setting["tagger_script"] = self.ui.tagger_script.toPlainText()
register_options_page(ScriptingOptionsPage)
register_options_page(ScriptingOptionsPage)

View File

@@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'ui/options_script.ui'
#
# Created: Sun Jan 13 17:42:15 2008
# by: PyQt4 UI code generator 4.3
# Created: Tue Feb 24 22:56:42 2009
# by: PyQt4 UI code generator 4.4.4
#
# WARNING! All changes made in this file will be lost!
@@ -12,37 +12,28 @@ from PyQt4 import QtCore, QtGui
class Ui_ScriptingOptionsPage(object):
def setupUi(self, ScriptingOptionsPage):
ScriptingOptionsPage.setObjectName("ScriptingOptionsPage")
ScriptingOptionsPage.resize(QtCore.QSize(QtCore.QRect(0,0,222,228).size()).expandedTo(ScriptingOptionsPage.minimumSizeHint()))
ScriptingOptionsPage.resize(605, 377)
self.vboxlayout = QtGui.QVBoxLayout(ScriptingOptionsPage)
self.vboxlayout.setMargin(9)
self.vboxlayout.setSpacing(6)
self.vboxlayout.setMargin(9)
self.vboxlayout.setObjectName("vboxlayout")
self.enable_tagger_script = QtGui.QGroupBox(ScriptingOptionsPage)
self.enable_tagger_script.setCheckable(True)
self.enable_tagger_script.setObjectName("enable_tagger_script")
self.vboxlayout1 = QtGui.QVBoxLayout(self.enable_tagger_script)
self.vboxlayout1.setMargin(9)
self.vboxlayout1.setSpacing(6)
self.vboxlayout1.setObjectName("vboxlayout1")
self.verticalLayout = QtGui.QVBoxLayout(self.enable_tagger_script)
self.verticalLayout.setObjectName("verticalLayout")
self.tagger_script = QtGui.QTextEdit(self.enable_tagger_script)
font = QtGui.QFont()
font.setFamily("Courier")
font.setPointSize(8)
font.setWeight(50)
font.setItalic(False)
font.setUnderline(False)
font.setStrikeOut(False)
font.setBold(False)
font.setFamily("Monospace")
self.tagger_script.setFont(font)
self.tagger_script.setLineWrapMode(QtGui.QTextEdit.NoWrap)
self.tagger_script.setAcceptRichText(False)
self.tagger_script.setObjectName("tagger_script")
self.vboxlayout1.addWidget(self.tagger_script)
self.verticalLayout.addWidget(self.tagger_script)
self.script_error = QtGui.QLabel(self.enable_tagger_script)
self.script_error.setAlignment(QtCore.Qt.AlignCenter)
self.script_error.setObjectName("script_error")
self.verticalLayout.addWidget(self.script_error)
self.vboxlayout.addWidget(self.enable_tagger_script)
self.retranslateUi(ScriptingOptionsPage)

View File

@@ -5,17 +5,17 @@
<rect>
<x>0</x>
<y>0</y>
<width>222</width>
<height>228</height>
<width>605</width>
<height>377</height>
</rect>
</property>
<layout class="QVBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<property name="margin" >
<number>9</number>
</property>
<item>
<widget class="QGroupBox" name="enable_tagger_script" >
<property name="title" >
@@ -24,24 +24,12 @@
<property name="checkable" >
<bool>true</bool>
</property>
<layout class="QVBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<layout class="QVBoxLayout" name="verticalLayout" >
<item>
<widget class="QTextEdit" name="tagger_script" >
<property name="font" >
<font>
<family>Courier</family>
<pointsize>8</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
<underline>false</underline>
<strikeout>false</strikeout>
<family>Monospace</family>
</font>
</property>
<property name="lineWrapMode" >
@@ -52,6 +40,16 @@
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="script_error" >
<property name="text" >
<string/>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>