1 #include "XGUI_MainWindow.h"
2 #include "XGUI_MainMenu.h"
3 #include "XGUI_ViewWindow.h"
4 #include "XGUI_Viewer.h"
12 #include <QToolButton>
13 #include <QTreeWidgetItem>
17 #include <QFormLayout>
18 #include <QDoubleSpinBox>
19 #include <QPushButton>
20 #include <QScrollArea>
23 XGUI_MainWindow::XGUI_MainWindow(QWidget* parent)
24 : QMainWindow(parent), myObjectBrowser(0)
26 setWindowTitle(tr("WINDOW_TITLE"));
27 myMenuBar = new XGUI_MainMenu(this);
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);
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);
49 QMdiArea* aMdiArea = new QMdiArea(this);
50 setCentralWidget(aMdiArea);
52 myViewer = new XGUI_Viewer(this);
53 //aMdiArea->addSubWindow(new XGUI_ViewWindow(), Qt::FramelessWindowHint);
54 //aMdiArea->addSubWindow(new XGUI_ViewWindow(), Qt::FramelessWindowHint);
60 XGUI_MainWindow::~XGUI_MainWindow(void)
64 //******************************************************
65 QMdiArea* XGUI_MainWindow::mdiArea() const
67 return static_cast<QMdiArea*>(centralWidget());
70 //******************************************************
71 void XGUI_MainWindow::showObjectBrowser()
73 myObjectBrowser->parentWidget()->show();
76 //******************************************************
77 void XGUI_MainWindow::hideObjectBrowser()
79 myObjectBrowser->parentWidget()->hide();
82 //******************************************************
83 void XGUI_MainWindow::fillObjectBrowser()
86 aNames << "Parameters" << "Constructions";
87 aNames << "Part 1" << "Part 2" << "Part 3";
88 aNames << "Properties";
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";
98 QList<QTreeWidgetItem*> aItems;
99 foreach(QString aName, aNames)
101 QTreeWidgetItem* aItem = new QTreeWidgetItem(myObjectBrowser);
102 aItem->setText(0, aName);
103 aItems.append(aItem);
105 for(int i = 0; i < aItems.length(); i++) {
106 aItems[i]->setIcon(0, QIcon(aIcons[i]));
108 myObjectBrowser->addTopLevelItems(aItems);
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"));
115 aItem = new QTreeWidgetItem(aItems[i]);
116 aItem->setText(0, "Construction");
117 aItem->setIcon(0, QIcon(":pictures/constr_folder.png"));
119 aItem = new QTreeWidgetItem(aItems[i]);
120 aItem->setText(0, "Bodies");
121 aItem->setIcon(0, QIcon(":pictures/part_ico.png"));
123 aItem = new QTreeWidgetItem(aItems[i]);
124 aItem->setText(0, "Features");
125 aItem->setIcon(0, QIcon(":pictures/features.png"));
129 void XGUI_MainWindow::addPropertyPanel()
131 QDockWidget* aPropPanel = new QDockWidget(this);
132 aPropPanel->setWindowTitle("Property Panel");
134 QWidget* aContent = new QWidget(aPropPanel);
135 QVBoxLayout* aMainLay = new QVBoxLayout(aContent);
136 aMainLay->setContentsMargins(3, 3, 3, 3);
137 aPropPanel->setWidget(aContent);
139 QWidget* aCustomWidget = new QWidget(aContent);
140 aCustomWidget->setObjectName("PropertyPanelWidget");
141 aMainLay->addWidget(aCustomWidget);
144 QWidget* aNameWgt = new QWidget(aContent);
145 QHBoxLayout* aNameLay = new QHBoxLayout(aNameWgt);
146 aNameLay->setContentsMargins(0,0,0,0);
147 aMainLay->addWidget(aNameWgt);
149 aNameLay->addWidget(new QLabel("Name", aNameWgt));
150 aNameLay->addWidget(new QLineEdit(aNameWgt));
153 /* Moved into PartSetModule by sbh
154 QComboBox* aCombo = new QComboBox(aContent);
155 aCombo->addItem("By coordinates");
156 aMainLay->addWidget(aCombo);
158 QWidget* aGrpBox1 = new QWidget(aContent);
159 QFormLayout* aFrmLay = new QFormLayout(aGrpBox1);
160 aFrmLay->setContentsMargins(0, 6, 0, 0);
161 aMainLay->addWidget(aGrpBox1);
163 QLabel* aLbl = new QLabel(aGrpBox1);
164 aLbl->setPixmap(QPixmap(":pictures/x_point.png"));
165 aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
167 aLbl = new QLabel(aGrpBox1);
168 aLbl->setPixmap(QPixmap(":pictures/y_point.png"));
169 aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
171 aLbl = new QLabel(aGrpBox1);
172 aLbl->setPixmap(QPixmap(":pictures/z_point.png"));
173 aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
177 aGrpBox1 = new QGroupBox("Normal vector", aContent);
178 aGrpBox1->setFlat(true);
179 aFrmLay = new QFormLayout(aGrpBox1);
180 aFrmLay->setContentsMargins(0, 6, 0, 0);
181 aMainLay->addWidget(aGrpBox1);
183 aLbl = new QLabel(aGrpBox1);
184 aLbl->setPixmap(QPixmap(":pictures/x_size.png"));
185 aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
187 aLbl = new QLabel(aGrpBox1);
188 aLbl->setPixmap(QPixmap(":pictures/y_size.png"));
189 aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
191 aLbl = new QLabel(aGrpBox1);
192 aLbl->setPixmap(QPixmap(":pictures/z_size.png"));
193 aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
196 aMainLay->addStretch(1);
198 QFrame* aFrm = new QFrame(aContent);
199 aFrm->setFrameStyle(QFrame::Sunken);
200 aFrm->setFrameShape(QFrame::Panel);
201 QHBoxLayout* aBtnLay = new QHBoxLayout(aFrm);
202 aBtnLay->setContentsMargins(0, 0, 0, 0);
203 aMainLay->addWidget(aFrm);
205 QPushButton* aBtn = new QPushButton(QIcon(":pictures/button_help.png"), "", aFrm);
207 aBtnLay->addWidget(aBtn);
208 aBtnLay->addStretch(1);
209 aBtn = new QPushButton(QIcon(":pictures/button_ok.png"), "", aFrm);
211 aBtnLay->addWidget(aBtn);
212 aBtn = new QPushButton(QIcon(":pictures/button_cancel.png"), "", aFrm);
214 aBtnLay->addWidget(aBtn);
216 addDockWidget(Qt::RightDockWidgetArea, aPropPanel);