diff --git a/Userland/Libraries/LibGUI/Progressbar.cpp b/Userland/Libraries/LibGUI/Progressbar.cpp index f54b9fdf45..51ec3d67a7 100644 --- a/Userland/Libraries/LibGUI/Progressbar.cpp +++ b/Userland/Libraries/LibGUI/Progressbar.cpp @@ -27,6 +27,8 @@ Progressbar::Progressbar(Orientation orientation) { Format::ValueSlashMax, "ValueSlashMax" }); REGISTER_INT_PROPERTY("min", min, set_min); REGISTER_INT_PROPERTY("max", max, set_max); + + set_preferred_size(SpecialDimension::Fit); } void Progressbar::set_value(int value) @@ -81,4 +83,11 @@ void Progressbar::set_orientation(Orientation value) update(); } +Optional Progressbar::calculated_preferred_size() const +{ + if (orientation() == Gfx::Orientation::Vertical) + return { { 22, SpecialDimension::OpportunisticGrow } }; + return { { SpecialDimension::OpportunisticGrow, 22 } }; +} + } diff --git a/Userland/Libraries/LibGUI/Progressbar.h b/Userland/Libraries/LibGUI/Progressbar.h index ac609dcdd2..66fa91be33 100644 --- a/Userland/Libraries/LibGUI/Progressbar.h +++ b/Userland/Libraries/LibGUI/Progressbar.h @@ -45,6 +45,8 @@ protected: virtual void paint_event(PaintEvent&) override; private: + virtual Optional calculated_preferred_size() const override; + Format m_format { Percentage }; int m_min { 0 }; int m_max { 100 };