]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
It expands content of the search tool. It appends:
authornds <nds@opencascade.com>
Mon, 13 Apr 2009 11:26:52 +0000 (11:26 +0000)
committernds <nds@opencascade.com>
Mon, 13 Apr 2009 11:26:52 +0000 (11:26 +0000)
1. method updateContents(bool) to color content of the search control
2. handling of resultChanged() signal for searcher, to update color content of the search control.
This is necessary to move searching in external thread in ACHERON.

src/Qtx/QtxSearchTool.cxx
src/Qtx/QtxSearchTool.h

index 88e2bae13737ecef7ab76bd643da318a5af2e490..a5770a8aeafd8ffa083e007b7b28681ac19aa245 100644 (file)
@@ -380,6 +380,8 @@ void QtxSearchTool::setSearcher( QtxSearchTool::Searcher* s )
   if ( mySearcher )
     delete mySearcher;
   mySearcher = s;
+  connect( mySearcher, SIGNAL( resultChanged( bool ) ),
+           this, SLOT( searchResultChanged( bool ) ) );
 }
 
 /*!
@@ -824,12 +826,6 @@ void QtxSearchTool::find( const QString& what, int where )
   if ( !isVisible() )
     show();
 
-  QPalette p = myData->palette();
-  p.setColor( QPalette::Active,
-             QPalette::Base,
-             QApplication::palette( myData ).color( QPalette::Active,
-                                                    QPalette::Base ) );
-
   bool found = true;
   if ( mySearcher && !what.isEmpty() )
   {
@@ -849,13 +845,10 @@ void QtxSearchTool::find( const QString& what, int where )
     }
   }
 
-  if ( !found )
-    p.setColor( QPalette::Active, QPalette::Base, QColor( highlightColor ) );
-
   if ( !focused() && myAutoHideEnabled )
     myAutoHideTimer->start();
 
-  myData->setPalette( p );
+  updateContent( found );
 }
 
 /*!
@@ -867,6 +860,15 @@ void QtxSearchTool::modifierSwitched()
   find( myData->text() );
 }
 
+/*!
+  \brief Called when the search result's changed. It updates validity of the current content
+  \internal
+*/
+void QtxSearchTool::searchResultChanged( bool theResult )
+{
+  updateContent( theResult );
+}
+
 /*!
   \brief Initialize the search tool widget.
   \internal
@@ -1063,6 +1065,20 @@ void QtxSearchTool::updateControls()
   myModWidget->setVisible( myControls & Modifiers );
 }
 
+/*!
+  \brief Colors the data content in valid/invalid value.
+  \param validState flag tells about validity of the current content
+  \internal
+*/
+void QtxSearchTool::updateContent( const bool& validState )
+{
+  QPalette p = myData->palette();
+  p.setColor( QPalette::Active, QPalette::Base, validState
+        ? QApplication::palette( myData ).color( QPalette::Active, QPalette::Base )
+        : QColor( highlightColor ) );
+  myData->setPalette( p );
+}
+
 /*!
   \class QtxSearchTool::Searcher
   \brief Generic searcher class.
index f91d00ff055a32095b4472f7bb5a3b37c40af8af..ec65e9b086d5afe00d1eeb04c3f7932f70024089 100644 (file)
@@ -127,6 +127,7 @@ public slots:
 private slots:
   void                find( const QString&, int = fAny );
   void                modifierSwitched();
+  void                searchResultChanged( bool );
 
 private:
   void                init();
@@ -135,6 +136,7 @@ private:
   void                initShortcuts( const QList<QKeySequence>& );
   void                updateShortcuts();
   void                updateControls();
+  void                updateContent( const bool& );
 
 private:
   typedef QPointer<QShortcut> ShortcutPtr;
@@ -162,8 +164,10 @@ private:
   QMap<int, QWidget*> myWidgets;
 };
 
-class QTX_EXPORT QtxSearchTool::Searcher
+class QTX_EXPORT QtxSearchTool::Searcher : public QObject
 {
+  Q_OBJECT
+
 public:
   Searcher();
   virtual ~Searcher();
@@ -173,6 +177,9 @@ public:
   virtual bool findPrevious( const QString&, QtxSearchTool* ) = 0;
   virtual bool findFirst( const QString&, QtxSearchTool* ) = 0;
   virtual bool findLast( const QString&, QtxSearchTool* ) = 0;
+
+signals:
+  void         resultChanged( bool );
 };
 
 class QTX_EXPORT QtxTreeViewSearcher : public QtxSearchTool::Searcher