ui/qt/container.cpp

changeset 109
c3dfcb8f0be7
parent 108
77254bd6dccb
child 112
c3f2f16fa4b8
--- a/ui/qt/container.cpp	Sun Jul 20 22:04:39 2025 +0200
+++ b/ui/qt/container.cpp	Sun Aug 24 15:24:16 2025 +0200
@@ -35,6 +35,7 @@
 #include <QSpacerItem>
 #include <QStackedWidget>
 #include <QLabel>
+#include <QDockWidget>
 
 static void delete_container(UiContainerPrivate *ct) {
     delete ct;
@@ -228,7 +229,7 @@
     }
 }
 
-UIEXPORT UIWIDGET ui_grid_create(UiObject *obj, UiContainerArgs *args) {
+UIWIDGET ui_grid_create(UiObject *obj, UiContainerArgs *args) {
     UiContainerPrivate *ctn = (UiContainerPrivate*)ui_obj_container(obj);
     UI_APPLY_LAYOUT(ctn->layout, args);
     
@@ -251,6 +252,25 @@
 }
 
 
+/* ---------------------------- UiSidebar ---------------------------- */
+
+UIWIDGET ui_sidebar_create(UiObject *obj, UiSidebarArgs *args) {
+    QVariant v = obj->widget->property("ui_sidebar");
+    QDockWidget *dock = (QDockWidget*)v.value<void*>();
+    if(!dock) {
+        fprintf(stderr, "Error: window is not configured for sidebar\n");
+        return nullptr;
+    }
+    
+    QWidget *widget = new QWidget();
+    QBoxLayout *box = new QBoxLayout(QBoxLayout::TopToBottom);
+    widget->setLayout(box);
+    dock->setWidget(widget);
+    
+    ui_container_add(obj, new UiBoxContainer(box));
+    
+    return dock;
+}
 
 /* -------------------- Container Helper Functions -------------------- */
 

mercurial