diff --git a/picard/ui/options/scripting.py b/picard/ui/options/scripting.py index a5d5c341b..a7cf972b5 100644 --- a/picard/ui/options/scripting.py +++ b/picard/ui/options/scripting.py @@ -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) \ No newline at end of file +register_options_page(ScriptingOptionsPage) diff --git a/picard/ui/ui_options_script.py b/picard/ui/ui_options_script.py index 26b8178ac..9cbc82bc5 100644 --- a/picard/ui/ui_options_script.py +++ b/picard/ui/ui_options_script.py @@ -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) diff --git a/ui/options_script.ui b/ui/options_script.ui index 83a267ee3..d5c7e2459 100644 --- a/ui/options_script.ui +++ b/ui/options_script.ui @@ -5,17 +5,17 @@ 0 0 - 222 - 228 + 605 + 377 - - 9 - 6 + + 9 + @@ -24,24 +24,12 @@ true - - - 9 - - - 6 - + - Courier - 8 - 50 - false - false - false - false + Monospace @@ -52,6 +40,16 @@ + + + + + + + Qt::AlignCenter + + +