fix(Custom): hide label when exec-if failed
This commit is contained in:
		
							parent
							
								
									0ad2bc7516
								
							
						
					
					
						commit
						c8ca8b3725
					
				| 
						 | 
					@ -7,6 +7,7 @@ waybar::modules::Custom::Custom(const std::string name,
 | 
				
			||||||
  if (!config_["exec"]) {
 | 
					  if (!config_["exec"]) {
 | 
				
			||||||
    throw std::runtime_error(name_ + " has no exec path.");
 | 
					    throw std::runtime_error(name_ + " has no exec path.");
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  label_.set_name("custom-" + name_);
 | 
				
			||||||
  worker();
 | 
					  worker();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,6 +20,7 @@ void waybar::modules::Custom::worker()
 | 
				
			||||||
      auto res = waybar::util::command::exec(config_["exec-if"].asString());
 | 
					      auto res = waybar::util::command::exec(config_["exec-if"].asString());
 | 
				
			||||||
      if (res.exit_code != 0) {
 | 
					      if (res.exit_code != 0) {
 | 
				
			||||||
        can_update = false;
 | 
					        can_update = false;
 | 
				
			||||||
 | 
					        label_.hide();
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (can_update) {
 | 
					    if (can_update) {
 | 
				
			||||||
| 
						 | 
					@ -35,9 +37,7 @@ auto waybar::modules::Custom::update() -> void
 | 
				
			||||||
  // Hide label if output is empty
 | 
					  // Hide label if output is empty
 | 
				
			||||||
  if (res.out.empty() || res.exit_code != 0) {
 | 
					  if (res.out.empty() || res.exit_code != 0) {
 | 
				
			||||||
    label_.hide();
 | 
					    label_.hide();
 | 
				
			||||||
    label_.set_name("");
 | 
					 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    label_.set_name("custom-" + name_);
 | 
					 | 
				
			||||||
    auto format = config_["format"] ? config_["format"].asString() : "{}";
 | 
					    auto format = config_["format"] ? config_["format"].asString() : "{}";
 | 
				
			||||||
    auto str = fmt::format(format, res.out);
 | 
					    auto str = fmt::format(format, res.out);
 | 
				
			||||||
    label_.set_text(str);
 | 
					    label_.set_text(str);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue