]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
CCAR: modify createMenu in SalomePyQt to be able to add menus not only
authorcaremoli <caremoli>
Mon, 29 Mar 2010 07:03:19 +0000 (07:03 +0000)
committercaremoli <caremoli>
Mon, 29 Mar 2010 07:03:19 +0000 (07:03 +0000)
in a Python module but also in a C++ module

src/LightApp/LightApp_Module.cxx
src/LightApp/LightApp_Module.h
src/SALOME_PYQT/SalomePyQt/SalomePyQt.cxx
src/SalomeApp/salome_pluginsmanager.py

index 22823451343b98bb13f4184e075f96c5c384f49a..7618536957b4fab42d466a4a060f3bed1d68b632 100644 (file)
@@ -649,3 +649,30 @@ bool LightApp_Module::reusableOperation( const int id )
 {
  return true;
 } 
+
+
+
+int LightApp_Module::createMenu( const QString& subMenu, const int menu, const int id, const int group, const int idx )
+{
+  return CAM_Module::createMenu( subMenu, menu, id, group, idx );
+}
+int LightApp_Module::createMenu( const QString& subMenu, const QString& menu, const int id, const int group, const int idx )
+{
+  return CAM_Module::createMenu( subMenu, menu, id, group, idx );
+}
+int LightApp_Module::createMenu( const int id, const int menu, const int group, const int idx )
+{
+  return CAM_Module::createMenu( id, menu, group, idx );
+}
+int LightApp_Module::createMenu( const int id, const QString& menu, const int group, const int idx )
+{
+  return CAM_Module::createMenu( id, menu, group, idx );
+}
+int LightApp_Module::createMenu( QAction* a, const int menu, const int id, const int group, const int idx )
+{
+  return CAM_Module::createMenu( a, menu, id, group, idx );
+}
+int LightApp_Module::createMenu( QAction* a, const QString& menu, const int id, const int group, const int idx )
+{
+  return CAM_Module::createMenu( a, menu, id, group, idx );
+}
index c608497e52197b151afc0b15a2b386256a865fc9..19c857f485f3314ba6138098f7c8432e3b88e7aa 100644 (file)
@@ -92,6 +92,13 @@ public:
   virtual LightApp_Displayer*         displayer();
   virtual LightApp_Selection*         createSelection() const;
 
+  int                    createMenu( const QString&, const int, const int = -1, const int = -1, const int = -1 );
+  int                    createMenu( const QString&, const QString&, const int = -1, const int = -1, const int = -1 );
+  int                    createMenu( const int, const int, const int = -1, const int = -1 );
+  int                    createMenu( const int, const QString&, const int = -1, const int = -1 );
+  int                    createMenu( QAction*, const int, const int = -1, const int = -1, const int = -1 );
+  int                    createMenu( QAction*, const QString&, const int = -1, const int = -1, const int = -1 );
+
 public slots:
   virtual bool                        activateModule( SUIT_Study* );
   virtual bool                        deactivateModule( SUIT_Study* );
index b7efe52de8035fcac1f93623c579cea4068b83c7..8c6c605370a316806d56ae379221bdfef03cbddd 100644 (file)
@@ -1521,7 +1521,7 @@ public:
   CrMenu( QAction* action, const QString& menu, const int id, const int group, const int idx ) 
     : myCase( 5 ), myAction( action ), myMenuName( menu ), myId( id ), myGroup( group ), myIndex( idx ) {}
 
-  int execute( SALOME_PYQT_ModuleLight* module ) const
+  int execute( LightApp_Module* module ) const
   {
     if ( module ) {
       switch ( myCase ) {
@@ -1562,9 +1562,12 @@ public:
     : myResult( -1 ), myCrMenu( crMenu ) {}
   virtual void Execute()
   {
-    SALOME_PYQT_ModuleLight* module = getActiveModule();
-    if ( module )
-      myResult = myCrMenu.execute( module );
+    if ( LightApp_Application* anApp = getApplication() ) 
+      {
+        LightApp_Module* module = dynamic_cast<LightApp_Module*>( anApp->activeModule() );
+        if ( module )
+          myResult = myCrMenu.execute( module );
+      }
   }
 };
 
index 6dfb9f29c34970bda3a2840e8ccdd014390d8ee5..0b566b9bdb2f6b494aa2fb82c47c7275d180889f 100644 (file)
@@ -133,7 +133,11 @@ class Plugins:
           for directory,salome_plugins_file in plugins_files:
             if directory not in sys.path:
               sys.path.insert(0,directory)
-            execfile(salome_plugins_file,globals(),{})
+            try:
+              execfile(salome_plugins_file,globals(),{})
+            except:
+              print "Error while loading plugins from file:",salome_plugins_file
+              traceback.print_exc()
           self.updateMenu()
 
     def updateMenu(self):