Salome HOME
Merge branch 'Dev_1.1.0' of newgeom:newgeom into Dev_1.1.0
[modules/shaper.git] / src / ModuleBase / ModuleBase_PageBase.cpp
1 /*
2  * ModuleBase_PageBase.cpp
3  *
4  *  Created on: Mar 4, 2015
5  *      Author: sbh
6  */
7
8 #include <ModuleBase_PageBase.h>
9 #include <ModuleBase_ModelWidget.h>
10
11 #include <QLayout>
12
13 class QWidget;
14
15 ModuleBase_PageBase::ModuleBase_PageBase()
16 {
17
18 }
19
20 ModuleBase_PageBase::~ModuleBase_PageBase()
21 {
22
23 }
24
25 QWidget* ModuleBase_PageBase::pageWidget()
26 {
27   return dynamic_cast<QWidget*>(this);
28 }
29
30 void ModuleBase_PageBase::addModelWidget(ModuleBase_ModelWidget* theWidget)
31 {
32   placeModelWidget(theWidget);
33   myWidgetList.append(theWidget);
34 }
35
36 void ModuleBase_PageBase::addPageWidget(ModuleBase_PageBase* thePage)
37 {
38   placePageWidget(thePage);
39 }
40
41 void ModuleBase_PageBase::clearPage()
42 {
43   QLayoutItem *aChild;
44   while ((aChild = pageLayout()->takeAt(0)) != 0) {
45     if(aChild->widget()) {
46       aChild->widget()->deleteLater();
47     } else {
48       delete aChild;
49     }
50   }
51   myWidgetList.clear();
52 }
53
54
55 void ModuleBase_PageBase::takeFocus()
56 {
57   if(myWidgetList.isEmpty())
58     return;
59
60   myWidgetList.first()->focusTo();
61 }
62
63 QList<ModuleBase_ModelWidget*> ModuleBase_PageBase::modelWidgets()
64 {
65   return myWidgetList;
66 }
67
68 void ModuleBase_PageBase::alignToTop()
69 {
70   bool hasExpanding = false;
71   QList<QWidget *> aListToCheck;
72   ModuleBase_ModelWidget* aModelWidget;
73   foreach(aModelWidget, myWidgetList) {
74     aListToCheck << aModelWidget->getControls();
75   }
76   foreach(QWidget* eachWidget, aListToCheck) {
77     QSizePolicy::Policy aVPolicy = eachWidget->sizePolicy().verticalPolicy();
78     if(aVPolicy & QSizePolicy::ExpandFlag) {
79       hasExpanding = true;
80       break;
81     }
82   }
83   if(!hasExpanding) {
84     addPageStretch();
85   }
86 }