Salome HOME
Issue #3236: Provide icons for extrusions
[modules/shaper.git] / src / ModuleBase / ModuleBase_PagedContainer.cpp
index f987109431f9ffbe7f8e5eca82dd9dcbd1d9b466..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());
@@ -101,16 +101,25 @@ bool ModuleBase_PagedContainer::restoreValueCustom()
   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;
 }