-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2019 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_PagedContainer.h>
ModuleBase_PagedContainer::ModuleBase_PagedContainer(QWidget* theParent,
const Config_WidgetAPI* theData)
: ModuleBase_ModelWidget(theParent, theData),
- myIsFocusOnCurrentPage(false), myIsFirst(true)
+ myIsFocusOnCurrentPage(false), myIsFirst(true), myRemeberChoice(true)
{
// it is not obligatory to be ignored when property panel tries to activate next active widget
// but if focus is moved to this control, it can accept it.
int ModuleBase_PagedContainer::addPage(ModuleBase_PageBase* thePage,
const QString& theName, const QString& theCaseId,
- const QPixmap& theIcon )
+ const QPixmap& theIcon,
+ const QString& theTooltip)
{
if (!myPages.count()) {
setDefaultValue(theCaseId.toStdString());
// A rare case when plugin was not loaded.
if(!myFeature)
return false;
+
+ std::string aDefVal = myRemeberChoice? myDefValue : "";
+
DataPtr aData = myFeature->data();
AttributeStringPtr aStringAttr = aData->string(attributeID());
- QString aCaseId = QString::fromStdString(myDefValue.empty()?
- aStringAttr->value() : myDefValue);
- myIsFirst = false;
- int idx = myCaseIds.indexOf(aCaseId);
- if (idx == -1)
- idx = currentPageIndex();
- setCurrentPageIndex(idx);
+ QString aCaseId;
+ if (aStringAttr->isInitialized()) {
+ if (myIsEditing)
+ aCaseId = QString::fromStdString(aStringAttr->value());
+ else
+ aCaseId = QString::fromStdString(aDefVal.empty() ? aStringAttr->value() : aDefVal);
+ myIsFirst = false;
+ int idx = myCaseIds.indexOf(aCaseId);
+ if (idx == -1)
+ idx = currentPageIndex();
+ setCurrentPageIndex(idx);
+ }
+ else {
+ // It is added because if user edits the feature created from Python
+ // and switches his choice
+ // it will not be stored in the attribute while apply not pressed.
+ // But this button will be disabled because of not initialized attribute
+ aStringAttr->setValue(myCaseIds.at(0).toStdString());
+ setCurrentPageIndex(0);
+ }
return true;
}
void ModuleBase_PagedContainer::onFeatureAccepted()
{
- defaultValues[myFeatureId + attributeID()] = myDefValue;
+ if (myRemeberChoice)
+ defaultValues[myFeatureId + attributeID()] = myDefValue;
}