]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Some functions for columns management were added.
authorstv <stv@opencascade.com>
Tue, 7 Jun 2005 05:11:43 +0000 (05:11 +0000)
committerstv <stv@opencascade.com>
Tue, 7 Jun 2005 05:11:43 +0000 (05:11 +0000)
src/ObjBrowser/OB_Browser.cxx
src/ObjBrowser/OB_Browser.h

index fe451d4b1ee423890ba926da32c676db6f0fefb6..286eed874d3cea5deeeb943511ab6d52de637410 100755 (executable)
@@ -430,7 +430,7 @@ void OB_Browser::setColumnTitle( const int id, const QIconSet& icon, const QStri
 
 bool OB_Browser::isColumnVisible( const int id ) const
 {
-  myColumnIds.contains( id ) && myView->isShown( myColumnIds[id] );
+  return myColumnIds.contains( id ) && myView->isShown( myColumnIds[id] );
 }
 
 void OB_Browser::setColumnShown( const int id, const bool on )
@@ -441,6 +441,14 @@ void OB_Browser::setColumnShown( const int id, const bool on )
   myView->setShown( myColumnIds[id], on );
 }
 
+QValueList<int> OB_Browser::columns() const
+{
+  QValueList<int> lst;
+  for ( QMap<int, int>::ConstIterator it = myColumnIds.begin(); it != myColumnIds.end(); ++it )
+    lst.append( it.key() );
+  return lst;
+}
+
 void OB_Browser::updateTree( SUIT_DataObject* o )
 {
   updateTree( o ? o : getRootObject(), false );
@@ -460,7 +468,12 @@ void OB_Browser::updateTree( SUIT_DataObject* obj, const bool notify )
   SUIT_DataObject* curObj = storeState( selObjs, openObjs, selKeys, openKeys, curKey );
 
   if ( notify )
+  {
+    bool upd = isAutoUpdate();
+    setAutoUpdate( false );
     emit aboutRefresh();
+    setAutoUpdate( upd );
+  }
 
   createConnections( obj );
   updateView( obj );
@@ -887,14 +900,27 @@ void OB_Browser::updateText( QListViewItem* item )
     item->setText( it.data(), obj->text( it.key() ) );
 }
 
-bool OB_Browser::eventFilter(QObject* watched, QEvent* e)
+bool OB_Browser::eventFilter( QObject* o, QEvent* e )
 {
-  if ( watched == myView && e->type() == QEvent::ContextMenu )
+  if ( o == myView && e->type() == QEvent::ContextMenu )
   {
-    contextMenuRequest( (QContextMenuEvent*)e );
+    QContextMenuEvent* ce = (QContextMenuEvent*)e;
+    if ( ce->reason() != QContextMenuEvent::Mouse )
+      contextMenuRequest( ce );
     return true;
   }
-  return QFrame::eventFilter(watched, e);
+  if ( o == myView && e->type() == QEvent::MouseButtonRelease )
+  {
+    QMouseEvent* me = (QMouseEvent*)e;
+    if ( me->button() == RightButton )
+    {
+      QContextMenuEvent ce( QContextMenuEvent::Mouse, me->pos(), me->globalPos(), me->state() );
+      contextMenuRequest( &ce );
+      return true;
+    }
+  }
+
+  return QFrame::eventFilter( o, e );
 }
 
 void OB_Browser::contextMenuPopup( QPopupMenu* menu )
index 2534a0d96f3144fd0255dad3400fc81e58536720..c1cf4ef5f89401d96e4968cac12d719d4df1e624 100755 (executable)
@@ -83,6 +83,8 @@ public:
   bool              isColumnVisible( const int ) const;
   virtual void      setColumnShown( const int, const bool );
 
+  QValueList<int>   columns() const;
+
   virtual bool      eventFilter(QObject* watched, QEvent* e);
 
   QListView*        listView() const;