Don't show "popup" log window anymore if no warnings or worse present (20s after launch)

pull/179/head
Peter Repukat 2 years ago
parent 7c706945bc
commit 40c1b01f4d

@ -208,14 +208,16 @@ void Overlay::showLogs()
if (!enabled_ && !log_expanded_) {
return;
}
bool logs_contain_warn_or_worse = false;
if (enabled_) {
logs = LOG_MSGS_;
}
else {
std::ranges::copy_if(LOG_MSGS_,
std::back_inserter(logs),
[](const auto& log) {
return (
[&logs_contain_warn_or_worse](const auto& log) {
const auto res = (
log.time.time_since_epoch() + std::chrono::seconds(
LOG_RETENTION_TIME_) >
std::chrono::system_clock::now().time_since_epoch())
@ -223,9 +225,13 @@ void Overlay::showLogs()
&& (log.level > spdlog::level::debug)
#endif
;
if (res && log.level > spdlog::level::warn) {
logs_contain_warn_or_worse = true;
}
return res;
});
}
if (logs.empty())
if (logs.empty() || ( !enabled_ && !logs_contain_warn_or_worse && time_since_start_clock_.getElapsedTime().asSeconds() > HIDE_NORMAL_LOGS_AFTER_S))
return;
ImGui::SetNextWindowSizeConstraints({150, 150}, {1000, window_.getSize().y - 250.f});
if (!enabled_) {

@ -53,6 +53,7 @@ class Overlay {
void saveSettingsButton() const;
bool force_enable_ = false;
bool log_expanded_ = true;
sf::Clock time_since_start_clock_;
struct Log {
std::chrono::system_clock::time_point time;
@ -61,6 +62,7 @@ class Overlay {
};
static inline std::vector<Log> LOG_MSGS_;
static constexpr int LOG_RETENTION_TIME_ = 5;
static constexpr int HIDE_NORMAL_LOGS_AFTER_S = 20;
static inline int overlay_element_id_ = 0;
static inline std::map<int, std::function<void(bool window_has_focus)>> OVERLAY_ELEMS_;

Loading…
Cancel
Save