]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/PartSet/PartSet_Module.cpp
Salome HOME
Merge branch 'master' of newgeom:newgeom.git
[modules/shaper.git] / src / PartSet / PartSet_Module.cpp
index 76a8c855bd3e8a1ffece003a1653c98abdd6e48e..46e0c44521b87a6b3c9d74441ea3fab211a2d80e 100644 (file)
@@ -46,8 +46,8 @@ PartSet_Module::~PartSet_Module()
 void PartSet_Module::createFeatures()
 {
   Config_ModuleReader aXMLReader = Config_ModuleReader();
-  aXMLReader.setAutoImport(true);
   aXMLReader.readAll();
+  myFeaturesInFiles = aXMLReader.featuresInFiles();
 }
 
 void PartSet_Module::featureCreated(XGUI_Command* theFeature)
@@ -55,13 +55,9 @@ void PartSet_Module::featureCreated(XGUI_Command* theFeature)
   theFeature->connectTo(this, SLOT(onFeatureTriggered()));
 }
 
-std::string PartSet_Module::modulePlugin()
+std::string PartSet_Module::featureFile(const std::string& theFeatureId)
 {
-  Config_ModuleReader aModuleReader = Config_ModuleReader();
-  aModuleReader.readAll();
-  std::map < std::string, std::string > aPluginMap = aModuleReader.plugins();
-  std::string aPluginName = aPluginMap["PartSetPlugin"];
-  return aPluginName;
+  return myFeaturesInFiles[theFeatureId];
 }
 
 /*
@@ -69,13 +65,14 @@ std::string PartSet_Module::modulePlugin()
  */
 void PartSet_Module::onFeatureTriggered()
 {
-  std::string aPluginName = modulePlugin();
-  Config_WidgetReader aWdgReader = Config_WidgetReader(aPluginName);
-  aWdgReader.readAll();
   XGUI_Command* aCmd = dynamic_cast<XGUI_Command*>(sender());
   QString aCmdId = aCmd->id();
-  std::string aXmlCfg = aWdgReader.featureWidgetCfg(aCmdId.toStdString());
-  std::string aDescription = aWdgReader.featureDescription(aCmdId.toStdString());
+  std::string aStdCmdId = aCmdId.toStdString();
+  std::string aPluginFileName = featureFile(aStdCmdId);
+  Config_WidgetReader aWdgReader = Config_WidgetReader(aPluginFileName);
+  aWdgReader.readAll();
+  std::string aXmlCfg = aWdgReader.featureWidgetCfg(aStdCmdId);
+  std::string aDescription = aWdgReader.featureDescription(aStdCmdId);
   ModuleBase_PropPanelOperation* aPartSetOp;
   if (aCmdId == "Sketch" ) {
     aPartSetOp = new PartSet_OperationSketch(aCmdId, this);