diff --git a/Userland/Libraries/LibGUI/Statusbar.cpp b/Userland/Libraries/LibGUI/Statusbar.cpp index cd18895bf6..acaaa4b8cb 100644 --- a/Userland/Libraries/LibGUI/Statusbar.cpp +++ b/Userland/Libraries/LibGUI/Statusbar.cpp @@ -79,24 +79,24 @@ void Statusbar::update_segment(size_t index) } } - if (segment->override_text().is_null()) { - for (size_t i = 1; i < m_segments.size(); i++) { - if (!text(i).is_empty()) - m_segments[i]->set_visible(true); - } - segment->set_text(String::from_deprecated_string(segment->restored_text()).release_value_but_fixme_should_propagate_errors()); - segment->set_frame_style(Gfx::FrameStyle::SunkenPanel); - if (segment->mode() != Segment::Mode::Proportional) - segment->set_fixed_width(segment->restored_width()); - } else { + if (segment->override_text().has_value()) { for (size_t i = 1; i < m_segments.size(); i++) { if (!m_segments[i]->is_clickable()) m_segments[i]->set_visible(false); } - segment->set_text(String::from_deprecated_string(segment->override_text()).release_value_but_fixme_should_propagate_errors()); + segment->set_text(*segment->override_text()); segment->set_frame_style(Gfx::FrameStyle::NoFrame); if (segment->mode() != Segment::Mode::Proportional) segment->set_fixed_width(SpecialDimension::Grow); + } else { + for (size_t i = 1; i < m_segments.size(); i++) { + if (!text(i).is_empty()) + m_segments[i]->set_visible(true); + } + segment->set_text(segment->restored_text()); + segment->set_frame_style(Gfx::FrameStyle::SunkenPanel); + if (segment->mode() != Segment::Mode::Proportional) + segment->set_fixed_width(segment->restored_width()); } } @@ -112,13 +112,16 @@ void Statusbar::set_text(DeprecatedString text) void Statusbar::set_text(size_t index, DeprecatedString text) { - m_segments[index]->m_restored_text = move(text); + m_segments[index]->m_restored_text = String::from_deprecated_string(text).release_value_but_fixme_should_propagate_errors(); update_segment(index); } void Statusbar::set_override_text(DeprecatedString override_text) { - m_segments[0]->m_override_text = move(override_text); + if (override_text.is_null()) + m_segments[0]->m_override_text = {}; + else + m_segments[0]->m_override_text = String::from_deprecated_string(override_text).release_value_but_fixme_should_propagate_errors(); update_segment(0); } diff --git a/Userland/Libraries/LibGUI/Statusbar.h b/Userland/Libraries/LibGUI/Statusbar.h index 916f59cf14..261ad7b5cf 100644 --- a/Userland/Libraries/LibGUI/Statusbar.h +++ b/Userland/Libraries/LibGUI/Statusbar.h @@ -51,11 +51,11 @@ public: void set_frame_style(Gfx::FrameStyle style) { m_style = style; } void set_restored_width(int width) { m_restored_width = width; } int restored_width() const { return m_restored_width; } - DeprecatedString const& override_text() const { return m_override_text; } - DeprecatedString const& restored_text() const { return m_restored_text; } + Optional const& override_text() const { return m_override_text; } + String const& restored_text() const { return m_restored_text; } - DeprecatedString m_override_text; - DeprecatedString m_restored_text; + Optional m_override_text; + String m_restored_text; bool m_clickable { false }; int m_restored_width { 0 }; Mode m_mode { Mode::Proportional };