Salome HOME
Auto-formatting according to the defined code standard.
[modules/shaper.git] / src / XGUI / XGUI_MainWindow.cpp
1 #include "XGUI_MainWindow.h"
2 #include "XGUI_MainMenu.h"
3 #include "XGUI_ViewWindow.h"
4 #include "XGUI_Viewer.h"
5
6 #include <QMdiArea>
7 #include <QTreeWidget>
8 #include <QDockWidget>
9 #include <QTextEdit>
10 #include <QLabel>
11 #include <QToolBar>
12 #include <QToolButton>
13 #include <QTreeWidgetItem>
14 #include <QLayout>
15 #include <QLineEdit>
16 #include <QGroupBox>
17 #include <QFormLayout>
18 #include <QDoubleSpinBox>
19 #include <QPushButton>
20 #include <QScrollArea>
21 #include <QComboBox>
22
23 XGUI_MainWindow::XGUI_MainWindow(QWidget* parent)
24     : QMainWindow(parent), myObjectBrowser(0)
25 {
26   setWindowTitle(tr("WINDOW_TITLE"));
27   myMenuBar = new XGUI_MainMenu(this);
28
29   QDockWidget* aDoc = new QDockWidget(this);
30   aDoc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
31   aDoc->setWindowTitle(tr("OBJECT_BROWSER_TITLE"));
32   myObjectBrowser = new QTreeWidget(aDoc);
33   myObjectBrowser->setColumnCount(1);
34   myObjectBrowser->setHeaderHidden(true);
35   aDoc->setWidget(myObjectBrowser);
36   addDockWidget(Qt::LeftDockWidgetArea, aDoc);
37   //aDoc->hide();
38
39   aDoc = new QDockWidget(this);
40   aDoc->setFeatures(QDockWidget::AllDockWidgetFeatures | QDockWidget::DockWidgetVerticalTitleBar);
41   aDoc->setMinimumHeight(0);
42   aDoc->setWindowTitle("Console");
43   QTextEdit* aTextEdt = new QTextEdit(aDoc);
44   aTextEdt->setText(">>>");
45   aDoc->setWidget(aTextEdt);
46   aTextEdt->setMinimumHeight(0);
47   addDockWidget(Qt::BottomDockWidgetArea, aDoc);
48
49   QMdiArea* aMdiArea = new QMdiArea(this);
50   setCentralWidget(aMdiArea);
51
52   myViewer = new XGUI_Viewer(this);
53   //aMdiArea->addSubWindow(new XGUI_ViewWindow(), Qt::FramelessWindowHint);
54   //aMdiArea->addSubWindow(new XGUI_ViewWindow(), Qt::FramelessWindowHint);
55
56   fillObjectBrowser();
57   addPropertyPanel();
58 }
59
60 XGUI_MainWindow::~XGUI_MainWindow(void)
61 {
62 }
63
64 //******************************************************
65 QMdiArea* XGUI_MainWindow::mdiArea() const
66 {
67   return static_cast<QMdiArea*>(centralWidget());
68 }
69
70 //******************************************************
71 void XGUI_MainWindow::showObjectBrowser()
72 {
73   myObjectBrowser->parentWidget()->show();
74 }
75
76 //******************************************************
77 void XGUI_MainWindow::hideObjectBrowser()
78 {
79   myObjectBrowser->parentWidget()->hide();
80 }
81
82 //******************************************************
83 void XGUI_MainWindow::fillObjectBrowser()
84 {
85   QStringList aNames;
86   aNames << "Parameters" << "Constructions";
87   aNames << "Part 1" << "Part 2" << "Part 3";
88   aNames << "Properties";
89
90   QStringList aIcons;
91   aIcons << ":pictures/params_folder.png";
92   aIcons << ":pictures/constr_folder.png";
93   aIcons << ":pictures/part_ico.png";
94   aIcons << ":pictures/part_ico.png";
95   aIcons << ":pictures/part_ico.png";
96   aIcons << ":pictures/properties.png";
97
98   QList<QTreeWidgetItem*> aItems;
99   foreach(QString aName, aNames)
100   {
101     QTreeWidgetItem* aItem = new QTreeWidgetItem(myObjectBrowser);
102     aItem->setText(0, aName);
103     aItems.append(aItem);
104   }
105   for(int i = 0; i < aItems.length(); i++) {
106     aItems[i]->setIcon(0, QIcon(aIcons[i]));
107   }
108   myObjectBrowser->addTopLevelItems(aItems);
109
110   for(int i = 2; i < 5; i++) {
111     QTreeWidgetItem* aItem = new QTreeWidgetItem(aItems[i]);
112     aItem->setText(0, "Parameters");
113     aItem->setIcon(0, QIcon(":pictures/params_folder.png"));
114
115     aItem = new QTreeWidgetItem(aItems[i]);
116     aItem->setText(0, "Construction");
117     aItem->setIcon(0, QIcon(":pictures/constr_folder.png"));
118
119     aItem = new QTreeWidgetItem(aItems[i]);
120     aItem->setText(0, "Bodies");
121     aItem->setIcon(0, QIcon(":pictures/part_ico.png"));
122
123     aItem = new QTreeWidgetItem(aItems[i]);
124     aItem->setText(0, "Features");
125     aItem->setIcon(0, QIcon(":pictures/features.png"));
126   }
127 }
128
129 void XGUI_MainWindow::addPropertyPanel()
130 {
131   QDockWidget* aPropPanel = new QDockWidget(this);
132   aPropPanel->setWindowTitle("Point");
133
134   QWidget* aContent = new QWidget(aPropPanel);
135   QVBoxLayout* aMainLay = new QVBoxLayout(aContent);
136   aMainLay->setContentsMargins(3, 3, 3, 3);
137   aPropPanel->setWidget(aContent);
138
139   /*QWidget* aNameWgt = new QWidget(aContent);
140    QHBoxLayout* aNameLay = new QHBoxLayout(aNameWgt);
141    aNameLay->setContentsMargins(0,0,0,0);
142    aMainLay->addWidget(aNameWgt);
143
144    aNameLay->addWidget(new QLabel("Name", aNameWgt));
145    aNameLay->addWidget(new QLineEdit(aNameWgt));*/
146
147   QComboBox* aCombo = new QComboBox(aContent);
148   aCombo->addItem("By coordinates");
149   aMainLay->addWidget(aCombo);
150
151   QWidget* aGrpBox1 = new QWidget(aContent);
152   //aGrpBox1->setFlat(true);
153   QFormLayout* aFrmLay = new QFormLayout(aGrpBox1);
154   aFrmLay->setContentsMargins(0, 6, 0, 0);
155   aMainLay->addWidget(aGrpBox1);
156
157   QLabel* aLbl = new QLabel(aGrpBox1);
158   aLbl->setPixmap(QPixmap(":pictures/x_point.png"));
159   aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
160
161   aLbl = new QLabel(aGrpBox1);
162   aLbl->setPixmap(QPixmap(":pictures/y_point.png"));
163   aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
164
165   aLbl = new QLabel(aGrpBox1);
166   aLbl->setPixmap(QPixmap(":pictures/z_point.png"));
167   aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
168
169   /*    aGrpBox1 = new QGroupBox("Normal vector", aContent);
170    aGrpBox1->setFlat(true);
171    aFrmLay = new QFormLayout(aGrpBox1);
172    aFrmLay->setContentsMargins(0, 6, 0, 0);
173    aMainLay->addWidget(aGrpBox1);
174
175    aLbl = new QLabel(aGrpBox1);
176    aLbl->setPixmap(QPixmap(":pictures/x_size.png"));
177    aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
178
179    aLbl = new QLabel(aGrpBox1);
180    aLbl->setPixmap(QPixmap(":pictures/y_size.png"));
181    aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
182
183    aLbl = new QLabel(aGrpBox1);
184    aLbl->setPixmap(QPixmap(":pictures/z_size.png"));
185    aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));*/
186
187   aMainLay->addStretch(1);
188
189   QFrame* aFrm = new QFrame(aContent);
190   aFrm->setFrameStyle(QFrame::Sunken);
191   aFrm->setFrameShape(QFrame::Panel);
192   QHBoxLayout* aBtnLay = new QHBoxLayout(aFrm);
193   aBtnLay->setContentsMargins(0, 0, 0, 0);
194   aMainLay->addWidget(aFrm);
195
196   QPushButton* aBtn = new QPushButton(QIcon(":pictures/button_help.png"), "", aFrm);
197   aBtn->setFlat(true);
198   aBtnLay->addWidget(aBtn);
199   aBtnLay->addStretch(1);
200   aBtn = new QPushButton(QIcon(":pictures/button_ok.png"), "", aFrm);
201   aBtn->setFlat(true);
202   aBtnLay->addWidget(aBtn);
203   aBtn = new QPushButton(QIcon(":pictures/button_cancel.png"), "", aFrm);
204   aBtn->setFlat(true);
205   aBtnLay->addWidget(aBtn);
206
207   addDockWidget(Qt::RightDockWidgetArea, aPropPanel);
208 }