ui/qt/container.cpp

changeset 688
a3a057c0a0b6
parent 672
1b08ba076b65
child 802
cc73993a3ff9
--- a/ui/qt/container.cpp	Wed Jul 30 19:51:39 2025 +0200
+++ b/ui/qt/container.cpp	Fri Aug 08 21:19:36 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