]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Emit a signal and propagate it to the active module when panel is shown vuzlov/20215
authorvsr <vsr@opencascade.com>
Tue, 24 Nov 2020 08:31:42 +0000 (11:31 +0300)
committervsr <vsr@opencascade.com>
Tue, 24 Nov 2020 08:31:42 +0000 (11:31 +0300)
doc/salome/gui/input/using_help_panel.rst
src/LightApp/LightApp_Application.cxx
src/LightApp/LightApp_Application.h
src/LightApp/LightApp_Module.cxx
src/LightApp/LightApp_Module.h
src/Qtx/QtxDockWidget.cxx
src/Qtx/QtxDockWidget.h

index 20f8d1a9b2ede40378ea40c6278d65bc991eb35f..9321a3d2030c3e50b5040e05ccb6f9988a357937 100644 (file)
@@ -165,3 +165,12 @@ For Python modules, *Help panel* can be accessed via the ``SalomePyQt`` Python m
 
     # Clear Help panel
     sg.infoClear()
+
+.. _hp_update_panel
+
+Notifications
+=============
+
+Each time when *Help panel* is shown, currently active module is informed via
+the virtual method ``updateInfoPanel()``. This method can be used to properly
+update the contents of the *Help panel*, depending on the current context.
index 72b13bda920db599a262528dced5dd8bb5f3c1d2..1f57055cf09d43c677f2adaa5b2a74bc5cd3ae2c 100644 (file)
@@ -1388,6 +1388,7 @@ void LightApp_Application::insertDockWindow( const int id, QWidget* wid )
     // It is not movable and not floatable.
     dock->setAllowedAreas( Qt::RightDockWidgetArea );
     dock->setFeatures( QDockWidget::DockWidgetClosable );
+    connect( dock, SIGNAL( aboutToShow()), this, SLOT( onInfoPanelShown() ) );
   }
   else {
     dock->setFeatures( QDockWidget::AllDockWidgetFeatures );
@@ -5079,6 +5080,12 @@ void LightApp_Application::onDesktopMessage( const QString& message )
   }
 }
 
+void LightApp_Application::onInfoPanelShown()
+{
+  if ( activeModule() && activeModule()->inherits( "LightApp_Module" ) )
+    ((LightApp_Module*)activeModule())->updateInfoPanel();
+}
+
 /*!
   Internal method. 
   Returns all top level toolbars.
index 8f15d63b089e1ab35e11a607959d910d7157963d..da8ffc266784632ec2c2b127d5b9f031a4c14576 100644 (file)
@@ -270,6 +270,8 @@ protected slots:
 
   virtual void                        onDesktopMessage( const QString& );
 
+  virtual void                        onInfoPanelShown();
+
 private slots:
   void                                onSelection();
   void                                onRefresh();
index da1d8a70c681e499621a75a6232d78210002dc8e..9373ae2ee20918b9987f0149d84b40ef607dbf5d 100644 (file)
@@ -315,6 +315,11 @@ void LightApp_Module::MenuItem()
 {
 }
 
+/*!NOT IMPLEMENTED*/
+void LightApp_Module::updateInfoPanel()
+{
+}
+
 /*!NOT IMPLEMENTED*/
 void LightApp_Module::createPreferences()
 {
index 31222c6154858498b9b65715219d35787684ab79..94fd9396fccf8456d4084659ee444a216785e61e 100644 (file)
@@ -117,6 +117,8 @@ public slots:
 
   void                                MenuItem();
 
+  virtual void                        updateInfoPanel();
+
 protected slots:
   virtual void                        onModelSaved();
   virtual void                        onModelOpened();
index fc98276542d3be126a1daeb89da5154b158a8027..4bb125b31b4b855876aee5c427b561d8b2e1305d 100644 (file)
@@ -376,13 +376,7 @@ QtxDockWidget::~QtxDockWidget()
 */
 QSize QtxDockWidget::sizeHint() const
 {
-  QSize sz = QDockWidget::sizeHint();
-
-  // printf( "----------------> QtxDockWidget::sizeHint()\n" );
-
   return QSize( 500, 100 );
-
-  return sz;
 }
 
 /*!
@@ -391,9 +385,7 @@ QSize QtxDockWidget::sizeHint() const
 */
 QSize QtxDockWidget::minimumSizeHint() const
 {
-  QSize sz = QDockWidget::minimumSizeHint();
-
-  return sz;
+  return QDockWidget::minimumSizeHint();
 }
 
 /*!
@@ -415,6 +407,9 @@ void QtxDockWidget::setVisible( bool on )
     else
       myWatcher->hidden( this );
   }
+
+  if ( on )
+    emit( aboutToShow() );
 }
 
 /*!
index 53ecbb61f8e1887527e7da03be7c7df48d8fff3b..048a9e64d9af1b49a854fd248c8da512b0995f67 100644 (file)
@@ -49,6 +49,7 @@ public:
 
 signals:
   void            orientationChanged( Qt::Orientation );
+  void            aboutToShow();
 
 public slots:
   virtual void    setVisible( bool );