Issue#1556. Battery module: a lot of warnings when battery dissapears
This commit is contained in:
Alex 2022-05-23 13:39:23 +02:00 committed by GitHub
commit 1e4fe0bee8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 4 deletions

View File

@ -46,6 +46,7 @@ class Battery : public ALabel {
int global_watch_fd_; int global_watch_fd_;
std::mutex battery_list_mutex_; std::mutex battery_list_mutex_;
std::string old_status_; std::string old_status_;
bool warnFirstTime_{true};
util::SleeperThread thread_; util::SleeperThread thread_;
util::SleeperThread thread_battery_update_; util::SleeperThread thread_battery_update_;

View File

@ -20,7 +20,6 @@ waybar::modules::Battery::Battery(const std::string& id, const Json::Value& conf
throw std::runtime_error("Could not watch for battery plug/unplug"); throw std::runtime_error("Could not watch for battery plug/unplug");
} }
refreshBatteries();
worker(); worker();
} }
@ -73,7 +72,6 @@ void waybar::modules::Battery::worker() {
void waybar::modules::Battery::refreshBatteries() { void waybar::modules::Battery::refreshBatteries() {
std::lock_guard<std::mutex> guard(battery_list_mutex_); std::lock_guard<std::mutex> guard(battery_list_mutex_);
// Mark existing list of batteries as not necessarily found // Mark existing list of batteries as not necessarily found
std::map<fs::path, bool> check_map; std::map<fs::path, bool> check_map;
for (auto const& bat : batteries_) { for (auto const& bat : batteries_) {
@ -117,12 +115,14 @@ void waybar::modules::Battery::refreshBatteries() {
} catch (fs::filesystem_error& e) { } catch (fs::filesystem_error& e) {
throw std::runtime_error(e.what()); throw std::runtime_error(e.what());
} }
if (batteries_.empty()) { if (warnFirstTime_ && batteries_.empty()) {
if (config_["bat"].isString()) { if (config_["bat"].isString()) {
spdlog::warn("No battery named {}", config_["bat"].asString()); spdlog::warn("No battery named {0}", config_["bat"].asString());
} else { } else {
spdlog::warn("No batteries."); spdlog::warn("No batteries.");
} }
warnFirstTime_ = false;
} }
// Remove any batteries that are no longer present and unwatch them // Remove any batteries that are no longer present and unwatch them