Salome HOME
Update copyrights
[modules/shaper.git] / src / ModuleBase / ModuleBase_PagedContainer.cpp
index 2cb2fddde8ec676553ea7af8cd07c151a0ebfdd6..e9461b7e7fbbfc117a03e8ebc3aaffeddf52a1b2 100644 (file)
@@ -1,4 +1,4 @@
-// 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>
@@ -50,7 +49,8 @@ ModuleBase_PagedContainer::~ModuleBase_PagedContainer()
 
 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());
@@ -100,13 +100,26 @@ bool ModuleBase_PagedContainer::restoreValueCustom()
 
   DataPtr aData = myFeature->data();
   AttributeStringPtr aStringAttr = aData->string(attributeID());
-  QString aCaseId = QString::fromStdString(aDefVal.empty()?
-                                           aStringAttr->value() : aDefVal);
-  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;
 }