From 79db02aa66648b3f8be27f2bc54f581f4fb129b8 Mon Sep 17 00:00:00 2001 From: Mm2PL Date: Mon, 3 Jan 2022 11:02:55 +0000 Subject: [PATCH] Removed ability to reload emotes really fast (#3450) Co-authored-by: pajlada --- CHANGELOG.md | 1 + src/widgets/splits/SplitHeader.cpp | 18 ++++++++++++++++++ src/widgets/splits/SplitHeader.hpp | 2 ++ 3 files changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ce31fbc2..5ba25b4f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -78,6 +78,7 @@ - Bugfix: Fixed using special chars in Windows username breaking the storage of custom commands (#3397) - Bugfix: Fixed character counter changing fonts after going over the limit. (#3422) - Bugfix: Fixed crash that could occur if the user opens/closes ChannelViews (e.g. EmotePopup, or Splits) then modifies the showLastMessageIndicator setting. (#3444) +- Bugfix: Removed ability to reload emotes really fast (#3450) - Dev: Batch checking live status for channels with live notifications that aren't connected. (#3442) - Dev: Add GitHub action to test builds without precompiled headers enabled. (#3327) - Dev: Renamed CMake's build option `USE_SYSTEM_QT5KEYCHAIN` to `USE_SYSTEM_QTKEYCHAIN`. (#3103) diff --git a/src/widgets/splits/SplitHeader.cpp b/src/widgets/splits/SplitHeader.cpp index 54b895f87..1ddda08dd 100644 --- a/src/widgets/splits/SplitHeader.cpp +++ b/src/widgets/splits/SplitHeader.cpp @@ -913,6 +913,15 @@ void SplitHeader::themeChangedEvent() void SplitHeader::reloadChannelEmotes() { + using namespace std::chrono_literals; + + auto now = std::chrono::steady_clock::now(); + if (this->lastReloadedChannelEmotes_ + 30s > now) + { + return; + } + this->lastReloadedChannelEmotes_ = now; + auto channel = this->split_->getChannel(); if (auto twitchChannel = dynamic_cast(channel.get())) @@ -924,6 +933,15 @@ void SplitHeader::reloadChannelEmotes() void SplitHeader::reloadSubscriberEmotes() { + using namespace std::chrono_literals; + + auto now = std::chrono::steady_clock::now(); + if (this->lastReloadedSubEmotes_ + 30s > now) + { + return; + } + this->lastReloadedSubEmotes_ = now; + auto channel = this->split_->getChannel(); getApp()->accounts->twitch.getCurrent()->loadEmotes(channel); } diff --git a/src/widgets/splits/SplitHeader.hpp b/src/widgets/splits/SplitHeader.hpp index f4723611e..f3cc62212 100644 --- a/src/widgets/splits/SplitHeader.hpp +++ b/src/widgets/splits/SplitHeader.hpp @@ -64,6 +64,8 @@ private: bool isLive_{false}; QString thumbnail_; QElapsedTimer lastThumbnail_; + std::chrono::steady_clock::time_point lastReloadedChannelEmotes_; + std::chrono::steady_clock::time_point lastReloadedSubEmotes_; // ui Button *dropdownButton_{};