2 * ModuleBase_PageBase.cpp
4 * Created on: Mar 4, 2015
8 #include <ModuleBase_PageBase.h>
9 #include <ModuleBase_ModelWidget.h>
15 ModuleBase_PageBase::ModuleBase_PageBase()
20 ModuleBase_PageBase::~ModuleBase_PageBase()
25 QWidget* ModuleBase_PageBase::pageWidget()
27 return dynamic_cast<QWidget*>(this);
30 void ModuleBase_PageBase::addModelWidget(ModuleBase_ModelWidget* theWidget)
32 placeModelWidget(theWidget);
33 myWidgetList.append(theWidget);
36 void ModuleBase_PageBase::addPageWidget(ModuleBase_PageBase* thePage)
38 placePageWidget(thePage);
41 void ModuleBase_PageBase::clearPage()
46 while ((aChild = pageLayout()->takeAt(0)) != 0) {
47 if(aChild->widget()) {
48 delete aChild->widget();
54 // Issue #460: this patch is necessary since the row stretch information
55 // is stored independently on the items: when the items are removed
56 // from the layout the stretch information is kept, so in the next
57 // filling of the layout some "additional" (old) rows may be stretched
59 // In this patch we clear the stretch information specifying the default value: 0.
60 QGridLayout* aLayout = dynamic_cast<QGridLayout*>( pageLayout() );
63 int r = aLayout->rowCount();
64 for( int i=0; i<r; i++ )
65 aLayout->setRowStretch( i, 0 );
70 bool ModuleBase_PageBase::takeFocus()
72 if(myWidgetList.isEmpty())
75 return myWidgetList.first()->focusTo();
78 QList<ModuleBase_ModelWidget*> ModuleBase_PageBase::modelWidgets()
83 void ModuleBase_PageBase::alignToTop()
85 bool hasExpanding = false;
86 QList<QWidget *> aListToCheck;
87 ModuleBase_ModelWidget* aModelWidget;
88 foreach(aModelWidget, myWidgetList) {
89 aListToCheck << aModelWidget->getControls();
91 foreach(QWidget* eachWidget, aListToCheck) {
92 QSizePolicy::Policy aVPolicy = eachWidget->sizePolicy().verticalPolicy();
93 if(aVPolicy & QSizePolicy::ExpandFlag) {