LibGUI: Store Statusbar text as String

This commit is contained in:
Karol Kosek 2023-06-04 09:46:32 +02:00 committed by Sam Atkins
parent e1e382152c
commit 2064f544c6
Notes: sideshowbarker 2024-07-16 22:17:03 +09:00
2 changed files with 20 additions and 17 deletions

View file

@ -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);
}

View file

@ -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<String> 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<String> m_override_text;
String m_restored_text;
bool m_clickable { false };
int m_restored_width { 0 };
Mode m_mode { Mode::Proportional };