From df4c294875f9d08cd2434c97cd59918f72826ec4 Mon Sep 17 00:00:00 2001 From: Mm2PL Date: Sun, 6 Nov 2022 17:30:53 +0100 Subject: [PATCH] Allow hiding moderation actions in streamer mode (#3926) Co-authored-by: pajlada --- CHANGELOG.md | 1 + src/messages/layouts/MessageLayout.cpp | 15 +++++++++++---- src/singletons/Settings.hpp | 2 ++ src/widgets/settingspages/GeneralPage.cpp | 1 + 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05c302843..d313f52df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Major: Added support for Twitch's Chat Replies. [Wiki Page](https://wiki.chatterino.com/Features/#message-replies) (#3722, #3989, #4041, #4047, #4055, #4067, #4077, #3905) - Major: Added multi-channel searching to search dialog via keyboard shortcut. (Ctrl+Shift+F by default) (#3694, #3875) - Major: Added support for emotes and badges from [7TV](https://7tv.app). [Wiki Page](https://wiki.chatterino.com/Third_party_services/#7tv) (#4002, #4062) +- Minor: Allow hiding moderation actions in streamer mode. (#3926) - Minor: Added highlights for `Elevated Messages`. (#4016) - Minor: Removed total views from the usercard, as Twitch no longer updates the number. (#3792) - Minor: Load missing messages from Recent Messages API upon reconnecting (#3878, #3932) diff --git a/src/messages/layouts/MessageLayout.cpp b/src/messages/layouts/MessageLayout.cpp index 65bbf36ca..f24039596 100644 --- a/src/messages/layouts/MessageLayout.cpp +++ b/src/messages/layouts/MessageLayout.cpp @@ -10,6 +10,7 @@ #include "singletons/Theme.hpp" #include "singletons/WindowManager.hpp" #include "util/DebugCount.hpp" +#include "util/StreamerMode.hpp" #include #include @@ -148,11 +149,17 @@ void MessageLayout::actuallyLayout(int width, MessageElementFlags flags) continue; } - if (hideModerationActions && - (this->message_->flags.has(MessageFlag::Timeout) || - this->message_->flags.has(MessageFlag::Untimeout))) + if (this->message_->flags.has(MessageFlag::Timeout) || + this->message_->flags.has(MessageFlag::Untimeout)) { - continue; + // This condition has been set up to execute isInStreamerMode() as the last thing + // as it could end up being expensive. + if (hideModerationActions || + (getSettings()->streamerModeHideModActions && + isInStreamerMode())) + { + continue; + } } if (hideSimilar && this->message_->flags.has(MessageFlag::Similar)) diff --git a/src/singletons/Settings.hpp b/src/singletons/Settings.hpp index 4fd2172bd..ef67ec0dc 100644 --- a/src/singletons/Settings.hpp +++ b/src/singletons/Settings.hpp @@ -242,6 +242,8 @@ public: "/streamerMode/hideLinkThumbnails", true}; BoolSetting streamerModeHideViewerCountAndDuration = { "/streamerMode/hideViewerCountAndDuration", false}; + BoolSetting streamerModeHideModActions = {"/streamerMode/hideModActions", + true}; BoolSetting streamerModeMuteMentions = {"/streamerMode/muteMentions", true}; BoolSetting streamerModeSuppressLiveNotifications = { "/streamerMode/supressLiveNotifications", false}; diff --git a/src/widgets/settingspages/GeneralPage.cpp b/src/widgets/settingspages/GeneralPage.cpp index efeab9361..fe036ea29 100644 --- a/src/widgets/settingspages/GeneralPage.cpp +++ b/src/widgets/settingspages/GeneralPage.cpp @@ -416,6 +416,7 @@ void GeneralPage::initLayout(GeneralPageView &layout) layout.addCheckbox( "Hide viewer count and stream length while hovering over split header", s.streamerModeHideViewerCountAndDuration); + layout.addCheckbox("Hide moderation actions", s.streamerModeHideModActions); layout.addCheckbox("Mute mention sounds", s.streamerModeMuteMentions); layout.addCheckbox("Suppress Live Notifications", s.streamerModeSuppressLiveNotifications);