]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
SALOME_Session_Server indicating to SUIT_Application when
authorabn <adrien.bruneton@cea.fr>
Thu, 14 Apr 2016 09:16:12 +0000 (11:16 +0200)
committerabn <adrien.bruneton@cea.fr>
Thu, 14 Apr 2016 09:16:12 +0000 (11:16 +0200)
the main event loop is starting. Useful for QtTesting tests
in MED module.

src/SUIT/SUIT_Application.cxx
src/SUIT/SUIT_Application.h
src/Session/SALOME_Session_Server.cxx

index 95a42da89a584a20d00b7e136ecee0569e194cf0..50f5f8c08cb501a3a655952e4464f3fea82c44c3 100755 (executable)
@@ -58,7 +58,8 @@ SUIT_Application::SUIT_Application()
 : QObject( 0 ),
   myStudy( 0 ),
   myDesktop( 0 ),
-  myStatusLabel( 0 )
+  myStatusLabel( 0 ),
+  myEventLoopStarted(false)
 {
   if ( SUIT_Session::session() )
     SUIT_Session::session()->insertApplication( this );
@@ -727,3 +728,10 @@ void SUIT_Application::onHelpContextModule( const QString& /*theComponentName*/,
                                             const QString& /*theContext*/ )
 {
 }
+
+
+void SUIT_Application::onMainEventLoopStarting()
+{
+  myEventLoopStarted = true;
+  emit mainEventLoopStarting();
+}
index a9225c3f96952ea7f07e945f2094639fa0c75230..6400a4907b8f64e70f12ca84549c0670e04add01 100755 (executable)
@@ -115,16 +115,19 @@ public:
   virtual int           viewManagerId ( const SUIT_ViewManager* ) const = 0;
   virtual void          viewManagers( const QString&, QList<SUIT_ViewManager*>& ) const = 0;
   QAction*              action( const int ) const;
+  bool                  isMainEventLoopStarted() const { return myEventLoopStarted; }
 
 signals:
   void                  applicationClosed( SUIT_Application* );
   void                  activated( SUIT_Application* );
 //  void                  moving();
   void                  infoChanged( QString );
+  void                  mainEventLoopStarting();
 
 public slots:
   virtual void          updateCommandsStatus();
   virtual void          onHelpContextModule( const QString&, const QString&, const QString& = QString() );
+  virtual void          onMainEventLoopStarting();
 
 private slots:
   void                  onInfoClear();
@@ -191,6 +194,8 @@ private:
   SUIT_ShortcutMgr*     myShortcutMgr;
 
   QLabel*               myStatusLabel;
+
+  bool                  myEventLoopStarted;
 };
 
 //! This function must return a new application instance.
index d84b326b903010efb1a68892e4eb4b3b8562d96a..91907524317b6eb44d33ce62a02f5d2dfbef068c 100755 (executable)
@@ -77,6 +77,7 @@
 #include <QWaitCondition>
 #include <QRegExp>
 #include <QTextStream>
+#include <QTimer>
 
 /*! - read arguments, define list of server to launch with their arguments.
  * - wait for naming service
@@ -577,6 +578,9 @@ int main( int argc, char **argv )
         if ( splash )
           splash->finish( aGUIApp->desktop() );
 
+        // Post an event that will be processed as soon as the main event loop is starting - useful for QtTesting
+        // test scenarios, in the MED module for example.
+        QTimer::singleShot(0, aGUIApp, SLOT(onMainEventLoopStarting()));
         result = _qappl.exec();
         
         splash = 0;