-// 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>
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());
DataPtr aData = myFeature->data();
AttributeStringPtr aStringAttr = aData->string(attributeID());
QString aCaseId;
- 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);
+ 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;
}