+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
/*
* ModuleBase_PagedContainer.cpp
*
#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()
}
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();
}
myIsFocusOnCurrentPage = true;
}
-bool ModuleBase_PagedContainer::restoreValue()
+bool ModuleBase_PagedContainer::restoreValueCustom()
{
// A rare case when plugin was not loaded.
if(!myFeature)
focusTo();
}
-bool ModuleBase_PagedContainer::storeValueCustom() const
+bool ModuleBase_PagedContainer::storeValueCustom()
{
// A rare case when plugin was not loaded.
if(!myFeature)
AttributeStringPtr aStringAttr = aData->string(attributeID());
QString aWidgetValue = myCaseIds.at(currentPageIndex());
aStringAttr->setValue(aWidgetValue.toStdString());
+ updateObject(myFeature); // for preview
return true;
}
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();
}