]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Improvements for HYDRO module: 1. General mechanism for activation of GUI Geometry...
authorjfa <jfa@opencascade.com>
Wed, 4 Sep 2013 13:13:27 +0000 (13:13 +0000)
committerjfa <jfa@opencascade.com>
Wed, 4 Sep 2013 13:13:27 +0000 (13:13 +0000)
src/CAM/CAM_Application.cxx
src/CAM/CAM_Application.h
src/CAM/CAM_Module.cxx
src/CAM/CAM_Module.h

index 8ad3c0119c675d43d6acd93028ac806ad120fdbf..cfad9e9cdf7794419b4f4d434b6f2812b7a60dc8 100755 (executable)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 #include "CAM_Application.h"
 
@@ -44,6 +43,7 @@
 #endif
 
 #include <cstdio>
+#include <iostream>
 
 namespace
 {
@@ -384,7 +384,7 @@ CAM_Module* CAM_Application::loadModule( const QString& modName, const bool show
 */
 bool CAM_Application::activateModule( const QString& modName )
 {
-  if ( !modName.isEmpty() && !activeStudy() || myBlocked )
+  if ( (!modName.isEmpty() && !activeStudy()) || myBlocked )
     return false;
 
   // VSR 25/10/2011: prevent nested activation/deactivation
@@ -457,6 +457,67 @@ bool CAM_Application::activateModule( CAM_Module* mod )
   return true;
 }
 
+/*!
+  \brief Load module \a modName and activate its operation, corresponding to \a actionId.
+  This method is dedicated to run operations of some module from any other module.
+  \param modName module name
+  \param actionId is a numerical unique operation identifier
+  \return \c true in case of success and \c false otherwise
+*/
+bool CAM_Application::activateOperation( const QString& modName, int actionId )
+{
+  if (isModuleAccessible(modName)) {
+    CAM_Module* mod = loadModule(modName, false);
+    if (mod) {
+      addModule(mod);
+      return mod->activateOperation(actionId);
+    }
+  }
+  return false;
+}
+
+/*!
+  \brief Load module \a modName and activate its operation, corresponding to \a actionId.
+  This method is dedicated to run operations of some module from any other module.
+  \param modName module name
+  \param actionId is a string unique operation identifier
+  \return \c true in case of success and \c false otherwise
+*/
+bool CAM_Application::activateOperation( const QString& modName, const QString& actionId )
+{
+  if (isModuleAccessible(modName)) {
+    CAM_Module* mod = loadModule(modName, false);
+    if (mod) {
+      addModule(mod);
+      return mod->activateOperation(actionId);
+    }
+  }
+  return false;
+}
+
+/*!
+  \brief Load module \a modName and activate its operation,
+         corresponding to \a actionId and \a pluginName.
+  This method is dedicated to run operations of some module from any other module.
+  \param modName module name
+  \param actionId is a string unique operation identifier
+  \param pluginName is a name of a plugin where the operation is implemented
+  \return \c true in case of success and \c false otherwise
+*/
+bool CAM_Application::activateOperation( const QString& modName,
+                                         const QString& actionId,
+                                         const QString& pluginName )
+{
+  if (isModuleAccessible(modName)) {
+    CAM_Module* mod = loadModule(modName, false);
+    if (mod) {
+      addModule(mod);
+      return mod->activateOperation(actionId, pluginName);
+    }
+  }
+  return false;
+}
+
 /*!
   \brief Create new study.
   \return study object pointer
index 1477238122df128d774e7a31e65e0e2f5845c113..045aacd7c440910720a357bb863ba614660ee6f0 100755 (executable)
@@ -64,6 +64,11 @@ public:
 
   virtual bool        activateModule( const QString& );
 
+  bool                activateOperation( const QString& modName, int actionId );
+  bool                activateOperation( const QString& modName, const QString& actionId );
+  bool                activateOperation( const QString& modName, const QString& actionId,
+                                         const QString& pluginName );
+
   virtual void        contextMenuPopup( const QString&, QMenu*, QString& );
 
   static QString      moduleName( const QString& );
index e24b70a2d5429c46ade141950a61407f1d9853fd..aa45c36c1240fb9ad19a006d11f55709f5b54815 100755 (executable)
@@ -1046,6 +1046,37 @@ void CAM_Module::updateModuleVisibilityState() {
 
 }
 
+/*!
+  \brief Activate GUI operation of module by its ID.
+  This method is called from CAM_Application::startOperation().
+  \param actionId is a numerical unique operation id.
+*/
+bool CAM_Module::activateOperation( int actionId )
+{
+  return false;
+}
+
+/*!
+  \brief Activate GUI operation of module by its ID.
+  This method is called from CAM_Application::startOperation().
+  \param actionId is a string unique operation id.
+*/
+bool CAM_Module::activateOperation( const QString& actionId )
+{
+  return false;
+}
+
+/*!
+  \brief Activate GUI operation of module by its ID and \a pluginName.
+  This method is called from CAM_Application::startOperation().
+  \param actionId is a string unique operation id.
+  \param pluginName is a name of a plugin where the operation is implemented.
+*/
+bool CAM_Module::activateOperation( const QString& actionId, const QString& pluginName )
+{
+  return false;
+}
+
 
 /*!
   \brief Connect data model of the module to the active study
index 138bb5da87a46f2427518f1f08b1625b46b89640..ae5f6f3916c7210d9e4931e0fe3bba1aba0e8533 100755 (executable)
@@ -83,6 +83,10 @@ public:
 
   virtual void           updateModuleVisibilityState();
 
+  virtual bool           activateOperation( int actionId );
+  virtual bool           activateOperation( const QString& actionId );
+  virtual bool           activateOperation( const QString& actionId, const QString& pluginName );
+
   // actions/menu/toolbars management
 
   QtxActionMenuMgr*      menuMgr() const;