From 07133166d9bbb067206524687a833c1e869f3891 Mon Sep 17 00:00:00 2001 From: fourtf Date: Wed, 18 Sep 2019 11:11:50 +0200 Subject: [PATCH] added setting to show unhandled irc commands --- src/messages/Message.hpp | 1 + src/messages/layouts/MessageLayout.cpp | 4 +++ src/providers/irc/IrcServer.cpp | 36 +++++++++++++---------- src/singletons/Settings.hpp | 5 ++++ src/widgets/settingspages/GeneralPage.cpp | 3 ++ 5 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/messages/Message.hpp b/src/messages/Message.hpp index 31d8bdd32..47af81abf 100644 --- a/src/messages/Message.hpp +++ b/src/messages/Message.hpp @@ -32,6 +32,7 @@ enum class MessageFlag : uint32_t { RecentMessage = (1 << 15), Whisper = (1 << 16), HighlightedWhisper = (1 << 17), + Debug = (1 << 18), }; using MessageFlags = FlagsEnum; diff --git a/src/messages/layouts/MessageLayout.cpp b/src/messages/layouts/MessageLayout.cpp index a517bd7ce..07b7c79d4 100644 --- a/src/messages/layouts/MessageLayout.cpp +++ b/src/messages/layouts/MessageLayout.cpp @@ -269,6 +269,10 @@ void MessageLayout::updateBuffer(QPixmap *buffer, int /*messageIndex*/, { backgroundColor = QColor("#404040"); } + else if (this->message_->flags.has(MessageFlag::Debug)) + { + backgroundColor = QColor("#4A273D"); + } painter.fillRect(buffer->rect(), backgroundColor); diff --git a/src/providers/irc/IrcServer.cpp b/src/providers/irc/IrcServer.cpp index 66e9d3f8b..39ce9e767 100644 --- a/src/providers/irc/IrcServer.cpp +++ b/src/providers/irc/IrcServer.cpp @@ -3,9 +3,11 @@ #include #include +#include "messages/Message.hpp" #include "messages/MessageBuilder.hpp" #include "providers/irc/Irc2.hpp" #include "providers/irc/IrcChannel2.hpp" +#include "singletons/Settings.hpp" #include "util/QObjectRef.hpp" namespace chatterino { @@ -233,23 +235,25 @@ void IrcServer::readConnectionMessageReceived(Communi::IrcMessage *message) case Communi::IrcMessage::Notice: return; - default:; + default: + if (getSettings()->showUnhandledIrcMessages) + { + MessageBuilder builder; + + builder.emplace(); + builder.emplace(message->toData(), + MessageElementFlag::Text); + builder->flags.set(MessageFlag::Debug); + + auto msg = builder.release(); + + for (auto &&weak : this->channels) + { + if (auto shared = weak.lock()) + shared->addMessage(msg); + } + }; } - -#ifdef QT_DEBUG - MessageBuilder builder; - - builder.emplace(); - builder.emplace(message->toData(), MessageElementFlag::Text); - - auto msg = builder.release(); - - for (auto &&weak : this->channels) - { - if (auto shared = weak.lock()) - shared->addMessage(msg); - } -#endif } } // namespace chatterino diff --git a/src/singletons/Settings.hpp b/src/singletons/Settings.hpp index ea0d901e0..8c39e37f2 100644 --- a/src/singletons/Settings.hpp +++ b/src/singletons/Settings.hpp @@ -211,7 +211,12 @@ public: QStringSetting cachePath = {"/cache/path", ""}; + /// Debug + BoolSetting showUnhandledIrcMessages = {"/debug/showUnhandledIrcMessages", + false}; + /// UI + // Purely QOL settings are here (like last item in a list). IntSetting lastSelectChannelTab = {"/ui/lastSelectChannelTab", 0}; IntSetting lastSelectIrcConn = {"/ui/lastSelectIrcConn", 0}; diff --git a/src/widgets/settingspages/GeneralPage.cpp b/src/widgets/settingspages/GeneralPage.cpp index b554e5883..5d6427399 100644 --- a/src/widgets/settingspages/GeneralPage.cpp +++ b/src/widgets/settingspages/GeneralPage.cpp @@ -422,6 +422,9 @@ void GeneralPage::initLayout(SettingsLayout &layout) layout.addCheckbox("Load message history on connect", s.loadTwitchMessageHistoryOnConnect); + layout.addCheckbox("Show unhandled irc messages", + s.showUnhandledIrcMessages); + layout.addTitle("Cache"); layout.addDescription( "Files that are used often (such as emotes) are saved to disk to "