X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetFactory.cpp;h=0ced5bb8b19d290b6a087414eb838b90d85f2267;hb=d48cb022ea8263c47120dfc6787156cf663eede0;hp=4c011a454f7d05974be69764bf676f708b2d3af9;hpb=fd30229f7f40d6cc60670a4d9367324431964961;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetFactory.cpp b/src/ModuleBase/ModuleBase_WidgetFactory.cpp index 4c011a454..0ced5bb8b 100644 --- a/src/ModuleBase/ModuleBase_WidgetFactory.cpp +++ b/src/ModuleBase/ModuleBase_WidgetFactory.cpp @@ -10,10 +10,13 @@ #include #include #include +#include +#include #include -#include +#include #include #include +#include #include #include @@ -35,11 +38,11 @@ #include #include -ModuleBase_WidgetFactory::ModuleBase_WidgetFactory(ModuleBase_Operation* theOperation, ModuleBase_IWorkshop* theWorkshop) - : myOperation(theOperation), myWorkshop(theWorkshop) +ModuleBase_WidgetFactory::ModuleBase_WidgetFactory(const std::string& theXmlRepresentation, + ModuleBase_IWorkshop* theWorkshop) + : myWorkshop(theWorkshop) { - QString aXml = myOperation->getDescription()->xmlRepresentation(); - myWidgetApi = new Config_WidgetAPI(aXml.toStdString()); + myWidgetApi = new Config_WidgetAPI(theXmlRepresentation); } ModuleBase_WidgetFactory::~ModuleBase_WidgetFactory() @@ -119,7 +122,17 @@ QWidget* ModuleBase_WidgetFactory::createWidgetByType(const std::string& theType } else if (theType == WDG_POINT_SELECTOR) { result = pointSelectorControl(theParent); - } else if (myWidgetApi->isContainerWidget() || myWidgetApi->isPagedWidget()) { + } else if (theType == WDG_FEATURE_SELECTOR) { + result = featureSelectorControl(theParent); + + } else if (theType == WDG_DOUBLEVALUE_EDITOR) { + result = doubleValueEditor(theParent); + + } else if (theType == WDG_POINT2D_DISTANCE) { + result = point2dDistanceControl(theParent); + + } + else if (myWidgetApi->isContainerWidget() || myWidgetApi->isPagedWidget()) { result = createContainer(theType, theParent); } #ifdef _DEBUG @@ -151,36 +164,30 @@ QWidget* ModuleBase_WidgetFactory::createContainer(const std::string& theType, Q QWidget* ModuleBase_WidgetFactory::doubleSpinBoxControl(QWidget* theParent) { ModuleBase_WidgetDoubleValue* aDblWgt = new ModuleBase_WidgetDoubleValue(theParent, myWidgetApi); - QObject::connect(aDblWgt, SIGNAL(valuesChanged()), myOperation, SLOT(storeCustomValue())); - myModelWidgets.append(aDblWgt); - // Init default values - if (!myOperation->isEditOperation()) - aDblWgt->storeValue(myOperation->feature()); return aDblWgt->getControl(); } QWidget* ModuleBase_WidgetFactory::pointSelectorControl(QWidget* theParent) { ModuleBase_WidgetPoint2D* aWidget = new ModuleBase_WidgetPoint2D(theParent, myWidgetApi); - connectWidget(aWidget, WDG_POINT_SELECTOR); myModelWidgets.append(aWidget); return aWidget->getControl(); } -bool ModuleBase_WidgetFactory::connectWidget(QObject* theWidget, const QString& theType) +QWidget* ModuleBase_WidgetFactory::featureSelectorControl(QWidget* theParent) { - bool result = false; - if (theType == WDG_DOUBLEVALUE) { - result = QObject::connect(theWidget, SIGNAL(valueChanged(double)), - myOperation, SLOT(storeReal(double))); - } - if (theType == WDG_POINT_SELECTOR) { - result = QObject::connect(theWidget, SIGNAL(valuesChanged()), - myOperation, SLOT(storeCustomValue())); - } - return result; + ModuleBase_WidgetFeature* aWidget = new ModuleBase_WidgetFeature(theParent, myWidgetApi); + myModelWidgets.append(aWidget); + return aWidget->getControl(); +} + +QWidget* ModuleBase_WidgetFactory::doubleValueEditor(QWidget* theParent) +{ + ModuleBase_WidgetEditor* aWidget = new ModuleBase_WidgetEditor(theParent, myWidgetApi); + myModelWidgets.append(aWidget); + return 0; } QString ModuleBase_WidgetFactory::qs(const std::string& theStdString) const @@ -191,10 +198,7 @@ QString ModuleBase_WidgetFactory::qs(const std::string& theStdString) const QWidget* ModuleBase_WidgetFactory::selectorControl(QWidget* theParent) { - ModuleBase_SelectorWidget* aSelector = new ModuleBase_SelectorWidget(theParent, myWorkshop, myWidgetApi); - - QObject::connect(aSelector, SIGNAL(valuesChanged()), myOperation, SLOT(storeCustomValue())); - + ModuleBase_WidgetSelector* aSelector = new ModuleBase_WidgetSelector(theParent, myWorkshop, myWidgetApi); myModelWidgets.append(aSelector); return aSelector->getControl(); } @@ -203,12 +207,16 @@ QWidget* ModuleBase_WidgetFactory::selectorControl(QWidget* theParent) QWidget* ModuleBase_WidgetFactory::booleanControl(QWidget* theParent) { ModuleBase_WidgetBoolValue* aBoolWgt = new ModuleBase_WidgetBoolValue(theParent, myWidgetApi); - QObject::connect(aBoolWgt, SIGNAL(valuesChanged()), myOperation, SLOT(storeCustomValue())); - myModelWidgets.append(aBoolWgt); - // Init default values - if (!myOperation->isEditOperation()) - aBoolWgt->storeValue(myOperation->feature()); return aBoolWgt->getControl(); +} + + +QWidget* ModuleBase_WidgetFactory::point2dDistanceControl(QWidget* theParent) +{ + ModuleBase_WidgetPoint2dDistance* aDistWgt = new ModuleBase_WidgetPoint2dDistance(theParent, myWidgetApi); + myModelWidgets.append(aDistWgt); + + return aDistWgt->getControl(); } \ No newline at end of file