diff --git a/src/ALabel.cpp b/src/ALabel.cpp index 2d1ea5e8..00b37d74 100644 --- a/src/ALabel.cpp +++ b/src/ALabel.cpp @@ -4,15 +4,15 @@ waybar::ALabel::ALabel(const Json::Value& config, const std::string format) : config_(config), - format_(config_["format"] ? config_["format"].asString() : format), + format_(config_["format"].isString() ? config_["format"].asString() : format), default_format_(format_) { event_box_.add(label_); - if (config_["max-length"]) { + if (config_["max-length"].isUInt()) { label_.set_max_width_chars(config_["max-length"].asUInt()); label_.set_ellipsize(Pango::EllipsizeMode::ELLIPSIZE_END); } - if (config_["format-alt"]) { + if (config_["format-alt"].isString()) { event_box_.add_events(Gdk::BUTTON_PRESS_MASK); event_box_.signal_button_press_event() .connect(sigc::mem_fun(*this, &ALabel::handleToggle)); diff --git a/src/bar.cpp b/src/bar.cpp index 2097a35d..24ef1f01 100644 --- a/src/bar.cpp +++ b/src/bar.cpp @@ -53,8 +53,8 @@ waybar::Bar::Bar(const Client& client, anchor |= ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP; } - auto height = config_["height"] ? config_["height"].asUInt() : height_; - auto width = config_["width"] ? config_["width"].asUInt() : width_; + auto height = config_["height"].isUInt() ? config_["height"].asUInt() : height_; + auto width = config_["width"].isUInt() ? config_["width"].asUInt() : width_; zwlr_layer_surface_v1_set_anchor(layer_surface, anchor); zwlr_layer_surface_v1_set_exclusive_zone(layer_surface, height); zwlr_layer_surface_v1_set_size(layer_surface, width, height); @@ -163,7 +163,7 @@ auto waybar::Bar::setupCss() -> void void waybar::Bar::getModules(const Factory& factory, const std::string& pos) { - if (config_[pos]) { + if (config_[pos].isArray()) { for (const auto &name : config_[pos]) { try { auto module = factory.makeModule(name.asString()); diff --git a/src/modules/battery.cpp b/src/modules/battery.cpp index 53abbe59..569ffbed 100644 --- a/src/modules/battery.cpp +++ b/src/modules/battery.cpp @@ -4,7 +4,7 @@ waybar::modules::Battery::Battery(const Json::Value& config) : ALabel(config, "{capacity}%") { try { - if (config_["bat"]) { + if (config_["bat"].isString()) { auto dir = data_dir_ / config_["bat"].asString(); if (fs::is_directory(dir) && fs::exists(dir / "capacity") && fs::exists(dir / "status") && fs::exists(dir / "uevent")) { @@ -22,7 +22,7 @@ waybar::modules::Battery::Battery(const Json::Value& config) throw std::runtime_error(e.what()); } if (batteries_.empty()) { - if (config_["bat"]) { + if (config_["bat"].isString()) { throw std::runtime_error("No battery named " + config_["bat"].asString()); } throw std::runtime_error("No batteries."); @@ -47,7 +47,7 @@ void waybar::modules::Battery::worker() { // Trigger first values update(); - uint32_t interval = config_["interval"] ? config_["interval"].asUInt() : 60; + uint32_t interval = config_["interval"].isUInt() ? config_["interval"].asUInt() : 60; threadTimer_ = [this, interval] { thread_.sleep_for(chrono::seconds(interval)); dp.emit(); @@ -88,7 +88,7 @@ auto waybar::modules::Battery::update() -> void } else { label_.get_style_context()->remove_class("charging"); } - auto critical = config_["critical"] ? config_["critical"].asUInt() : 15; + auto critical = config_["critical"].isUInt() ? config_["critical"].asUInt() : 15; if (capacity <= critical && !charging) { label_.get_style_context()->add_class("warning"); } else { diff --git a/src/modules/clock.cpp b/src/modules/clock.cpp index 154041ae..af9dadb3 100644 --- a/src/modules/clock.cpp +++ b/src/modules/clock.cpp @@ -4,7 +4,7 @@ waybar::modules::Clock::Clock(const Json::Value& config) : ALabel(config, "{:%H:%M}") { label_.set_name("clock"); - uint32_t interval = config_["interval"] ? config_["interval"].asUInt() : 60; + uint32_t interval = config_["interval"].isUInt() ? config_["interval"].asUInt() : 60; thread_ = [this, interval] { auto now = waybar::chrono::clock::now(); dp.emit(); diff --git a/src/modules/cpu.cpp b/src/modules/cpu.cpp index 3aa1fd5f..5bb836ea 100644 --- a/src/modules/cpu.cpp +++ b/src/modules/cpu.cpp @@ -4,7 +4,7 @@ waybar::modules::Cpu::Cpu(const Json::Value& config) : ALabel(config, "{}%") { label_.set_name("cpu"); - uint32_t interval = config_["interval"] ? config_["interval"].asUInt() : 10; + uint32_t interval = config_["interval"].isUInt() ? config_["interval"].asUInt() : 10; thread_ = [this, interval] { dp.emit(); thread_.sleep_for(chrono::seconds(interval)); diff --git a/src/modules/custom.cpp b/src/modules/custom.cpp index 347f51c1..5a38e35d 100644 --- a/src/modules/custom.cpp +++ b/src/modules/custom.cpp @@ -4,10 +4,10 @@ waybar::modules::Custom::Custom(const std::string name, const Json::Value& config) : ALabel(config, "{}"), name_(name) { - if (!config_["exec"]) { + if (!config_["exec"].isString()) { throw std::runtime_error(name_ + " has no exec path."); } - if (config_["interval"]) { + if (config_["interval"].isUInt()) { delayWorker(); } else { continuousWorker(); @@ -19,7 +19,7 @@ void waybar::modules::Custom::delayWorker() auto interval = config_["interval"].asUInt(); thread_ = [this, interval] { bool can_update = true; - if (config_["exec-if"]) { + if (config_["exec-if"].isString()) { auto res = waybar::util::command::exec(config_["exec-if"].asString()); if (res.exit_code != 0) { can_update = false; diff --git a/src/modules/memory.cpp b/src/modules/memory.cpp index 630e6428..b2093e8e 100644 --- a/src/modules/memory.cpp +++ b/src/modules/memory.cpp @@ -4,7 +4,7 @@ waybar::modules::Memory::Memory(const Json::Value& config) : ALabel(config, "{}%") { label_.set_name("memory"); - uint32_t interval = config_["interval"] ? config_["interval"].asUInt() : 30; + uint32_t interval = config_["interval"].isUInt() ? config_["interval"].asUInt() : 30; thread_ = [this, interval] { dp.emit(); thread_.sleep_for(chrono::seconds(interval)); diff --git a/src/modules/network.cpp b/src/modules/network.cpp index 1df835e9..e57e44aa 100644 --- a/src/modules/network.cpp +++ b/src/modules/network.cpp @@ -14,7 +14,7 @@ waybar::modules::Network::Network(const Json::Value& config) sizeof(nladdr_)) != 0) { throw std::runtime_error("Can't bind network socket"); } - if (config_["interface"]) { + if (config_["interface"].isString()) { ifid_ = if_nametoindex(config_["interface"].asCString()); ifname_ = config_["interface"].asString(); if (ifid_ <= 0) { @@ -56,7 +56,7 @@ waybar::modules::Network::Network(const Json::Value& config) } } } - if (ifid_ <= 0 && !config_["interface"]) { + if (ifid_ <= 0 && !config_["interface"].isString()) { // Need to wait before get external interface thread_.sleep_for(std::chrono::seconds(1)); ifid_ = getExternalInterface(); @@ -84,15 +84,15 @@ auto waybar::modules::Network::update() -> void { auto format = format_; if (ifid_ <= 0) { - format = config_["format-disconnected"] + format = config_["format-disconnected"].isString() ? config_["format-disconnected"].asString() : format; label_.get_style_context()->add_class("disconnected"); } else { if (essid_.empty()) { - format = config_["format-ethernet"] + format = config_["format-ethernet"].isString() ? config_["format-ethernet"].asString() : format; } else { - format = config_["format-wifi"] + format = config_["format-wifi"].isString() ? config_["format-wifi"].asString() : format; } label_.get_style_context()->remove_class("disconnected"); diff --git a/src/modules/pulseaudio.cpp b/src/modules/pulseaudio.cpp index fb5b6f2b..7f6d2970 100644 --- a/src/modules/pulseaudio.cpp +++ b/src/modules/pulseaudio.cpp @@ -131,10 +131,10 @@ auto waybar::modules::Pulseaudio::update() -> void auto format = format_; if (muted_) { format = - config_["format-muted"] ? config_["format-muted"].asString() : format; + config_["format-muted"].isString() ? config_["format-muted"].asString() : format; label_.get_style_context()->add_class("muted"); } else if (port_name_.find("a2dp_sink") != std::string::npos) { - format = config_["format-bluetooth"] + format = config_["format-bluetooth"].isString() ? config_["format-bluetooth"].asString() : format; label_.get_style_context()->add_class("bluetooth"); } else { diff --git a/src/modules/sway/workspaces.cpp b/src/modules/sway/workspaces.cpp index 63166378..af8e5c46 100644 --- a/src/modules/sway/workspaces.cpp +++ b/src/modules/sway/workspaces.cpp @@ -79,7 +79,7 @@ auto waybar::modules::sway::Workspaces::update() -> void box_.reorder_child(button, node["num"].asInt()); } auto icon = getIcon(node["name"].asString(), node); - if (config_["format"]) { + if (config_["format"].isString()) { auto format = config_["format"].asString(); button.set_label(fmt::format(format, fmt::arg("icon", icon), fmt::arg("name", node["name"].asString()), @@ -98,7 +98,7 @@ auto waybar::modules::sway::Workspaces::update() -> void void waybar::modules::sway::Workspaces::addWorkspace(Json::Value node) { auto icon = getIcon(node["name"].asString(), node); - auto format = config_["format"] + auto format = config_["format"].isString() ? fmt::format(config_["format"].asString(), fmt::arg("icon", icon), fmt::arg("name", node["name"].asString()), fmt::arg("index", node["num"].asString())) @@ -141,10 +141,10 @@ std::string waybar::modules::sway::Workspaces::getIcon(std::string name, name, "urgent", "focused", "visible", "default"}; for (auto const& key : keys) { if (key == "focused" || key == "visible" || key == "urgent") { - if (config_["format-icons"][key] && node[key].asBool()) { + if (config_["format-icons"][key].isString() && node[key].asBool()) { return config_["format-icons"][key].asString(); } - } else if (config_["format-icons"][key]) { + } else if (config_["format-icons"][key].isString()) { return config_["format-icons"][key].asString(); } }