Salome HOME
Issue #2079 : Select parent feature for default Constructions. Disable popup menu...
[modules/shaper.git] / src / ModuleBase / ModuleBase_PagedContainer.cpp
index 9f32442a577901139b5a810492c2828dc1195cd1..8723cbd778aad168f207e7025d1925b8f62c75bd 100644 (file)
@@ -1,3 +1,4 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
 /*
  * ModuleBase_PagedContainer.cpp
  *
@@ -17,9 +18,9 @@
 #include <QVBoxLayout>
 
 
-ModuleBase_PagedContainer::ModuleBase_PagedContainer(QWidget* theParent, const Config_WidgetAPI* theData,
-                                                     const std::string& theParentId)
-: ModuleBase_ModelWidget(theParent, theData, theParentId),
+ModuleBase_PagedContainer::ModuleBase_PagedContainer(QWidget* theParent,
+                                                     const Config_WidgetAPI* theData)
+: ModuleBase_ModelWidget(theParent, theData),
   myIsFocusOnCurrentPage(false)
 {
   // it is not obligatory to be ignored when property panel tries to activate next active widget
@@ -94,7 +95,7 @@ void ModuleBase_PagedContainer::activateCustom()
   focusTo();
 }
 
-bool ModuleBase_PagedContainer::storeValueCustom() const
+bool ModuleBase_PagedContainer::storeValueCustom()
 {
   // A rare case when plugin was not loaded.
   if(!myFeature)
@@ -110,8 +111,13 @@ bool ModuleBase_PagedContainer::storeValueCustom() const
 
 void ModuleBase_PagedContainer::onPageChanged()
 {
-  storeValue();
-  if (myIsFocusOnCurrentPage) focusTo();
+  if (!storeValue())
+    return;
+  // focus might be changed only if the value is correcly stored
+  // if it is not stored, reentrant manager will handle by this widget
+  // after it will restart operation, the widget might be removed
+  if (myIsFocusOnCurrentPage)
+    focusTo();
 }