X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetFactory.cpp;h=07f1fbd4a2a406df6dd585ac1644023ed505eaa6;hb=374a366d81778aa27ed32cc080c0f95bdb03f1c5;hp=0cc45bf0947f676388cd9fb748f86c0286a6169e;hpb=3c987a8d1b88765224e3ac1388afb91eae17e4d3;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetFactory.cpp b/src/ModuleBase/ModuleBase_WidgetFactory.cpp index 0cc45bf09..07f1fbd4a 100644 --- a/src/ModuleBase/ModuleBase_WidgetFactory.cpp +++ b/src/ModuleBase/ModuleBase_WidgetFactory.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2021 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -76,10 +77,11 @@ #include ModuleBase_WidgetFactory::ModuleBase_WidgetFactory(const std::string& theXmlRepresentation, - ModuleBase_IWorkshop* theWorkshop) + ModuleBase_IWorkshop* theWorkshop, + const std::string theAttributePrefix) : myWorkshop(theWorkshop) { - myWidgetApi = new Config_WidgetAPI(theXmlRepresentation); + myWidgetApi = new Config_WidgetAPI(theXmlRepresentation, theAttributePrefix); } ModuleBase_WidgetFactory::~ModuleBase_WidgetFactory() @@ -160,8 +162,12 @@ void ModuleBase_WidgetFactory::createPanel(ModuleBase_PageBase* thePage, std::string aPanelName = myWidgetApi->getProperty(PROPERTY_PANEL_ID); if (!aPanelName.empty() && ModuleBase_WidgetCreatorFactory::get()->hasPanelWidget(aPanelName)) { QWidget* aPanel = ModuleBase_WidgetCreatorFactory::get()->createPanelByType(aPanelName, - thePage->pageWidget(), theFeature); - thePage->addWidget(aPanel); + thePage->pageWidget(), theFeature, myWidgetApi); + ModuleBase_ModelWidget* aModelWdg = dynamic_cast(aPanel); + if (aModelWdg) + thePage->addModelWidget(aModelWdg); + else + thePage->addWidget(aPanel); thePage->alignToTop(); } } @@ -184,8 +190,8 @@ void ModuleBase_WidgetFactory::createWidget(ModuleBase_PageBase* thePage, aWidget->setVisible(false); } } + thePage->alignToTop(); } - thePage->alignToTop(); } void ModuleBase_WidgetFactory::getAttributeTitle(const std::string& theAttributeId, @@ -199,6 +205,8 @@ void ModuleBase_WidgetFactory::getAttributeTitle(const std::string& theAttribute theTitle = QString::fromStdString(myWidgetApi->getProperty(CONTAINER_PAGE_NAME)).toStdString().c_str(); } + else + theTitle = theAttributeId; } void ModuleBase_WidgetFactory::getGreedAttribute(std::string& theAttributeId) @@ -303,6 +311,8 @@ ModuleBase_ModelWidget* ModuleBase_WidgetFactory::createWidgetByType(const std:: result = new ModuleBase_WidgetLabel(theParent, myWidgetApi); } else if (theType == WDG_DOUBLEVALUE) { result = new ModuleBase_WidgetDoubleValue(theParent, myWidgetApi); + } else if (theType == WDG_UNDOLABEL) { + result = new ModuleBase_WidgetUndoLabel(theParent, myWorkshop, myWidgetApi); } else if (theType == WDG_DOUBLEVALUELABEL) { result = new ModuleBase_WidgetLabelValue(theParent, myWidgetApi); } else if (theType == WDG_INTEGERVALUE) {