Salome HOME
Advanced version of plugin reader with ability to extract xml information about featu...
[modules/shaper.git] / src / PartSet / PartSet_Module.cpp
1 #include "PartSet_Module.h"
2
3 #include <Config_ModuleReader.h>
4 #include <Config_FeatureReader.h>
5
6 #include <Event_Loop.hxx>
7
8 #include <QFile>
9 #include <QDir>
10 #include <QApplication>
11 #include <QTextStream>
12
13 /*!Create and return new instance of XGUI_Module*/
14 extern "C" PARTSET_EXPORT XGUI_Module* createModule(XGUI_Workshop* theWshop)
15 {
16   return new PartSet_Module(theWshop);
17 }
18
19
20 PartSet_Module::PartSet_Module(XGUI_Workshop* theWshop)
21 {
22     myWorkshop = theWshop;
23 }
24
25
26 PartSet_Module::~PartSet_Module()
27 {
28 }
29
30 void PartSet_Module::createFeatures()
31 {
32   Config_ModuleReader* aXMLReader = new Config_ModuleReader();
33   aXMLReader->setAutoImport(true);
34   aXMLReader->readAll();
35   delete aXMLReader;
36 }
37
38 void PartSet_Module::featureCreated(XGUI_Command* theFeature)
39 {
40   QString aFtId = theFeature->getId();
41   if(aFtId == "new_point") {
42     theFeature->connectTo(this, SLOT(onCommandTriggered()));
43   }
44 }
45
46 void PartSet_Module::onCommandTriggered()
47 {
48   Config_ModuleReader aModuleReader = Config_ModuleReader();
49   aModuleReader.readAll();
50   std::string aPluginName = aModuleReader.pluginsList().front();
51   Config_FeatureReader* aReader = new Config_FeatureReader(aPluginName);
52   XGUI_Command* aCmd = dynamic_cast<XGUI_Command*>(sender());
53   std::string aXMLWidgetCfg =
54     aReader->featureWidgetCfg(aCmd->getId().toStdString());
55   delete aReader;
56 }