--- a/ui/qt/window.cpp Wed Jul 30 19:51:39 2025 +0200 +++ b/ui/qt/window.cpp Fri Aug 08 21:19:36 2025 +0200 @@ -38,8 +38,9 @@ #include <QVBoxLayout> #include <QFileDialog> #include <QPushButton> +#include <QDockWidget> -static UiObject* create_window(const char *title, void *window_data, bool simple) { +static UiObject* create_window(const char *title, void *window_data, bool simple, bool sidebar = false) { UiObject *obj = uic_object_new_toplevel(); obj->window = window_data; obj->next = NULL; @@ -61,19 +62,28 @@ boxWidget->setLayout(box); window->setCentralWidget(boxWidget); ui_container_add(obj, new UiBoxContainer(box)); + if(sidebar) { + QDockWidget *dock = new QDockWidget(); + window->addDockWidget(Qt::LeftDockWidgetArea, dock); + window->setProperty("ui_sidebar", QVariant::fromValue((void*)dock)); + } obj->widget = window; return obj; } UiObject* ui_window(const char *title, void *window_data) { - return create_window(title, window_data, FALSE); + return create_window(title, window_data, false); } UiObject* ui_simplewindow(char *title, void *window_data) { - return create_window(title, window_data, TRUE); + return create_window(title, window_data, true); } + UiObject *ui_sidebar_window(const char *title, void *window_data) { + return create_window(title, window_data, false, true); + } + char* ui_openfiledialog(UiObject *obj) { QString fileName = QFileDialog::getOpenFileName(obj->widget);