1 #include "XGUI_MainWindow.h"
2 #include "XGUI_MainMenu.h"
3 #include "XGUI_ViewWindow.h"
4 #include "XGUI_Viewer.h"
5 #include "XGUI_ObjectsBrowser.h"
7 #include <PyConsole_Console.h>
8 #include <PyConsole_EnhInterp.h>
11 #include <QTreeWidget>
12 #include <QDockWidget>
16 #include <QToolButton>
17 #include <QTreeWidgetItem>
21 #include <QFormLayout>
22 #include <QDoubleSpinBox>
23 #include <QPushButton>
24 #include <QScrollArea>
28 XGUI_MainWindow::XGUI_MainWindow(QWidget* parent)
29 : QMainWindow(parent),
33 setWindowTitle(tr("New Geom"));
34 myMenuBar = new XGUI_MainMenu(this);
36 QMdiArea* aMdiArea = new QMdiArea(this);
37 setCentralWidget(aMdiArea);
39 myViewer = new XGUI_Viewer(this);
44 XGUI_MainWindow::~XGUI_MainWindow(void)
48 //******************************************************
49 QMdiArea* XGUI_MainWindow::mdiArea() const
51 return static_cast<QMdiArea*>(centralWidget());
54 //******************************************************
55 void XGUI_MainWindow::showObjectBrowser()
57 myObjectBrowser->parentWidget()->show();
60 //******************************************************
61 void XGUI_MainWindow::hideObjectBrowser()
63 myObjectBrowser->parentWidget()->hide();
66 //******************************************************
67 void XGUI_MainWindow::showPythonConsole()
69 if (!myPythonConsole) {
71 QDockWidget* aDoc = new QDockWidget(this);
72 aDoc->setFeatures(QDockWidget::AllDockWidgetFeatures | QDockWidget::DockWidgetVerticalTitleBar);
73 aDoc->setMinimumHeight(0);
74 aDoc->setWindowTitle("Console");
75 myPythonConsole = new PyConsole_EnhConsole( aDoc, new PyConsole_EnhInterp());
76 //myPythonConsole = new QTextEdit(aDoc);
77 //myPythonConsole->setGeometry(0,0,200, 50);
78 //myPythonConsole->setText(">>>");
79 aDoc->setWidget(myPythonConsole);
80 //myPythonConsole->setMinimumHeight(0);
81 addDockWidget(Qt::TopDockWidgetArea, aDoc);
82 tabifyDockWidget(myMenuBar->getLastDockWindow(), aDoc);
84 myPythonConsole->parentWidget()->show();
87 //******************************************************
88 void XGUI_MainWindow::hidePythonConsole()
91 myPythonConsole->parentWidget()->hide();
95 * Creates dock widgets, places them in corresponding area
96 * and tabifies if necessary.
98 void XGUI_MainWindow::createDockWidgets()
100 QDockWidget* aObjDock = createObjectBrowser();
101 addDockWidget(Qt::LeftDockWidgetArea, aObjDock);
102 QDockWidget* aPropPanelDock = createPropertyPanel();
103 addDockWidget(Qt::LeftDockWidgetArea, aPropPanelDock);
105 tabifyDockWidget(aPropPanelDock, aObjDock);
109 QDockWidget* XGUI_MainWindow::createPropertyPanel()
111 QDockWidget* aPropPanel = new QDockWidget(this);
112 aPropPanel->setWindowTitle(tr("Property Panel"));
114 QWidget* aContent = new QWidget(aPropPanel);
115 QVBoxLayout* aMainLay = new QVBoxLayout(aContent);
116 aMainLay->setContentsMargins(3, 3, 3, 3);
117 aPropPanel->setWidget(aContent);
119 QWidget* aCustomWidget = new QWidget(aContent);
120 aCustomWidget->setObjectName("PropertyPanelWidget");
121 aMainLay->addWidget(aCustomWidget);
122 aMainLay->addStretch(1);
124 QFrame* aFrm = new QFrame(aContent);
125 aFrm->setFrameStyle(QFrame::Sunken);
126 aFrm->setFrameShape(QFrame::Panel);
127 QHBoxLayout* aBtnLay = new QHBoxLayout(aFrm);
128 aBtnLay->setContentsMargins(0, 0, 0, 0);
129 aMainLay->addWidget(aFrm);
131 QPushButton* aBtn = new QPushButton(QIcon(":pictures/button_help.png"), "", aFrm);
133 aBtnLay->addWidget(aBtn);
134 aBtnLay->addStretch(1);
135 aBtn = new QPushButton(QIcon(":pictures/button_ok.png"), "", aFrm);
137 aBtnLay->addWidget(aBtn);
138 aBtn = new QPushButton(QIcon(":pictures/button_cancel.png"), "", aFrm);
140 aBtnLay->addWidget(aBtn);
145 QDockWidget* XGUI_MainWindow::createObjectBrowser()
147 QDockWidget* aObjDock = new QDockWidget(this);
148 aObjDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
149 aObjDock->setWindowTitle(tr("Object browser"));
150 myObjectBrowser = new XGUI_ObjectsBrowser(aObjDock);
151 //myObjectBrowser->setColumnCount(1);
152 //myObjectBrowser->setHeaderHidden(true);
153 aObjDock->setWidget(myObjectBrowser);
154 // fillObjectBrowser();