ui/qt/window.cpp

changeset 688
a3a057c0a0b6
parent 627
3f0c9fe60c68
child 690
c1fc788d982d
equal deleted inserted replaced
684:3c9b430fb160 688:a3a057c0a0b6
36 #include "container.h" 36 #include "container.h"
37 37
38 #include <QVBoxLayout> 38 #include <QVBoxLayout>
39 #include <QFileDialog> 39 #include <QFileDialog>
40 #include <QPushButton> 40 #include <QPushButton>
41 #include <QDockWidget>
41 42
42 static UiObject* create_window(const char *title, void *window_data, bool simple) { 43 static UiObject* create_window(const char *title, void *window_data, bool simple, bool sidebar = false) {
43 UiObject *obj = uic_object_new_toplevel(); 44 UiObject *obj = uic_object_new_toplevel();
44 obj->window = window_data; 45 obj->window = window_data;
45 obj->next = NULL; 46 obj->next = NULL;
46 47
47 QMainWindow *window = new QMainWindow(); 48 QMainWindow *window = new QMainWindow();
59 QBoxLayout *box = new QVBoxLayout(); 60 QBoxLayout *box = new QVBoxLayout();
60 QWidget *boxWidget = new QWidget(); 61 QWidget *boxWidget = new QWidget();
61 boxWidget->setLayout(box); 62 boxWidget->setLayout(box);
62 window->setCentralWidget(boxWidget); 63 window->setCentralWidget(boxWidget);
63 ui_container_add(obj, new UiBoxContainer(box)); 64 ui_container_add(obj, new UiBoxContainer(box));
65 if(sidebar) {
66 QDockWidget *dock = new QDockWidget();
67 window->addDockWidget(Qt::LeftDockWidgetArea, dock);
68 window->setProperty("ui_sidebar", QVariant::fromValue((void*)dock));
69 }
64 70
65 obj->widget = window; 71 obj->widget = window;
66 return obj; 72 return obj;
67 } 73 }
68 74
69 UiObject* ui_window(const char *title, void *window_data) { 75 UiObject* ui_window(const char *title, void *window_data) {
70 return create_window(title, window_data, FALSE); 76 return create_window(title, window_data, false);
71 } 77 }
72 78
73 UiObject* ui_simplewindow(char *title, void *window_data) { 79 UiObject* ui_simplewindow(char *title, void *window_data) {
74 return create_window(title, window_data, TRUE); 80 return create_window(title, window_data, true);
75 } 81 }
82
83 UiObject *ui_sidebar_window(const char *title, void *window_data) {
84 return create_window(title, window_data, false, true);
85 }
76 86
77 87
78 char* ui_openfiledialog(UiObject *obj) { 88 char* ui_openfiledialog(UiObject *obj) {
79 QString fileName = QFileDialog::getOpenFileName(obj->widget); 89 QString fileName = QFileDialog::getOpenFileName(obj->widget);
80 if(fileName.size() > 0) { 90 if(fileName.size() > 0) {

mercurial