diff --git a/modules/gui/pymod/scene/preset_editor_widget.py b/modules/gui/pymod/scene/preset_editor_widget.py index 65ff8947c7c9b4d2c3cc1c258b17696005b85467..457cda457fa8a09f1ffd54cf13bc03dc79ceeb20 100644 --- a/modules/gui/pymod/scene/preset_editor_widget.py +++ b/modules/gui/pymod/scene/preset_editor_widget.py @@ -30,7 +30,7 @@ from gradient_editor_widget import GradientPreview from gradient_editor_widget import GradientEdit from preset_editor_list_model import PresetEditorListModel from immutable_gradient_info_handler import ImmutableGradientInfoHandler -from query_editor import QueryEditor +from query_editor import QueryEditorWidget from ost.mol import Prop from ost.gfx import ByElementColorOp from ost.gfx import ByChainColorOp @@ -183,7 +183,7 @@ class PresetEditor(QtGui.QDialog): class UniformColorOpWidget(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) - self.query_editor_ = QueryEditor(self) + self.query_editor_ = QueryEditorWidget(self) detail_label = QtGui.QLabel("Parts") self.detail_selection_cb_ = QtGui.QComboBox() @@ -254,7 +254,7 @@ class GradientLevelColorOpWidget(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) - self.query_editor_ = QueryEditor(self) + self.query_editor_ = QueryEditorWidget(self) detail_label = QtGui.QLabel("Parts") self.detail_selection_cb_ = QtGui.QComboBox() @@ -422,7 +422,7 @@ class GradientLevelColorOpWidget(QtGui.QDialog): class ByElementColorOpWidget(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) - self.query_editor_ = QueryEditor(self) + self.query_editor_ = QueryEditorWidget(self) detail_label = QtGui.QLabel("Parts") self.detail_selection_cb_ = QtGui.QComboBox() @@ -478,7 +478,7 @@ class ByElementColorOpWidget(QtGui.QDialog): class ByChainColorOpWidget(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) - self.query_editor_ = QueryEditor(self) + self.query_editor_ = QueryEditorWidget(self) detail_label = QtGui.QLabel("Parts") self.detail_selection_cb_ = QtGui.QComboBox() @@ -534,7 +534,7 @@ class ByChainColorOpWidget(QtGui.QDialog): class RenderOpWidget(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) - self.query_editor_ = QueryEditor(self) + self.query_editor_ = QueryEditorWidget(self) self.keep_ = QtGui.QCheckBox("Keep") self.keep_.setChecked(False) @@ -609,7 +609,7 @@ class RenderOpWidget(QtGui.QDialog): class VisibilityOpWidget(QtGui.QDialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) - self.query_editor_ = QueryEditor(self) + self.query_editor_ = QueryEditorWidget(self) self.visible_ = QtGui.QCheckBox("Visible") self.visible_.setChecked(True) @@ -647,4 +647,4 @@ class VisibilityOpWidget(QtGui.QDialog): self.accept() def Cancel(self): - self.reject() \ No newline at end of file + self.reject() diff --git a/modules/gui/pymod/scene/query_editor.py b/modules/gui/pymod/scene/query_editor.py index 7bd05a89d3dc32c677460b5ba05fbe8572952a8b..07b433a276f52c8f56da79bef72c85f7b02b5758 100644 --- a/modules/gui/pymod/scene/query_editor.py +++ b/modules/gui/pymod/scene/query_editor.py @@ -1,13 +1,17 @@ from ost import mol from PyQt4 import QtCore, QtGui -class QueryEditor(QtGui.QWidget): +class QueryEditorWidget(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.selection_edit_ = QtGui.QLineEdit() - selection_label = QtGui.QLabel("Selection") - + selection_label = QtGui.QLabel("Selection",self) + self.status_=QtGui.QLabel("",self); + self.status_.setWordWrap(True) + self.status_.setMargin(0) + self.status_.setHidden(True) + self.checkboxes_ = dict() for k,v in mol.QueryFlag.__dict__["values"].iteritems(): checkbox = QtGui.QCheckBox(str(v),self) @@ -24,11 +28,15 @@ class QueryEditor(QtGui.QWidget): grid.setContentsMargins(0,5,0,0) grid.addWidget(selection_label,0,0,1,1) grid.addWidget(self.selection_edit_,0,1,1,1) - grid.addWidget(flag_label,1,0,1,1) - grid.addLayout(v_checkbox_layout,1,1,1,1) - grid.setRowStretch(1, 1) + grid.setRowMinimumHeight(1,0) + grid.addWidget(self.status_,1,0,1,2) + grid.addWidget(flag_label,2,0,1,1) + grid.addLayout(v_checkbox_layout,2,1,1,1) + grid.setRowStretch(2, 1) #group_box = QtGui.QGroupBox("Selection",self) #group_box.setLayout(h_layout) + + self.connect(self.selection_edit_,QtCore.SIGNAL("textChanged(const QString& )"),self.UpdateMessage) def GetQueryFlags(self): flag = 0 @@ -51,4 +59,15 @@ class QueryEditor(QtGui.QWidget): k.setChecked(False) def SetQuery(self,query): - self.selection_edit_.setText(query) \ No newline at end of file + self.selection_edit_.setText(query) + + def UpdateMessage(self): + q=self.GetQuery() + if q.IsValid(): + self.status_.setText("") + self.status_.setHidden(True) + + else: + d=q.GetErrorDescription() + self.status_.setText("<font color='red'>%s</font>"%d.msg) + self.status_.setVisible(True) \ No newline at end of file