-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2022 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
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#include <ModuleBase_WidgetFactory.h>
#include <ModuleBase_WidgetMultiSelector.h>
#include <ModuleBase_WidgetConcealedObjects.h>
#include <ModuleBase_WidgetLabel.h>
+#include <ModuleBase_WidgetUndoLabel.h>
#include <ModuleBase_WidgetToolbox.h>
#include <ModuleBase_WidgetRadiobox.h>
#include <ModuleBase_PageBase.h>
#include <ModuleBase_WidgetCreatorFactory.h>
#include <ModuleBase_WidgetAction.h>
#include <ModuleBase_WidgetPointInput.h>
+#include <ModuleBase_WidgetSelectionFilter.h>
#include <ModelAPI_Validator.h>
#include <ModelAPI_Session.h>
#include <climits>
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()
if (myWidgetApi->toChildWidget()) {
do {
QString aPageName = qs(myWidgetApi->getProperty(CONTAINER_PAGE_NAME));
+ QString aTooltip = qs(myWidgetApi->getProperty(FEATURE_TOOLTIP));
QString aCaseId = qs(myWidgetApi->getProperty(_ID));
ModuleBase_PageBase* aPage = new ModuleBase_PageWidget(aWidget);
createWidget(aPage);
QString anIconPath = qs( myWidgetApi->getProperty( CONTAINER_PAGE_ICON ) );
QPixmap anIcon = ModuleBase_IconFactory::loadPixmap( anIconPath );
- aContainer->addPage( aPage, aPageName, aCaseId, anIcon );
+ aContainer->addPage( aPage, aPageName, aCaseId, anIcon, aTooltip);
}
} while (myWidgetApi->toNextWidget());
}
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<ModuleBase_ModelWidget*>(aPanel);
+ if (aModelWdg)
+ thePage->addModelWidget(aModelWdg);
+ else
+ thePage->addWidget(aPanel);
thePage->alignToTop();
}
}
aWidget->setVisible(false);
}
}
+ thePage->alignToTop();
}
- thePage->alignToTop();
}
void ModuleBase_WidgetFactory::getAttributeTitle(const std::string& theAttributeId,
theTitle =
QString::fromStdString(myWidgetApi->getProperty(CONTAINER_PAGE_NAME)).toStdString().c_str();
}
+ else
+ theTitle = theAttributeId;
}
void ModuleBase_WidgetFactory::getGreedAttribute(std::string& theAttributeId)
if (theType == WDG_GROUP) {
QString aGroupName = qs(myWidgetApi->getProperty(CONTAINER_PAGE_NAME));
ModuleBase_PageGroupBox* aPage = new ModuleBase_PageGroupBox(theParent);
- aPage->setTitle(aGroupName);
+ aPage->setTitle(ModuleBase_Tools::translate(
+ myWidgetApi->myFeatureId, aGroupName.toStdString()));
aResult = aPage;
}
else if (theType == WDG_OPTIONALBOX) {
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) {
result = new ModuleBase_WidgetAction(theParent, myWidgetApi);
} else if (theType == WDG_POINT_INPUT) {
result = new ModuleBase_WidgetPointInput(theParent, myWorkshop, myWidgetApi);
+ } else if (theType == WDG_SELECTION_FILTERS) {
+ result = new ModuleBase_WidgetSelectionFilter(theParent, myWorkshop, myWidgetApi);
} else {
result = myWorkshop->module()->createWidgetByType(theType, theParent, myWidgetApi);
if (!result)