#include "XGUI_MainWindow.h"
+#include "XGUI_Constants.h"
#include "XGUI_MainMenu.h"
#include "XGUI_ViewWindow.h"
#include "XGUI_Viewer.h"
#include <QPushButton>
#include <QScrollArea>
#include <QComboBox>
+#include <QAction>
XGUI_MainWindow::XGUI_MainWindow(QWidget* parent)
: QMainWindow(parent),
- myObjectBrowser(0),
- myPythonConsole(0)
+ myObjectBrowser(NULL),
+ myPythonConsole(NULL),
+ myPropertyPanelDock(NULL)
{
- setWindowTitle(tr("WINDOW_TITLE"));
+ setWindowTitle(tr("New Geom"));
myMenuBar = new XGUI_MainMenu(this);
- QDockWidget* aDoc = new QDockWidget(this);
- aDoc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
- aDoc->setWindowTitle(tr("OBJECT_BROWSER_TITLE"));
-
- myObjectBrowser = new XGUI_ObjectsBrowser(aDoc);
- //myObjectBrowser->setColumnCount(1);
- //myObjectBrowser->setHeaderHidden(true);
- aDoc->setWidget(myObjectBrowser);
- addDockWidget(Qt::LeftDockWidgetArea, aDoc);
- //aDoc->hide();
-
QMdiArea* aMdiArea = new QMdiArea(this);
setCentralWidget(aMdiArea);
myViewer = new XGUI_Viewer(this);
- //fillObjectBrowser();
- //addPropertyPanel();
+ createDockWidgets();
}
XGUI_MainWindow::~XGUI_MainWindow(void)
myPythonConsole->parentWidget()->hide();
}
-
-
-//******************************************************
-
-// TEST FUNCTIONS
-
-//******************************************************
-/*void XGUI_MainWindow::fillObjectBrowser()
+void XGUI_MainWindow::showPropertyPanel()
{
- QStringList aNames;
- aNames << "Parameters" << "Constructions";
- aNames << "Part 1" << "Part 2" << "Part 3";
- aNames << "Properties";
-
- QStringList aIcons;
- aIcons << ":pictures/params_folder.png";
- aIcons << ":pictures/constr_folder.png";
- aIcons << ":pictures/part_ico.png";
- aIcons << ":pictures/part_ico.png";
- aIcons << ":pictures/part_ico.png";
- aIcons << ":pictures/properties.png";
-
- QList<QTreeWidgetItem*> aItems;
- foreach(QString aName, aNames)
- {
- QTreeWidgetItem* aItem = new QTreeWidgetItem(myObjectBrowser);
- aItem->setText(0, aName);
- aItems.append(aItem);
- }
- for(int i = 0; i < aItems.length(); i++) {
- aItems[i]->setIcon(0, QIcon(aIcons[i]));
- }
- myObjectBrowser->addTopLevelItems(aItems);
+ QAction* aViewAct = myPropertyPanelDock->toggleViewAction();
+ //<! Restore ability to close panel from the window's menu
+ aViewAct->setEnabled(true);
+ myPropertyPanelDock->show();
+ myPropertyPanelDock->raise();
+}
- for(int i = 2; i < 5; i++) {
- QTreeWidgetItem* aItem = new QTreeWidgetItem(aItems[i]);
- aItem->setText(0, "Parameters");
- aItem->setIcon(0, QIcon(":pictures/params_folder.png"));
+void XGUI_MainWindow::hidePropertyPanel()
+{
+ QAction* aViewAct = myPropertyPanelDock->toggleViewAction();
+ //<! Do not allow to show empty property panel
+ aViewAct->setEnabled(false);
+ myPropertyPanelDock->hide();
+}
- aItem = new QTreeWidgetItem(aItems[i]);
- aItem->setText(0, "Construction");
- aItem->setIcon(0, QIcon(":pictures/constr_folder.png"));
+/*
+ * Creates dock widgets, places them in corresponding area
+ * and tabifies if necessary.
+ */
+void XGUI_MainWindow::createDockWidgets()
+{
+ QDockWidget* aObjDock = createObjectBrowser();
+ addDockWidget(Qt::LeftDockWidgetArea, aObjDock);
+ myPropertyPanelDock = createPropertyPanel();
+ addDockWidget(Qt::LeftDockWidgetArea, myPropertyPanelDock);
+ hidePropertyPanel(); //<! Invisible by default
- aItem = new QTreeWidgetItem(aItems[i]);
- aItem->setText(0, "Bodies");
- aItem->setIcon(0, QIcon(":pictures/part_ico.png"));
+ tabifyDockWidget(aObjDock, myPropertyPanelDock);
+}
- aItem = new QTreeWidgetItem(aItems[i]);
- aItem->setText(0, "Features");
- aItem->setIcon(0, QIcon(":pictures/features.png"));
- }
-}*/
-void XGUI_MainWindow::addPropertyPanel()
+QDockWidget* XGUI_MainWindow::createPropertyPanel()
{
QDockWidget* aPropPanel = new QDockWidget(this);
- aPropPanel->setWindowTitle("Point");
+ aPropPanel->setWindowTitle(tr("Property Panel"));
+ aPropPanel->setObjectName(XGUI::PROP_PANEL);
QWidget* aContent = new QWidget(aPropPanel);
QVBoxLayout* aMainLay = new QVBoxLayout(aContent);
aMainLay->setContentsMargins(3, 3, 3, 3);
aPropPanel->setWidget(aContent);
- /*QWidget* aNameWgt = new QWidget(aContent);
- QHBoxLayout* aNameLay = new QHBoxLayout(aNameWgt);
- aNameLay->setContentsMargins(0,0,0,0);
- aMainLay->addWidget(aNameWgt);
-
- aNameLay->addWidget(new QLabel("Name", aNameWgt));
- aNameLay->addWidget(new QLineEdit(aNameWgt));*/
-
- QComboBox* aCombo = new QComboBox(aContent);
- aCombo->addItem("By coordinates");
- aMainLay->addWidget(aCombo);
-
- QWidget* aGrpBox1 = new QWidget(aContent);
- //aGrpBox1->setFlat(true);
- QFormLayout* aFrmLay = new QFormLayout(aGrpBox1);
- aFrmLay->setContentsMargins(0, 6, 0, 0);
- aMainLay->addWidget(aGrpBox1);
-
- QLabel* aLbl = new QLabel(aGrpBox1);
- aLbl->setPixmap(QPixmap(":pictures/x_point.png"));
- aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
-
- aLbl = new QLabel(aGrpBox1);
- aLbl->setPixmap(QPixmap(":pictures/y_point.png"));
- aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
-
- aLbl = new QLabel(aGrpBox1);
- aLbl->setPixmap(QPixmap(":pictures/z_point.png"));
- aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
-
- /* aGrpBox1 = new QGroupBox("Normal vector", aContent);
- aGrpBox1->setFlat(true);
- aFrmLay = new QFormLayout(aGrpBox1);
- aFrmLay->setContentsMargins(0, 6, 0, 0);
- aMainLay->addWidget(aGrpBox1);
-
- aLbl = new QLabel(aGrpBox1);
- aLbl->setPixmap(QPixmap(":pictures/x_size.png"));
- aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
-
- aLbl = new QLabel(aGrpBox1);
- aLbl->setPixmap(QPixmap(":pictures/y_size.png"));
- aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));
-
- aLbl = new QLabel(aGrpBox1);
- aLbl->setPixmap(QPixmap(":pictures/z_size.png"));
- aFrmLay->addRow(aLbl, new QDoubleSpinBox(aGrpBox1));*/
-
+ QWidget* aCustomWidget = new QWidget(aContent);
+ aCustomWidget->setObjectName(XGUI::PROP_PANEL_WDG);
+ aMainLay->addWidget(aCustomWidget);
aMainLay->addStretch(1);
QFrame* aFrm = new QFrame(aContent);
aBtnLay->addWidget(aBtn);
aBtnLay->addStretch(1);
aBtn = new QPushButton(QIcon(":pictures/button_ok.png"), "", aFrm);
+ aBtn->setObjectName(XGUI::PROP_PANEL_OK);
aBtn->setFlat(true);
aBtnLay->addWidget(aBtn);
aBtn = new QPushButton(QIcon(":pictures/button_cancel.png"), "", aFrm);
+ aBtn->setObjectName(XGUI::PROP_PANEL_CANCEL);
aBtn->setFlat(true);
aBtnLay->addWidget(aBtn);
- addDockWidget(Qt::RightDockWidgetArea, aPropPanel);
+ return aPropPanel;
+}
+
+QDockWidget* XGUI_MainWindow::createObjectBrowser()
+{
+ QDockWidget* aObjDock = new QDockWidget(this);
+ aObjDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
+ aObjDock->setWindowTitle(tr("Object browser"));
+ myObjectBrowser = new XGUI_ObjectsBrowser(aObjDock);
+ //myObjectBrowser->setColumnCount(1);
+ //myObjectBrowser->setHeaderHidden(true);
+ aObjDock->setWidget(myObjectBrowser);
+// fillObjectBrowser();
+ return aObjDock;
}