X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetFactory.cpp;h=40f7227ca6d344cf1a2bfd77eb436960a91e8fd2;hb=a2982d2108f929cf9e7f996cfd590c4ce59dc21c;hp=cbe7503a8e7a43833324fc3c275308d389ebf3db;hpb=d9db5498b576854aae37ddf8c0bb6fceb264712e;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetFactory.cpp b/src/ModuleBase/ModuleBase_WidgetFactory.cpp index cbe7503a8..40f7227ca 100644 --- a/src/ModuleBase/ModuleBase_WidgetFactory.cpp +++ b/src/ModuleBase/ModuleBase_WidgetFactory.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + /* * ModuleBase_WidgetFactory.cpp * @@ -9,15 +11,14 @@ #include #include -#include -#include -#include +//#include +//#include #include #include #include #include #include -#include +//#include #include #include #include @@ -25,8 +26,10 @@ #include #include #include +#include #include +#include #include #include @@ -57,6 +60,7 @@ ModuleBase_WidgetFactory::ModuleBase_WidgetFactory(const std::string& theXmlRepr ModuleBase_WidgetFactory::~ModuleBase_WidgetFactory() { + delete myWidgetApi; } void ModuleBase_WidgetFactory::createWidget(QWidget* theParent) @@ -71,7 +75,7 @@ void ModuleBase_WidgetFactory::createWidget(QWidget* theParent) //Create a widget (doublevalue, groupbox, toolbox, etc. QWidget* aWidget = createWidgetByType(aWdgType, theParent); if (aWidget) { - if (!myWidgetApi->getBooleanAttribute(ATTRIBUTE_INTERNAL, false)) { + if (!myWidgetApi->getBooleanAttribute(ATTR_INTERNAL, false)) { aWidgetLay->addWidget(aWidget); } else { aWidget->setVisible(false); @@ -107,38 +111,15 @@ void ModuleBase_WidgetFactory::createWidget(QWidget* theParent) theParent->setLayout(aWidgetLay); } + QWidget* ModuleBase_WidgetFactory::labelControl(QWidget* theParent) { - QWidget* result = new QWidget(theParent); - QVBoxLayout* aLabelLay = new QVBoxLayout(result); - QLabel* aLabel = new QLabel(result); - aLabel->setWordWrap(true); - aLabel->setText(qs(myWidgetApi->getProperty(INFO_WDG_TEXT))); - aLabel->setToolTip(qs(myWidgetApi->getProperty(INFO_WDG_TOOLTIP))); - aLabelLay->addWidget(aLabel); - aLabelLay->addStretch(1); - result->setLayout(aLabelLay); - return result; + ModuleBase_WidgetLabel* aWgt = + new ModuleBase_WidgetLabel(theParent, myWidgetApi, myParentId); + myModelWidgets.append(aWgt); + return aWgt->getControl(); } -void ModuleBase_WidgetFactory::processAttributes() -{ - // register that this attribute in feature is not obligatory for the feature execution - // so, it is not needed for the standard validation mechanism - bool isObligatory = true; - bool isConcealment = false; - if( myWidgetApi ){ - isObligatory = myWidgetApi->getBooleanAttribute(ATTRIBUTE_OBLIGATORY, true); - isConcealment = myWidgetApi->getBooleanAttribute(ATTRIBUTE_CONCEALMENT, false); - } - boost::shared_ptr aSession = ModelAPI_Session::get(); - if (!isObligatory) { - aSession->validators()->registerNotObligatory(myParentId, myWidgetApi->widgetId()); - } - if(isConcealment) { - aSession->validators()->registerConcealment(myParentId, myWidgetApi->widgetId()); - } -} QWidget* ModuleBase_WidgetFactory::createWidgetByType(const std::string& theType, QWidget* theParent) @@ -156,21 +137,15 @@ QWidget* ModuleBase_WidgetFactory::createWidgetByType(const std::string& theType } else if (theType == WDG_BOOLVALUE) { result = booleanControl(theParent); - } else if (theType == WDG_POINT_SELECTOR) { - result = pointSelectorControl(theParent); + //} else if (theType == WDG_FEATURE_SELECTOR) { + // result = featureSelectorControl(theParent); - } else if (theType == WDG_FEATURE_SELECTOR) { - result = featureSelectorControl(theParent); - - } else if (theType == WDG_FEATURE_OR_ATTRIBUTE_SELECTOR) { - result = featureOrAttributeSelectorControl(theParent); + //} else if (theType == WDG_FEATURE_OR_ATTRIBUTE_SELECTOR) { + // result = featureOrAttributeSelectorControl(theParent); } else if (theType == WDG_DOUBLEVALUE_EDITOR) { result = doubleValueEditor(theParent); - } else if (theType == WDG_POINT2D_DISTANCE) { - result = point2dDistanceControl(theParent); - } else if (theType == WDG_FILE_SELECTOR) { result = fileSelectorControl(theParent); @@ -187,15 +162,11 @@ QWidget* ModuleBase_WidgetFactory::createWidgetByType(const std::string& theType result = createContainer(theType, theParent); } else { result = myWorkshop->module()->createWidgetByType(theType, theParent, myWidgetApi, - myModelWidgets); + myParentId, myModelWidgets); #ifdef _DEBUG if (!result) {qDebug("ModuleBase_WidgetFactory::fillWidget: find bad widget type");} #endif } - if (result) { - processAttributes(); - } - return result; } @@ -227,30 +198,6 @@ QWidget* ModuleBase_WidgetFactory::doubleSpinBoxControl(QWidget* theParent) return aDblWgt->getControl(); } -QWidget* ModuleBase_WidgetFactory::pointSelectorControl(QWidget* theParent) -{ - ModuleBase_WidgetPoint2D* aWidget = - new ModuleBase_WidgetPoint2D(theParent, myWidgetApi,myParentId); - myModelWidgets.append(aWidget); - return aWidget->getControl(); -} - -QWidget* ModuleBase_WidgetFactory::featureSelectorControl(QWidget* theParent) -{ - ModuleBase_WidgetFeature* aWidget = - new ModuleBase_WidgetFeature(theParent, myWidgetApi,myParentId); - myModelWidgets.append(aWidget); - return aWidget->getControl(); -} - -QWidget* ModuleBase_WidgetFactory::featureOrAttributeSelectorControl(QWidget* theParent) -{ - ModuleBase_WidgetFeatureOrAttribute* aWidget = - new ModuleBase_WidgetFeatureOrAttribute(theParent, myWidgetApi, myParentId); - myModelWidgets.append(aWidget); - return aWidget->getControl(); -} - QWidget* ModuleBase_WidgetFactory::doubleValueEditor(QWidget* theParent) { ModuleBase_WidgetEditor* aWidget = @@ -275,14 +222,6 @@ QWidget* ModuleBase_WidgetFactory::booleanControl(QWidget* theParent) return aBoolWgt->getControl(); } -QWidget* ModuleBase_WidgetFactory::point2dDistanceControl(QWidget* theParent) -{ - ModuleBase_WidgetPoint2dDistance* aDistWgt = - new ModuleBase_WidgetPoint2dDistance(theParent, myWidgetApi, myParentId); - myModelWidgets.append(aDistWgt); - return aDistWgt->getControl(); -} - QWidget* ModuleBase_WidgetFactory::fileSelectorControl(QWidget* theParent) { ModuleBase_WidgetFileSelector* aFileSelectorWgt = @@ -315,7 +254,8 @@ QWidget* ModuleBase_WidgetFactory::multiSelectorControl(QWidget* theParent) return aMultiselectorWgt->getControl(); } -QString ModuleBase_WidgetFactory::qs(const std::string& theStdString) const +QString ModuleBase_WidgetFactory::qs(const std::string& theStdString) { return QString::fromStdString(theStdString); } +