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::addWidget(QWidget* theWidget)
43 placeWidget(theWidget);
46 void ModuleBase_PageBase::clearPage()
51 while ((aChild = pageLayout()->takeAt(0)) != 0) {
52 if(aChild->widget()) {
53 delete aChild->widget();
59 // Issue #460: this patch is necessary since the row stretch information
60 // is stored independently on the items: when the items are removed
61 // from the layout the stretch information is kept, so in the next
62 // filling of the layout some "additional" (old) rows may be stretched
64 // In this patch we clear the stretch information specifying the default value: 0.
65 QGridLayout* aLayout = dynamic_cast<QGridLayout*>( pageLayout() );
68 int r = aLayout->rowCount();
69 for( int i=0; i<r; i++ )
70 aLayout->setRowStretch( i, 0 );
75 bool ModuleBase_PageBase::takeFocus()
77 if(myWidgetList.isEmpty())
80 return myWidgetList.first()->focusTo();
83 QList<ModuleBase_ModelWidget*> ModuleBase_PageBase::modelWidgets() const
88 void ModuleBase_PageBase::alignToTop()
90 bool hasExpanding = false;
91 QList<QWidget *> aListToCheck;
92 ModuleBase_ModelWidget* aModelWidget;
93 foreach(aModelWidget, myWidgetList) {
94 aListToCheck << aModelWidget->getControls();
96 foreach(QWidget* eachWidget, aListToCheck) {
97 QSizePolicy::Policy aVPolicy = eachWidget->sizePolicy().verticalPolicy();
98 if(aVPolicy & QSizePolicy::ExpandFlag) {
108 void ModuleBase_PageBase::placePageWidget(ModuleBase_PageBase* theWidget)
110 QWidget* aWidget = dynamic_cast<QWidget*>(theWidget);
111 placeWidget(aWidget);