From 214d43338c290889637bea519718d76ef8063564 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Thu, 5 Aug 2010 14:16:07 +0000
Subject: [PATCH] QueryEditor renamed to QueryEditorWidget Display error in
 widget

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2630 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 .../gui/pymod/scene/preset_editor_widget.py   | 16 ++++-----
 modules/gui/pymod/scene/query_editor.py       | 33 +++++++++++++++----
 2 files changed, 34 insertions(+), 15 deletions(-)

diff --git a/modules/gui/pymod/scene/preset_editor_widget.py b/modules/gui/pymod/scene/preset_editor_widget.py
index 65ff8947c..457cda457 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 7bd05a89d..07b433a27 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
-- 
GitLab