Salome HOME
Support both 5.5 and 5.6 version of ParaView
[modules/gui.git] / src / SUIT / SUIT_Application.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 95a42da..06d9180
@@ -58,7 +58,8 @@ SUIT_Application::SUIT_Application()
 : QObject( 0 ),
   myStudy( 0 ),
   myDesktop( 0 ),
-  myStatusLabel( 0 )
+  myStatusLabel( 0 ),
+  myPostRoutines( QList<PostRoutine>() )
 {
   if ( SUIT_Session::session() )
     SUIT_Session::session()->insertApplication( this );
@@ -74,6 +75,9 @@ SUIT_Application::~SUIT_Application()
   delete s;
 
   setDesktop( 0 );
+
+  foreach ( PostRoutine routine, myPostRoutines )
+    routine();
 }
 
 /*!
@@ -689,7 +693,8 @@ int SUIT_Application::registerAction( const int id, QAction* a )
   if ( desktop() && desktop()->toolMgr() )
     desktop()->toolMgr()->registerAction( a );
 
-  if ( desktop() )
+  if ( desktop() && a->shortcutContext() != Qt::WidgetShortcut &&
+       a->shortcutContext() != Qt::WidgetWithChildrenShortcut )
     desktop()->addAction( a );
 
   return ident;
@@ -727,3 +732,9 @@ void SUIT_Application::onHelpContextModule( const QString& /*theComponentName*/,
                                             const QString& /*theContext*/ )
 {
 }
+
+void SUIT_Application::addPostRoutine( PostRoutine theRoutine )
+{
+  if ( !myPostRoutines.contains( theRoutine ) )
+    myPostRoutines << theRoutine;
+}