From: jfa Date: Thu, 25 Jun 2009 13:33:45 +0000 (+0000) Subject: Bug 0020378: Gui of SMESH hypothesis not multi-study ? X-Git-Tag: V4_1_0_maintainance_FINAL~50 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=8b251ec90532d79331a6a6fb85e8b21c06d87466;p=modules%2Fsmesh.git Bug 0020378: Gui of SMESH hypothesis not multi-study ? --- diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 685ebbc35..dc4cd6c45 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -24,7 +24,7 @@ // Author : Nicolas REJNERI // Module : SMESH // $Header$ -// + #include "SMESHGUI.h" #include "SMESH_Client.hxx" @@ -2017,11 +2017,13 @@ bool SMESHGUI::OnGUIEvent( int theCommandID ) if ( !aHypothesis->_is_nil() ) { CORBA::String_var aHypType = aHypothesis->GetName(); - SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(aHypType); - if (aCreator) + // BUG 0020378 + //SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(aHypType); + SMESH::HypothesisCreatorPtr aCreator = SMESH::GetHypothesisCreator(aHypType); + if (aCreator) { aCreator->edit( aHypothesis.in(), anIObject->getName(), desktop() ); - else - { + } + else { // report error } } diff --git a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx index 375aaa4e9..2a0930b7b 100644 --- a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx @@ -18,7 +18,7 @@ // 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 "SMESHGUI_HypothesesUtils.h" #include "SMESHGUI.h" @@ -81,8 +81,9 @@ namespace SMESH{ THypothesisDataMap myHypothesesMap; THypothesisDataMap myAlgorithmsMap; - typedef map THypCreatorMap; - THypCreatorMap myHypCreatorMap; + // BUG 0020378 + //typedef map THypCreatorMap; + //THypCreatorMap myHypCreatorMap; list myListOfHypothesesSets; @@ -322,24 +323,26 @@ namespace SMESH{ return false; } - SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType) + HypothesisCreatorPtr GetHypothesisCreator(const char* aHypType) { if(MYDEBUG) MESSAGE("Get HypothesisCreator for " << aHypType); SMESHGUI_GenericHypothesisCreator* aCreator = 0; // check, if creator for this hypothesis type already exists - if (myHypCreatorMap.find(aHypType) != myHypCreatorMap.end()) { - aCreator = myHypCreatorMap[aHypType]; - } - else { + // BUG 0020378 + //if (myHypCreatorMap.find(aHypType) != myHypCreatorMap.end()) { + // aCreator = myHypCreatorMap[aHypType]; + //} + //else + { // 1. Init list of available hypotheses, if needed InitAvailableHypotheses(); // 2. Get names of plugin libraries HypothesisData* aHypData = GetHypothesisData(aHypType); if (!aHypData) - return aCreator; + return HypothesisCreatorPtr(aCreator); QString aClientLibName = aHypData->ClientLibName; QString aServerLibName = aHypData->ServerLibName; @@ -380,7 +383,8 @@ namespace SMESH{ } else { // map hypothesis creator to a hypothesis name - myHypCreatorMap[aHypType] = aCreator; + // BUG 0020378 + //myHypCreatorMap[aHypType] = aCreator; } } } @@ -390,7 +394,7 @@ namespace SMESH{ } } - return aCreator; + return HypothesisCreatorPtr(aCreator); } diff --git a/src/SMESHGUI/SMESHGUI_HypothesesUtils.h b/src/SMESHGUI/SMESHGUI_HypothesesUtils.h index e9d2e6e08..58991f63b 100644 --- a/src/SMESHGUI/SMESHGUI_HypothesesUtils.h +++ b/src/SMESHGUI/SMESHGUI_HypothesesUtils.h @@ -24,7 +24,7 @@ // Author : Julia DOROVSKIKH // Module : SMESH // $Header$ -// + #ifndef SMESHGUI_HypothesesUtils_HeaderFile #define SMESHGUI_HypothesesUtils_HeaderFile @@ -43,13 +43,18 @@ #include +// boost includes +#include + class HypothesisData; class HypothesesSet; class SMESHGUI_GenericHypothesisCreator; class SALOMEDSClient_SObject; class algo_error_array; -namespace SMESH{ +namespace SMESH +{ + typedef boost::shared_ptr HypothesisCreatorPtr; SMESHGUI_EXPORT void InitAvailableHypotheses(); @@ -78,7 +83,7 @@ namespace SMESH{ const HypothesisData* algo2Data); SMESHGUI_EXPORT - SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType); + HypothesisCreatorPtr GetHypothesisCreator(const char* aHypType); SMESHGUI_EXPORT SMESH::SMESH_Hypothesis_ptr CreateHypothesis(const char* aHypType, diff --git a/src/SMESHGUI/SMESHGUI_MeshOp.cxx b/src/SMESHGUI/SMESHGUI_MeshOp.cxx index 8e8394dfb..56ccb0bdf 100644 --- a/src/SMESHGUI/SMESHGUI_MeshOp.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshOp.cxx @@ -1023,7 +1023,9 @@ void SMESHGUI_MeshOp::createHypothesis (const int theDim, SMESH::CreateHypothesis(theTypeName, aHypName, false); } else { // Get hypotheses creator client (GUI) - SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(theTypeName); + // BUG 0020378 + //SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(theTypeName); + SMESH::HypothesisCreatorPtr aCreator = SMESH::GetHypothesisCreator(theTypeName); // Create hypothesis if (aCreator) { @@ -1079,8 +1081,11 @@ void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex ) return; CORBA::String_var aTypeName = aHyp->GetName(); - SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator( aTypeName ); - if ( aCreator ) { + // BUG 0020378 + //SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(aTypeName); + SMESH::HypothesisCreatorPtr aCreator = SMESH::GetHypothesisCreator(aTypeName); + if ( aCreator ) + { int obj = myDlg->getActiveObject(); removeCustomFilters(); // Issue 0020170 myDlg->setEnabled( false ); @@ -1645,11 +1650,14 @@ SMESH::SMESH_Hypothesis_var SMESHGUI_MeshOp::getAlgo( const int theDim ) SMESH::CreateHypothesis(aHypName, aHypData->Label, true); } else { // Get hypotheses creator client (GUI) - SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(aHypName); + // BUG 0020378 + //SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(aHypName); + SMESH::HypothesisCreatorPtr aCreator = SMESH::GetHypothesisCreator(aHypName); // Create algorithm - if (aCreator) + if (aCreator) { aCreator->create(true, aHypName, myDlg); + } else SMESH::CreateHypothesis(aHypName, aHypData->Label, true); } diff --git a/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx index e6b283477..81ee42406 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx @@ -196,8 +196,9 @@ void StdMeshersGUI_LayerDistributionParamWdg::onEdit() return; CORBA::String_var hypType = myHyp->GetName(); - SMESHGUI_GenericHypothesisCreator* - editor = SMESH::GetHypothesisCreator( hypType.in() ); + // BUG 0020378 + //SMESHGUI_GenericHypothesisCreator* editor = SMESH::GetHypothesisCreator(hypType.in()); + SMESH::HypothesisCreatorPtr editor = SMESH::GetHypothesisCreator(hypType.in()); if ( !editor ) return; if ( myDlg ) myDlg->hide();