From d24d85bebfe436d621526a951aab28524eec1cf5 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 22 May 2019 12:06:24 +0200 Subject: [PATCH] refactor: move label name and id to label contructor --- include/ALabel.hpp | 7 ++++--- include/modules/backlight.hpp | 1 - src/ALabel.cpp | 7 ++++++- src/modules/backlight.cpp | 12 +++++------- src/modules/battery.cpp | 6 +----- src/modules/clock.cpp | 6 +----- src/modules/cpu.cpp | 6 +----- src/modules/custom.cpp | 3 +-- src/modules/idle_inhibitor.cpp | 6 +----- src/modules/memory.cpp | 11 ++++------- src/modules/mpd.cpp | 9 ++------- src/modules/network.cpp | 7 +------ src/modules/pulseaudio.cpp | 6 +----- src/modules/sway/mode.cpp | 6 +----- src/modules/sway/window.cpp | 6 +----- src/modules/temperature.cpp | 8 ++------ 16 files changed, 32 insertions(+), 75 deletions(-) diff --git a/include/ALabel.hpp b/include/ALabel.hpp index cf2cc286..33903787 100644 --- a/include/ALabel.hpp +++ b/include/ALabel.hpp @@ -10,7 +10,8 @@ namespace waybar { class ALabel : public IModule { public: - ALabel(const Json::Value &, const std::string &format, uint16_t interval = 0); + ALabel(const Json::Value &, const std::string &, const std::string &, const std::string &format, + uint16_t interval = 0); virtual ~ALabel(); virtual auto update() -> void; virtual std::string getIcon(uint16_t, const std::string &alt = "", uint16_t max = 0); @@ -29,8 +30,8 @@ class ALabel : public IModule { bool alt_ = false; std::string default_format_; - virtual bool handleToggle(GdkEventButton *const &ev); - virtual bool handleScroll(GdkEventScroll *); + virtual bool handleToggle(GdkEventButton *const &ev); + virtual bool handleScroll(GdkEventScroll *); virtual std::string getState(uint8_t value, bool lesser = false); private: diff --git a/include/modules/backlight.hpp b/include/modules/backlight.hpp index 42e38f2a..e41e9213 100644 --- a/include/modules/backlight.hpp +++ b/include/modules/backlight.hpp @@ -47,7 +47,6 @@ class Backlight : public ALabel { template static void enumerate_devices(ForwardIt first, ForwardIt last, Inserter inserter, udev *udev); - const std::string name_; const std::string preferred_device_; static constexpr int EPOLL_MAX_EVENTS = 16; diff --git a/src/ALabel.cpp b/src/ALabel.cpp index e1fa212d..b9dc0f83 100644 --- a/src/ALabel.cpp +++ b/src/ALabel.cpp @@ -2,7 +2,8 @@ #include #include -waybar::ALabel::ALabel(const Json::Value& config, const std::string& format, uint16_t interval) +waybar::ALabel::ALabel(const Json::Value& config, const std::string& name, const std::string& id, + const std::string& format, uint16_t interval) : config_(config), format_(config_["format"].isString() ? config_["format"].asString() : format), interval_(config_["interval"] == "once" @@ -10,6 +11,10 @@ waybar::ALabel::ALabel(const Json::Value& config, const std::string& format, uin : std::chrono::seconds( config_["interval"].isUInt() ? config_["interval"].asUInt() : interval)), default_format_(format_) { + label_.set_name(name); + if (!id.empty()) { + label_.get_style_context()->add_class(id); + } event_box_.add(label_); if (config_["max-length"].isUInt()) { label_.set_max_width_chars(config_["max-length"].asUInt()); diff --git a/src/modules/backlight.cpp b/src/modules/backlight.cpp index 5480cf7f..b38f2603 100644 --- a/src/modules/backlight.cpp +++ b/src/modules/backlight.cpp @@ -88,12 +88,9 @@ int waybar::modules::Backlight::BacklightDev::get_max() const { return max_; } void waybar::modules::Backlight::BacklightDev::set_max(int max) { max_ = max; } -waybar::modules::Backlight::Backlight(const std::string &name, const Json::Value &config) - : ALabel(config, "{percent}%", 2), - name_(name), +waybar::modules::Backlight::Backlight(const std::string &id, const Json::Value &config) + : ALabel(config, "backlight", id, "{percent}%", 2), preferred_device_(config["device"].isString() ? config["device"].asString() : "") { - label_.set_name("backlight"); - // Get initial state { std::unique_ptr udev_check{udev_new()}; @@ -181,7 +178,7 @@ auto waybar::modules::Backlight::update() -> void { const auto percent = best->get_max() == 0 ? 100 : best->get_actual() * 100 / best->get_max(); label_.set_markup(fmt::format( format_, fmt::arg("percent", std::to_string(percent)), fmt::arg("icon", getIcon(percent)))); - getState(percent); + getState(percent); } else { if (!previous_best_.has_value()) { return; @@ -213,7 +210,8 @@ void waybar::modules::Backlight::upsert_device(ForwardIt first, ForwardIt last, const char *name = udev_device_get_sysname(dev); check_nn(name); - const char *actual_brightness_attr = strcmp(name, "amdgpu_bl0") == 0 ? "brightness" : "actual_brightness"; + const char *actual_brightness_attr = + strcmp(name, "amdgpu_bl0") == 0 ? "brightness" : "actual_brightness"; const char *actual = udev_device_get_sysattr_value(dev, actual_brightness_attr); check_nn(actual); diff --git a/src/modules/battery.cpp b/src/modules/battery.cpp index cdaebd8d..e3d7c9b8 100644 --- a/src/modules/battery.cpp +++ b/src/modules/battery.cpp @@ -2,11 +2,7 @@ #include waybar::modules::Battery::Battery(const std::string& id, const Json::Value& config) - : ALabel(config, "{capacity}%", 60) { - label_.set_name("battery"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } + : ALabel(config, "battery", id, "{capacity}%", 60) { getBatteries(); fd_ = inotify_init1(IN_CLOEXEC); if (fd_ == -1) { diff --git a/src/modules/clock.cpp b/src/modules/clock.cpp index 8f6dcee0..83a15c1a 100644 --- a/src/modules/clock.cpp +++ b/src/modules/clock.cpp @@ -1,11 +1,7 @@ #include "modules/clock.hpp" waybar::modules::Clock::Clock(const std::string& id, const Json::Value& config) - : ALabel(config, "{:%H:%M}", 60) { - label_.set_name("clock"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } + : ALabel(config, "clock", id, "{:%H:%M}", 60) { thread_ = [this] { dp.emit(); auto now = std::chrono::system_clock::now(); diff --git a/src/modules/cpu.cpp b/src/modules/cpu.cpp index 280212c4..298f7a46 100644 --- a/src/modules/cpu.cpp +++ b/src/modules/cpu.cpp @@ -2,11 +2,7 @@ #include waybar::modules::Cpu::Cpu(const std::string& id, const Json::Value& config) - : ALabel(config, "{usage}%", 10) { - label_.set_name("cpu"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } + : ALabel(config, "cpu", id, "{usage}%", 10) { thread_ = [this] { dp.emit(); thread_.sleep_for(interval_); diff --git a/src/modules/custom.cpp b/src/modules/custom.cpp index e974a542..c4ffcaf8 100644 --- a/src/modules/custom.cpp +++ b/src/modules/custom.cpp @@ -2,8 +2,7 @@ #include waybar::modules::Custom::Custom(const std::string& name, const Json::Value& config) - : ALabel(config, "{}"), name_(name), fp_(nullptr), pid_(-1) { - label_.set_name("custom-" + name_); + : ALabel(config, "custom-" + name_, name, "{}"), name_(name), fp_(nullptr), pid_(-1) { if (config_["exec"].isString()) { if (interval_.count() > 0) { delayWorker(); diff --git a/src/modules/idle_inhibitor.cpp b/src/modules/idle_inhibitor.cpp index c5c0c00c..e5460ad8 100644 --- a/src/modules/idle_inhibitor.cpp +++ b/src/modules/idle_inhibitor.cpp @@ -3,15 +3,11 @@ waybar::modules::IdleInhibitor::IdleInhibitor(const std::string& id, const Bar& bar, const Json::Value& config) - : ALabel(config, "{status}"), + : ALabel(config, "idle_inhibitor", id, "{status}"), bar_(bar), status_("deactivated"), idle_inhibitor_(nullptr), pid_(-1) { - label_.set_name("idle_inhibitor"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } event_box_.add_events(Gdk::BUTTON_PRESS_MASK); event_box_.signal_button_press_event().connect( sigc::mem_fun(*this, &IdleInhibitor::handleToggle)); diff --git a/src/modules/memory.cpp b/src/modules/memory.cpp index e0878f82..952d34f1 100644 --- a/src/modules/memory.cpp +++ b/src/modules/memory.cpp @@ -1,11 +1,7 @@ #include "modules/memory.hpp" waybar::modules::Memory::Memory(const std::string& id, const Json::Value& config) - : ALabel(config, "{}%", 30) { - label_.set_name("memory"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } + : ALabel(config, "memory", id, "{}%", 30) { thread_ = [this] { dp.emit(); thread_.sleep_for(interval_); @@ -15,12 +11,13 @@ waybar::modules::Memory::Memory(const std::string& id, const Json::Value& config auto waybar::modules::Memory::update() -> void { parseMeminfo(); if (memtotal_ > 0 && memfree_ >= 0) { - int used_ram_percentage = 100 * (memtotal_ - memfree_) / memtotal_; + int used_ram_percentage = 100 * (memtotal_ - memfree_) / memtotal_; auto used_ram_gigabytes = (memtotal_ - memfree_) / std::pow(1024, 2); auto available_ram_gigabytes = memfree_ / std::pow(1024, 2); getState(used_ram_percentage); - label_.set_markup(fmt::format(format_, used_ram_percentage, + label_.set_markup(fmt::format(format_, + used_ram_percentage, fmt::arg("percentage", used_ram_percentage), fmt::arg("used", used_ram_gigabytes), fmt::arg("avail", available_ram_gigabytes))); diff --git a/src/modules/mpd.cpp b/src/modules/mpd.cpp index 69030308..dbf84c3e 100644 --- a/src/modules/mpd.cpp +++ b/src/modules/mpd.cpp @@ -4,7 +4,7 @@ #include waybar::modules::MPD::MPD(const std::string& id, const Json::Value& config) - : ALabel(config, "{album} - {artist} - {title}", 5), + : ALabel(config, "mpd", id, "{album} - {artist} - {title}", 5), module_name_(id.empty() ? "mpd" : "mpd#" + id), server_(nullptr), port_(config_["port"].isUInt() ? config["port"].asUInt() : 0), @@ -21,11 +21,6 @@ waybar::modules::MPD::MPD(const std::string& id, const Json::Value& config) spdlog::warn("{}: `timeout` configuration should be an unsigned int", module_name_); } - label_.set_name("mpd"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } - if (!config["server"].isNull()) { if (!config_["server"].isString()) { spdlog::warn("{}:`server` configuration should be a string", module_name_); @@ -261,7 +256,7 @@ void waybar::modules::MPD::tryConnect() { checkErrors(connection_.get()); spdlog::info("{}: Connected to MPD", module_name_); } catch (std::runtime_error& e) { - spdlog::error("{}: Failed to connect to MPD: {}", module_name_, e.what()); + spdlog::error("{}: Failed to connect to MPD: {}", module_name_, e.what()); connection_.reset(); alternate_connection_.reset(); } diff --git a/src/modules/network.cpp b/src/modules/network.cpp index 0eca4272..a2018bf2 100644 --- a/src/modules/network.cpp +++ b/src/modules/network.cpp @@ -73,7 +73,7 @@ std::optional read_netstat(std::string_view category, std::s } // namespace waybar::modules::Network::Network(const std::string &id, const Json::Value &config) - : ALabel(config, "{ifname}", 60), + : ALabel(config, "network", id, "{ifname}", 60), ifid_(-1), last_ext_iface_(-1), family_(config["family"] == "ipv6" ? AF_INET6 : AF_INET), @@ -83,11 +83,6 @@ waybar::modules::Network::Network(const std::string &id, const Json::Value &conf signal_strength_dbm_(0), signal_strength_(0), frequency_(0) { - label_.set_name("network"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } - auto down_octets = read_netstat(BANDWIDTH_CATEGORY, BANDWIDTH_DOWN_TOTAL_KEY); auto up_octets = read_netstat(BANDWIDTH_CATEGORY, BANDWIDTH_UP_TOTAL_KEY); if (down_octets) { diff --git a/src/modules/pulseaudio.cpp b/src/modules/pulseaudio.cpp index 745605bf..b656d154 100644 --- a/src/modules/pulseaudio.cpp +++ b/src/modules/pulseaudio.cpp @@ -1,7 +1,7 @@ #include "modules/pulseaudio.hpp" waybar::modules::Pulseaudio::Pulseaudio(const std::string &id, const Json::Value &config) - : ALabel(config, "{volume}%"), + : ALabel(config, "pulseaudio", id, "{volume}%"), mainloop_(nullptr), mainloop_api_(nullptr), context_(nullptr), @@ -12,10 +12,6 @@ waybar::modules::Pulseaudio::Pulseaudio(const std::string &id, const Json::Value source_idx_(0), source_volume_(0), source_muted_(false) { - label_.set_name("pulseaudio"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } mainloop_ = pa_threaded_mainloop_new(); if (mainloop_ == nullptr) { throw std::runtime_error("pa_mainloop_new() failed."); diff --git a/src/modules/sway/mode.cpp b/src/modules/sway/mode.cpp index 6e93c4db..f419a6cf 100644 --- a/src/modules/sway/mode.cpp +++ b/src/modules/sway/mode.cpp @@ -3,11 +3,7 @@ namespace waybar::modules::sway { -Mode::Mode(const std::string& id, const Json::Value& config) : ALabel(config, "{}") { - label_.set_name("mode"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } +Mode::Mode(const std::string& id, const Json::Value& config) : ALabel(config, "mode", id, "{}") { ipc_.subscribe(R"(["mode"])"); ipc_.signal_event.connect(sigc::mem_fun(*this, &Mode::onEvent)); // Launch worker diff --git a/src/modules/sway/window.cpp b/src/modules/sway/window.cpp index 2b04417f..d317f121 100644 --- a/src/modules/sway/window.cpp +++ b/src/modules/sway/window.cpp @@ -4,11 +4,7 @@ namespace waybar::modules::sway { Window::Window(const std::string& id, const Bar& bar, const Json::Value& config) - : ALabel(config, "{}"), bar_(bar), windowId_(-1) { - label_.set_name("window"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } + : ALabel(config, "window", id, "{}"), bar_(bar), windowId_(-1) { if (label_.get_max_width_chars() == -1) { label_.set_hexpand(true); label_.set_ellipsize(Pango::EllipsizeMode::ELLIPSIZE_END); diff --git a/src/modules/temperature.cpp b/src/modules/temperature.cpp index 9e6bff79..78391a0d 100644 --- a/src/modules/temperature.cpp +++ b/src/modules/temperature.cpp @@ -1,7 +1,7 @@ #include "modules/temperature.hpp" waybar::modules::Temperature::Temperature(const std::string& id, const Json::Value& config) - : ALabel(config, "{temperatureC}°C", 10) { + : ALabel(config, "temperature", id, "{temperatureC}°C", 10) { if (config_["hwmon-path"].isString()) { file_path_ = config_["hwmon-path"].asString(); } else { @@ -12,10 +12,6 @@ waybar::modules::Temperature::Temperature(const std::string& id, const Json::Val if (!temp.is_open()) { throw std::runtime_error("Can't open " + file_path_); } - label_.set_name("temperature"); - if (!id.empty()) { - label_.get_style_context()->add_class(id); - } thread_ = [this] { dp.emit(); thread_.sleep_for(interval_); @@ -58,4 +54,4 @@ std::tuple waybar::modules::Temperature::getTemperature() { bool waybar::modules::Temperature::isCritical(uint16_t temperature_c) { return config_["critical-threshold"].isInt() && temperature_c >= config_["critical-threshold"].asInt(); -} \ No newline at end of file +}