Salome HOME
Compilation fix
[modules/shaper.git] / src / ModuleBase / ModuleBase_PagedContainer.cpp
index d067e100c6132365785787373c2bdb665079a8c7..d069b57f604a783df4b4960bf4a91e1dff638657 100644 (file)
 #include <ModelAPI_AttributeString.h>
 
 #include <QWidget>
-#include <Qlist>
+#include <QList>
 #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
+  // but if focus is moved to this control, it can accept it.
+  myIsObligatory = false;
 }
 
 ModuleBase_PagedContainer::~ModuleBase_PagedContainer()
@@ -29,10 +31,15 @@ ModuleBase_PagedContainer::~ModuleBase_PagedContainer()
 }
 
 int ModuleBase_PagedContainer::addPage(ModuleBase_PageBase* thePage,
-                                      const QString& theName, const QString& theCaseId)
+                                      const QString& theName, const QString& theCaseId,
+                                      const QPixmap& theIcon )
 {
+  if (!myPages.count()) {
+    setDefaultValue(theCaseId.toStdString());
+  }
   myCaseIds << theCaseId;
   myPages << thePage;
+
   return myPages.count();
 }
 
@@ -65,7 +72,7 @@ void ModuleBase_PagedContainer::enableFocusProcessing()
   myIsFocusOnCurrentPage = true;
 }
 
-bool ModuleBase_PagedContainer::restoreValue()
+bool ModuleBase_PagedContainer::restoreValueCustom()
 {
   // A rare case when plugin was not loaded.
   if(!myFeature)
@@ -86,7 +93,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)
@@ -95,6 +102,7 @@ bool ModuleBase_PagedContainer::storeValueCustom() const
   AttributeStringPtr aStringAttr = aData->string(attributeID());
   QString aWidgetValue = myCaseIds.at(currentPageIndex());
   aStringAttr->setValue(aWidgetValue.toStdString());
+  updateObject(myFeature); // for preview
   return true;
 }