ui/qt/window.cpp

changeset 106
a4f4123ca12a
parent 67
f72c4f01bf4a
child 157
0b33b9396851
--- a/ui/qt/window.cpp	Sat Jan 23 18:37:30 2016 +0100
+++ b/ui/qt/window.cpp	Sat Jan 23 20:47:07 2016 +0100
@@ -35,8 +35,9 @@
 #include "container.h"
 
 #include <QVBoxLayout>
+#include <QFileDialog>
 
-UiObject* ui_window(char *title, void *window_data) {
+static UiObject* create_window(char *title, void *window_data, bool simple) {
     UcxMempool *mp = ucx_mempool_new(256);
     UiObject *obj = (UiObject*)ucx_mempool_calloc(mp, 1, sizeof(UiObject));
     obj->ctx = uic_context(obj, mp);
@@ -46,10 +47,11 @@
     QMainWindow *window = new QMainWindow();
     obj->widget = window;
     
-    ui_add_menus(obj, window);
-    
-    QToolBar *toolbar = ui_create_toolbar(obj);
-    window->addToolBar(Qt::TopToolBarArea, toolbar);
+    if(!simple) {
+        ui_add_menus(obj, window);
+        QToolBar *toolbar = ui_create_toolbar(obj);
+        window->addToolBar(Qt::TopToolBarArea, toolbar);
+    }
     
     QBoxLayout *box = new QVBoxLayout();
     QWidget *boxWidget = new QWidget();
@@ -60,3 +62,34 @@
     obj->widget = window;
     return obj;
 }
+
+UiObject* ui_window(char *title, void *window_data) {
+    return create_window(title, window_data, FALSE);
+}
+
+UiObject* ui_simplewindow(char *title, void *window_data) {
+    return create_window(title, window_data, TRUE);
+}
+
+
+char* ui_openfiledialog(UiObject *obj) {
+    QString fileName = QFileDialog::getOpenFileName(obj->widget);
+    if(fileName.size() > 0) {
+        QByteArray array = fileName.toLocal8Bit();
+        const char *cstr = array.constData();
+        return strdup(cstr);
+    } else {
+        return NULL;
+    }
+}
+
+char* ui_savefiledialog(UiObject *obj) {
+    QString fileName = QFileDialog::getSaveFileName(obj->widget);
+    if(fileName.size() > 0) {
+        QByteArray array = fileName.toLocal8Bit();
+        const char *cstr = array.constData();
+        return strdup(cstr);
+    } else {
+        return NULL;
+    }
+}

mercurial