diff --git a/Userland/Applications/PixelPaint/PixelPaintWindow.gml b/Userland/Applications/PixelPaint/PixelPaintWindow.gml index 8fe3166c22..34e1c467c3 100644 --- a/Userland/Applications/PixelPaint/PixelPaintWindow.gml +++ b/Userland/Applications/PixelPaint/PixelPaintWindow.gml @@ -43,59 +43,80 @@ } } - @GUI::Widget { - fill_with_background_color: true + @GUI::DynamicWidgetContainer { + section_label: "Editor Panels" + config_domain: "PixelPaint" + with_individual_order: true fixed_width: 200 - layout: @GUI::VerticalBoxLayout {} + preferred_height: "grow" + detached_size: [200, 640] - @GUI::GroupBox { - title: "Layers" - layout: @GUI::VerticalBoxLayout { - margins: [6] + @GUI::DynamicWidgetContainer { + section_label: "Layers" + config_domain: "PixelPaint" + preferred_height: "grow" + detached_size: [250, 600] + + @GUI::GroupBox { + layout: @GUI::VerticalBoxLayout { + margins: [6] + } + + @PixelPaint::LayerListWidget { + name: "layer_list_widget" + } } - @PixelPaint::LayerListWidget { - name: "layer_list_widget" + @PixelPaint::LayerPropertiesWidget { + name: "layer_properties_widget" + max_height: 94 } } - @PixelPaint::LayerPropertiesWidget { - name: "layer_properties_widget" - max_height: 94 - } + @GUI::DynamicWidgetContainer { + section_label: "Color Visualizations" + config_domain: "PixelPaint" - @GUI::GroupBox { - title: "Histogram" - preferred_height: "shrink" - visible: false - layout: @GUI::VerticalBoxLayout { - margins: [6] - } + @GUI::Widget { + layout: @GUI::VerticalBoxLayout {} - @PixelPaint::HistogramWidget { - name: "histogram_widget" - min_height: 65 + @GUI::GroupBox { + visible: false + layout: @GUI::VerticalBoxLayout { + margins: [6] + } + + @PixelPaint::HistogramWidget { + name: "histogram_widget" + min_height: 65 + } + } + + @GUI::GroupBox { + min_height: 80 + visible: false + layout: @GUI::VerticalBoxLayout { + margins: [6] + } + + @PixelPaint::VectorscopeWidget { + name: "vectorscope_widget" + preferred_height: "fit" + } + } } } - @GUI::GroupBox { - title: "Vectorscope" - min_height: 80 - visible: false - layout: @GUI::VerticalBoxLayout { - margins: [6] - } + @GUI::DynamicWidgetContainer { + section_label: "Tool Properties" + config_domain: "PixelPaint" + detached_size: [200, 200] - @PixelPaint::VectorscopeWidget { - name: "vectorscope_widget" - preferred_height: "fit" + @PixelPaint::ToolPropertiesWidget { + name: "tool_properties_widget" + max_height: 144 } } - - @PixelPaint::ToolPropertiesWidget { - name: "tool_properties_widget" - max_height: 144 - } } } diff --git a/Userland/Applications/PixelPaint/ToolPropertiesWidget.cpp b/Userland/Applications/PixelPaint/ToolPropertiesWidget.cpp index f9ec4937ba..aea43ae9a0 100644 --- a/Userland/Applications/PixelPaint/ToolPropertiesWidget.cpp +++ b/Userland/Applications/PixelPaint/ToolPropertiesWidget.cpp @@ -19,7 +19,7 @@ ToolPropertiesWidget::ToolPropertiesWidget() { set_layout(); - m_group_box = add("Tool properties"sv); + m_group_box = add(); m_group_box->set_layout(8); m_tool_widget_stack = m_group_box->add(); m_error_label = m_tool_widget_stack->add(); diff --git a/Userland/Applications/PixelPaint/main.cpp b/Userland/Applications/PixelPaint/main.cpp index 0a8698b309..f72277b7dd 100644 --- a/Userland/Applications/PixelPaint/main.cpp +++ b/Userland/Applications/PixelPaint/main.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -53,8 +54,10 @@ ErrorOr serenity_main(Main::Arguments arguments) TRY(main_widget->initialize_menubar(*window)); window->on_close_request = [&]() -> GUI::Window::CloseRequestDecision { - if (main_widget->request_close()) + if (main_widget->request_close()) { + GUI::DynamicWidgetContainer::close_all_detached_windows(); return GUI::Window::CloseRequestDecision::Close; + } return GUI::Window::CloseRequestDecision::StayOpen; };