From 325ef4c3b3a5ea63c83723495067aa63770cf104 Mon Sep 17 00:00:00 2001 From: patrick96 Date: Mon, 14 Mar 2022 18:39:34 +0100 Subject: [PATCH 01/20] Cleanup builder Removes unused methods and fields --- include/components/builder.hpp | 18 +++---- include/modules/meta/base.inl | 4 +- src/components/builder.cpp | 87 +++++----------------------------- src/modules/alsa.cpp | 4 +- src/modules/backlight.cpp | 4 +- src/modules/ipc.cpp | 4 +- src/modules/meta/base.cpp | 4 +- src/modules/pulseaudio.cpp | 4 +- src/modules/script.cpp | 4 +- src/modules/systray.cpp | 4 +- src/modules/text.cpp | 4 +- src/modules/xbacklight.cpp | 4 +- src/modules/xkeyboard.cpp | 6 +-- src/modules/xworkspaces.cpp | 9 ++-- 14 files changed, 47 insertions(+), 113 deletions(-) diff --git a/include/components/builder.hpp b/include/components/builder.hpp index d9041695..1efc0c5f 100644 --- a/include/components/builder.hpp +++ b/include/components/builder.hpp @@ -21,11 +21,9 @@ class builder { void reset(); string flush(); - void append(const string& text); void node(const string& str); void node(const string& str, int font_index); void node(const label_t& label); - void node_repeat(const string& str, size_t n); void node_repeat(const label_t& label, size_t n); void offset(extent_val pixels = ZERO_PX_EXTENT); void spacing(spacing_val size); @@ -35,12 +33,6 @@ class builder { void background_close(); void color(rgba color); void color_close(); - void line_color(const rgba& color); - void line_color_close(); - void overline_color(rgba color); - void overline_color_close(); - void underline_color(rgba color); - void underline_color_close(); void overline(const rgba& color = rgba{}); void overline_close(); void underline(const rgba& color = rgba{}); @@ -55,6 +47,13 @@ class builder { static string get_spacing_format_string(const spacing_val& space); protected: + void append(const string& text); + + void overline_color(rgba color); + void overline_color_close(); + void underline_color(rgba color); + void underline_color_close(); + void tag_open(tags::syntaxtag tag, const string& value); void tag_open(tags::attribute attr); void tag_close(tags::syntaxtag tag); @@ -65,10 +64,7 @@ class builder { string m_output; map m_tags{}; - map m_colors{}; map m_attrs{}; - - int m_fontindex{0}; }; POLYBAR_NS_END diff --git a/include/modules/meta/base.inl b/include/modules/meta/base.inl index 1f4378bc..8ea403d2 100644 --- a/include/modules/meta/base.inl +++ b/include/modules/meta/base.inl @@ -271,7 +271,7 @@ namespace modules { m_builder->spacing(format->spacing); } - m_builder->append(tag_content); + m_builder->node(tag_content); has_tags = true; } @@ -279,7 +279,7 @@ namespace modules { } if (cursor < value.size()) { - m_builder->append(value.substr(cursor)); + m_builder->node(value.substr(cursor)); } return format->decorate(&*m_builder, m_builder->flush()); diff --git a/src/components/builder.cpp b/src/components/builder.cpp index ace1dd69..fc85b110 100644 --- a/src/components/builder.cpp +++ b/src/components/builder.cpp @@ -31,19 +31,12 @@ void builder::reset() { m_tags[syntaxtag::u] = 0; m_tags[syntaxtag::P] = 0; - m_colors.clear(); - m_colors[syntaxtag::B] = string(); - m_colors[syntaxtag::F] = string(); - m_colors[syntaxtag::o] = string(); - m_colors[syntaxtag::u] = string(); - m_attrs.clear(); m_attrs[attribute::NONE] = false; m_attrs[attribute::UNDERLINE] = false; m_attrs[attribute::OVERLINE] = false; m_output.clear(); - m_fontindex = 1; } /** @@ -52,33 +45,20 @@ void builder::reset() { * This will also close any unclosed tags */ string builder::flush() { - if (m_tags[syntaxtag::B]) { - background_close(); - } - if (m_tags[syntaxtag::F]) { - color_close(); - } - if (m_tags[syntaxtag::T]) { - font_close(); - } - if (m_tags[syntaxtag::o]) { - overline_color_close(); - } - if (m_tags[syntaxtag::u]) { - underline_color_close(); - } - if (m_attrs[attribute::UNDERLINE]) { - underline_close(); - } - if (m_attrs[attribute::OVERLINE]) { - overline_close(); - } + background_close(); + color_close(); + font_close(); + overline_color_close(); + underline_color_close(); + underline_close(); + overline_close(); while (m_tags[syntaxtag::A]) { action_close(); } - string output{m_output}; + string output{}; + std::swap(m_output, output); reset(); @@ -174,18 +154,6 @@ void builder::node(const label_t& label) { } } -/** - * Repeat text string n times - */ -void builder::node_repeat(const string& str, size_t n) { - string text; - text.reserve(str.size() * n); - while (n--) { - text += str; - } - node(text); -} - /** * Repeat label contents n times */ @@ -233,7 +201,6 @@ void builder::font(int index) { if (index == 0) { return; } - m_fontindex = index; tag_open(syntaxtag::T, to_string(index)); } @@ -241,7 +208,6 @@ void builder::font(int index) { * Insert tag to reset the font index */ void builder::font_close() { - m_fontindex = 1; tag_close(syntaxtag::T); } @@ -252,7 +218,6 @@ void builder::background(rgba color) { color = color.try_apply_alpha_to(m_bar.background); auto hex = color_util::simplify_hex(color); - m_colors[syntaxtag::B] = hex; tag_open(syntaxtag::B, hex); } @@ -260,7 +225,6 @@ void builder::background(rgba color) { * Insert tag to reset the background color */ void builder::background_close() { - m_colors[syntaxtag::B].clear(); tag_close(syntaxtag::B); } @@ -271,7 +235,6 @@ void builder::color(rgba color) { color = color.try_apply_alpha_to(m_bar.foreground); auto hex = color_util::simplify_hex(color); - m_colors[syntaxtag::F] = hex; tag_open(syntaxtag::F, hex); } @@ -279,32 +242,14 @@ void builder::color(rgba color) { * Insert tag to reset the foreground color */ void builder::color_close() { - m_colors[syntaxtag::F].clear(); tag_close(syntaxtag::F); } -/** - * Insert tag to alter the current overline/underline color - */ -void builder::line_color(const rgba& color) { - overline_color(color); - underline_color(color); -} - -/** - * Close overline/underline color tag - */ -void builder::line_color_close() { - overline_color_close(); - underline_color_close(); -} - /** * Insert tag to alter the current overline color */ void builder::overline_color(rgba color) { auto hex = color_util::simplify_hex(color); - m_colors[syntaxtag::o] = hex; tag_open(syntaxtag::o, hex); tag_open(attribute::OVERLINE); } @@ -313,7 +258,6 @@ void builder::overline_color(rgba color) { * Close underline color tag */ void builder::overline_color_close() { - m_colors[syntaxtag::o].clear(); tag_close(syntaxtag::o); } @@ -322,7 +266,6 @@ void builder::overline_color_close() { */ void builder::underline_color(rgba color) { auto hex = color_util::simplify_hex(color); - m_colors[syntaxtag::u] = hex; tag_open(syntaxtag::u, hex); tag_open(attribute::UNDERLINE); } @@ -332,7 +275,6 @@ void builder::underline_color(rgba color) { */ void builder::underline_color_close() { tag_close(syntaxtag::u); - m_colors[syntaxtag::u].clear(); } /** @@ -415,7 +357,7 @@ void builder::action(mousebtn index, string action_name, const label_t& label) { if (label && *label) { action(index, action_name); node(label); - tag_close(syntaxtag::A); + action_close(); } } @@ -531,13 +473,8 @@ void builder::tag_close(syntaxtag tag) { case syntaxtag::o: append("%{o-}"); break; - case syntaxtag::R: - case syntaxtag::P: - case syntaxtag::O: - case syntaxtag::l: - case syntaxtag::c: - case syntaxtag::r: - break; + default: + throw runtime_error("Cannot close syntaxtag: " + to_string(to_integral(tag))); } } diff --git a/src/modules/alsa.cpp b/src/modules/alsa.cpp index 88aad7a3..21cd4dc3 100644 --- a/src/modules/alsa.cpp +++ b/src/modules/alsa.cpp @@ -212,7 +212,7 @@ namespace modules { m_builder->action(mousebtn::SCROLL_DOWN, *this, EVENT_DEC, ""); } - m_builder->append(output); + m_builder->node(output); return m_builder->flush(); } @@ -293,6 +293,6 @@ namespace modules { return mixers; } -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/backlight.cpp b/src/modules/backlight.cpp index 19d86859..b85a5be4 100644 --- a/src/modules/backlight.cpp +++ b/src/modules/backlight.cpp @@ -98,7 +98,7 @@ namespace modules { m_builder->action(mousebtn::SCROLL_DOWN, *this, EVENT_DEC, ""); } - m_builder->append(std::move(output)); + m_builder->node(output); m_builder->action_close(); m_builder->action_close(); @@ -141,6 +141,6 @@ namespace modules { name(), err.what()); } } -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/ipc.cpp b/src/modules/ipc.cpp index c942bee4..1ef1f1cf 100644 --- a/src/modules/ipc.cpp +++ b/src/modules/ipc.cpp @@ -99,7 +99,7 @@ namespace modules { } } - m_builder->append(output); + m_builder->node(output); return m_builder->flush(); } @@ -224,6 +224,6 @@ namespace modules { broadcast(); } -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/meta/base.cpp b/src/modules/meta/base.cpp index 72bc29d3..56d2e3b4 100644 --- a/src/modules/meta/base.cpp +++ b/src/modules/meta/base.cpp @@ -55,7 +55,7 @@ namespace modules { builder->overline(ol); } - builder->append(move(output)); + builder->node(output); builder->node(suffix); if (padding) { @@ -182,6 +182,6 @@ namespace modules { } // }}} -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/pulseaudio.cpp b/src/modules/pulseaudio.cpp index 1eebb4b2..cbe829e5 100644 --- a/src/modules/pulseaudio.cpp +++ b/src/modules/pulseaudio.cpp @@ -128,7 +128,7 @@ namespace modules { m_builder->action(mousebtn::SCROLL_DOWN, *this, EVENT_DEC, ""); } - m_builder->append(output); + m_builder->node(output); return m_builder->flush(); } @@ -159,6 +159,6 @@ namespace modules { void pulseaudio_module::action_toggle() { m_pulseaudio->toggle_mute(); } -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/script.cpp b/src/modules/script.cpp index af9466c9..ec9c856c 100644 --- a/src/modules/script.cpp +++ b/src/modules/script.cpp @@ -120,7 +120,7 @@ namespace modules { } } - m_builder->append(output); + m_builder->node(output); return m_builder->flush(); } @@ -139,6 +139,6 @@ namespace modules { return true; } -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/systray.cpp b/src/modules/systray.cpp index e8c69188..6ffa732f 100644 --- a/src/modules/systray.cpp +++ b/src/modules/systray.cpp @@ -45,7 +45,7 @@ namespace modules { if (tag == TAG_LABEL_TOGGLE) { builder->action(mousebtn::LEFT, *this, EVENT_TOGGLE, "", m_label); } else if (tag == TAG_TRAY_CLIENTS && !m_hidden) { - builder->append(TRAY_PLACEHOLDER); + builder->node(TRAY_PLACEHOLDER); } else { return false; } @@ -59,7 +59,7 @@ namespace modules { m_hidden = !m_hidden; broadcast(); } -} // namespace modules +} // namespace modules POLYBAR_NS_END #endif diff --git a/src/modules/text.cpp b/src/modules/text.cpp index 01882e7c..7a372745 100644 --- a/src/modules/text.cpp +++ b/src/modules/text.cpp @@ -47,10 +47,10 @@ namespace modules { m_builder->action(mousebtn::SCROLL_DOWN, scroll_down); } - m_builder->append(output); + m_builder->node(output); return m_builder->flush(); } -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/xbacklight.cpp b/src/modules/xbacklight.cpp index d0ec3794..6e391aac 100644 --- a/src/modules/xbacklight.cpp +++ b/src/modules/xbacklight.cpp @@ -123,7 +123,7 @@ namespace modules { m_builder->action(mousebtn::SCROLL_DOWN, *this, EVENT_DEC, ""); } - m_builder->append(output); + m_builder->node(output); m_builder->action_close(); m_builder->action_close(); @@ -164,6 +164,6 @@ namespace modules { m_connection.change_output_property_checked( m_output->output, m_output->backlight.atom, XCB_ATOM_INTEGER, 32, XCB_PROP_MODE_REPLACE, 1, values); } -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/xkeyboard.cpp b/src/modules/xkeyboard.cpp index 8e65fb9f..53920640 100644 --- a/src/modules/xkeyboard.cpp +++ b/src/modules/xkeyboard.cpp @@ -167,10 +167,10 @@ namespace modules { if (m_keyboard && m_keyboard->size() > 1) { m_builder->action(mousebtn::LEFT, *this, EVENT_SWITCH, ""); - m_builder->append(output); + m_builder->node(output); m_builder->action_close(); } else { - m_builder->append(output); + m_builder->node(output); } return m_builder->flush(); @@ -319,6 +319,6 @@ namespace modules { name(), entry); } } -} // namespace modules +} // namespace modules POLYBAR_NS_END diff --git a/src/modules/xworkspaces.cpp b/src/modules/xworkspaces.cpp index 57060e73..467e7c16 100644 --- a/src/modules/xworkspaces.cpp +++ b/src/modules/xworkspaces.cpp @@ -18,7 +18,7 @@ namespace { inline bool operator==(const position& a, const position& b) { return a.x + a.y == b.x + b.y; } -} // namespace +} // namespace /** * Defines a lexicographical order on position @@ -79,7 +79,8 @@ namespace modules { if (vec.size() == 2) { m_icons->add(vec[0], std::make_shared