X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FCAM%2FCAM_Application.cxx;h=e45d4a8cdf24950d56b0d38690062d21b45dd272;hb=e6caa123c65e3c4a3017364ec5bb4225fd898465;hp=0f742ad8781eec026f6cf4d225f5e6f11bc229e9;hpb=5ab4e9f868874916c91b51f12aa8beacf09f4125;p=modules%2Fgui.git diff --git a/src/CAM/CAM_Application.cxx b/src/CAM/CAM_Application.cxx index 0f742ad87..e45d4a8cd 100755 --- a/src/CAM/CAM_Application.cxx +++ b/src/CAM/CAM_Application.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -44,6 +44,7 @@ #endif #include +#include namespace { @@ -384,7 +385,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 +458,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