]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
no message
authorstv <stv@opencascade.com>
Tue, 31 May 2005 05:15:33 +0000 (05:15 +0000)
committerstv <stv@opencascade.com>
Tue, 31 May 2005 05:15:33 +0000 (05:15 +0000)
src/ObjBrowser/OB_ListItem.cxx
src/ObjBrowser/OB_ListItem.h
src/ObjBrowser/OB_ListView.cxx
src/ObjBrowser/OB_ListView.h

index 0b352d63191a9c0c3d546c5195a7b93d1c1acbe0..81fa6b7471c426b3907a891274ad34dae39354c7 100755 (executable)
@@ -1,5 +1,7 @@
 #include "OB_ListItem.h"
 
+#include "OB_ListView.h"
+
 #include <SUIT_DataObject.h>
 
 #include <qpainter.h>
@@ -114,6 +116,18 @@ void ListItem<T>::paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r
   T::paintFocus( p, cg, rect );
 }
 
+template<class T>
+void ListItem<T>::setSelected( bool s )
+{
+  if ( s && listView() && listView()->inherits( "OB_ListView" ) )
+  {
+    OB_ListView* oblv = (OB_ListView*)listView();
+    s = s && oblv->isOk( this );
+  }
+
+  QListViewItem::setSelected( s );
+}
+
 template<class T>
 void ListItem<T>::update()
 {
index 5d057dc6ab2d491d2fa858b358b1ff969360f834..f53145c66d0c85ca443be08eabb4937658a2b8e6 100755 (executable)
@@ -11,7 +11,8 @@ class SUIT_DataObject;
   base template class for ListViewItems and CheckListItems
 */
 
-template<class T> class ListItem : public T {
+template<class T> class ListItem : public T
+{
 public:
   ListItem( SUIT_DataObject*, QListView* );
   ListItem( SUIT_DataObject*, QListViewItem* );
@@ -23,15 +24,13 @@ public:
   ListItem( SUIT_DataObject*, QListView*, QListViewItem*, int );
   ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem*, int );
 
-  virtual void paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align );
-
-  virtual void paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r );
-
-  inline SUIT_DataObject* dataObject() const
-  { return myObject; }
+  virtual void            setSelected( bool s );
+  inline SUIT_DataObject* dataObject() const { return myObject; }
+  virtual void            paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r );
+  virtual void            paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align );
 
 private:
-  void             update();
+  void                     update();
 
 private:
   SUIT_DataObject* myObject;
index fb9ba2341d62acc33b186f191aa98644772ce367..866161e4a544dc5a7c4fff63b4c84eabdb0b0184 100755 (executable)
@@ -38,17 +38,13 @@ void OB_ListView::setFilter( OB_Filter* f )
   myFilter = f;
 }
 
-void OB_ListView::setSelected( QListViewItem* item, bool sel )
+bool OB_ListView::isOk( QListViewItem* item ) const
 {
-  bool on = sel;
-  if ( filter() )
-  {
-    SUIT_DataObject* obj = dataObject( item );
-    if ( obj )
-      on = on && filter()->isOk( obj );
-  }
-
-  QListView::setSelected( item, on );
+  bool ok = true;
+  SUIT_DataObject* obj = dataObject( item );
+  if ( obj && filter() )
+    ok = filter()->isOk( obj );
+  return ok;
 }
 
 int OB_ListView::addColumn( const QString& label, int width )
index 391c0948eaa8138e58bcb49bbc22a1551b4dee8c..6fca182eb78d6c847263e06d58c6e44d521c7670 100755 (executable)
@@ -28,11 +28,11 @@ public:
   OB_Filter*              filter() const;
   void                    setFilter( OB_Filter* );
 
-  virtual void            setSelected( QListViewItem*, bool );
-
   virtual int             addColumn( const QString& label, int width = -1 );
   virtual int             addColumn( const QIconSet& iconset, const QString& label, int width = -1 );
 
+  bool                    isOk( QListViewItem* ) const;
+
 signals:
   void                    dropped( QPtrList<QListViewItem>, QListViewItem*, int );