Salome HOME
Updated copyright comment
[modules/shaper.git] / src / ModuleBase / ModuleBase_PagedContainer.cpp
index e9461b7e7fbbfc117a03e8ebc3aaffeddf52a1b2..b659b82c285a66bed2455987ca2ebe63ec396b82 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2024  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@ static QMap<std::string, std::string> defaultValues;
 ModuleBase_PagedContainer::ModuleBase_PagedContainer(QWidget* theParent,
                                                      const Config_WidgetAPI* theData)
 : ModuleBase_ModelWidget(theParent, theData),
-  myIsFocusOnCurrentPage(false), myIsFirst(true), myRemeberChoice(true)
+  myRemeberChoice(true), myIsFocusOnCurrentPage(false)
 {
   // 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.
@@ -48,9 +48,10 @@ ModuleBase_PagedContainer::~ModuleBase_PagedContainer()
 }
 
 int ModuleBase_PagedContainer::addPage(ModuleBase_PageBase* thePage,
-                                      const QString& theName, const QString& theCaseId,
-                                      const QPixmap& theIcon,
-                                      const QString& theTooltip)
+                                       const QString& /*theName*/,
+                                       const QString& theCaseId,
+                                       const QPixmap& /*theIcon*/,
+                                       const QString& /*theTooltip*/)
 {
   if (!myPages.count()) {
     setDefaultValue(theCaseId.toStdString());
@@ -102,15 +103,13 @@ bool ModuleBase_PagedContainer::restoreValueCustom()
   AttributeStringPtr aStringAttr = aData->string(attributeID());
   QString aCaseId;
   if (aStringAttr->isInitialized()) {
-    if (myIsEditing)
-      aCaseId = QString::fromStdString(aStringAttr->value());
-    else
-      aCaseId = QString::fromStdString(aDefVal.empty() ? aStringAttr->value() : aDefVal);
-    myIsFirst = false;
+    aCaseId = QString::fromStdString(aStringAttr->value());
     int idx = myCaseIds.indexOf(aCaseId);
     if (idx == -1)
       idx = currentPageIndex();
     setCurrentPageIndex(idx);
+    if (aStringAttr->value() != aCaseId.toStdString())
+      storeValueCustom();
   }
   else {
     // It is added because if user edits the feature created from Python
@@ -138,7 +137,7 @@ bool ModuleBase_PagedContainer::storeValueCustom()
 
   AttributeStringPtr aStringAttr = aData->string(attributeID());
   std::string aWidgetValue;
-  if (myIsFirst)
+  if (!aStringAttr->isInitialized())
     aWidgetValue = myDefValue.empty()?
         myCaseIds.at(currentPageIndex()).toStdString() : myDefValue;
   else
@@ -146,8 +145,6 @@ bool ModuleBase_PagedContainer::storeValueCustom()
   myDefValue = aWidgetValue;
   aStringAttr->setValue(aWidgetValue);
 
-  myIsFirst = false;
-
   updateObject(myFeature); // for preview
   return true;
 }