]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
0021207: EDF GUI: Impossible to show hide toolbars
authorvsr <vsr@opencascade.com>
Mon, 14 Mar 2011 14:07:43 +0000 (14:07 +0000)
committervsr <vsr@opencascade.com>
Mon, 14 Mar 2011 14:07:43 +0000 (14:07 +0000)
src/Qtx/QtxActionToolMgr.cxx
src/Qtx/QtxToolBar.cxx

index b815cc2c43f9a6b66e931c649022513203605a67..35a5bcef88af7ce52c7d4d6cbd8921fc62c8cad5 100644 (file)
@@ -28,6 +28,8 @@
 #include "QtxAction.h"
 #include "QtxToolBar.h"
 
+#include <QApplication>
+#include <QHideEvent>
 #include <QMainWindow>
 
 /*!
@@ -131,7 +133,7 @@ int QtxActionToolMgr::createToolBar( const QString& title, bool floatable, Qt::T
   if ( !tb )
   {
     tb = new QtxToolBar( true, tbw );
-    tb->setVisible( false );  // VSR: create toolbar visible initially
+    //tb->setVisible( false );  // VSR: create toolbar visible initially
     tb->setFloatable( floatable );
     tb->setAllowedAreas( dockAreas );
     tb->setMovable( dockAreas & Qt::AllToolBarAreas );
@@ -139,6 +141,7 @@ int QtxActionToolMgr::createToolBar( const QString& title, bool floatable, Qt::T
     tb->setWindowTitle( title );
     tb->setObjectName( title );
     tb->setToolTip( title );
+    QApplication::postEvent( tb, new QHideEvent());
    }
 
   tInfo.toolBar = tb;
index abbfb174989750f828741d48c36ab64a59f8a9dd..0b6b9f3d78bd0cc54e0ebfc96056acbf0d9b3b41 100644 (file)
@@ -101,8 +101,9 @@ bool QtxToolBar::Watcher::eventFilter( QObject* o, QEvent* e )
 
   bool updVis = ( o != myCont && ( e->type() == QEvent::Show || e->type() == QEvent::ShowToParent ||
                                    e->type() == QEvent::Hide || e->type() == QEvent::HideToParent ) ) ||
-                ( o == myCont && ( e->type() == QEvent::ChildRemoved || e->type() == QEvent::Show ||
-                                   e->type() == QEvent::ShowToParent || e->type() == QEvent::ActionAdded ||
+                ( o == myCont && ( e->type() == QEvent::ChildAdded   || e->type() == QEvent::ChildRemoved || e->type() == QEvent::Show ||
+                                   e->type() == QEvent::ShowToParent || e->type() == QEvent::Hide ||
+                                  e->type() == QEvent::HideToParent || e->type() == QEvent::ActionAdded ||
                                    e->type() == QEvent::ActionRemoved ) );
 
   if ( updVis )
@@ -276,7 +277,7 @@ void QtxToolBar::Watcher::updateVisibility()
     }
   }
 
-  vis = vis || (!empty && isVisible());
+  vis = (!isEmpty() && isVisible());
   if ( vis != myCont->isVisibleTo( myCont->parentWidget() ) )
     vis ? showContainer() : hideContainer();
 }
@@ -363,6 +364,7 @@ QtxToolBar::~QtxToolBar()
 */
 void QtxToolBar::setVisible( bool visible )
 {
+  if ( isVisible() == visible ) return;
   if ( myWatcher )
   {
     if ( visible )