From 54da03a5bd869d39fd4650668971ca66f6a5851c Mon Sep 17 00:00:00 2001 From: Rasmus Karlsson Date: Thu, 18 Jan 2024 00:23:23 +0100 Subject: [PATCH] refactor: Make ChatterinoBadges a non-singleton --- src/Application.cpp | 11 ++++++++++- src/Application.hpp | 9 ++------- src/providers/chatterino/ChatterinoBadges.cpp | 7 ++----- src/providers/chatterino/ChatterinoBadges.hpp | 4 +--- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/Application.cpp b/src/Application.cpp index 23cfec26f..dc827bc7a 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -127,7 +127,6 @@ Application::Application(Settings &_settings, const Paths &paths, , notifications(&this->emplace()) , highlights(&this->emplace()) , twitch(&this->emplace()) - , chatterinoBadges(&this->emplace()) , ffzBadges(&this->emplace()) , seventvBadges(&this->emplace()) , userData(&this->emplace(new UserDataController(paths))) @@ -135,6 +134,7 @@ Application::Application(Settings &_settings, const Paths &paths, , twitchLiveController(&this->emplace()) , twitchPubSub(new PubSub(TWITCH_PUBSUB_URL)) , twitchBadges(new TwitchBadges) + , chatterinoBadges(new ChatterinoBadges) , logging(new Logging(_settings)) #ifdef CHATTERINO_HAVE_PLUGINS , plugins(&this->emplace(new PluginController(paths))) @@ -156,6 +156,7 @@ void Application::fakeDtor() { this->twitchPubSub.reset(); this->twitchBadges.reset(); + this->chatterinoBadges.reset(); } void Application::initialize(Settings &settings, const Paths &paths) @@ -339,6 +340,14 @@ TwitchBadges *Application::getTwitchBadges() return this->twitchBadges.get(); } +ChatterinoBadges *Application::getChatterinoBadges() +{ + assertInGuiThread(); + assert(this->chatterinoBadges); + + return this->chatterinoBadges.get(); +} + ITwitchIrcServer *Application::getTwitch() { assertInGuiThread(); diff --git a/src/Application.hpp b/src/Application.hpp index 176441e8e..d66c238e5 100644 --- a/src/Application.hpp +++ b/src/Application.hpp @@ -136,7 +136,6 @@ public: NotificationController *const notifications{}; HighlightController *const highlights{}; TwitchIrcServer *const twitch{}; - ChatterinoBadges *const chatterinoBadges{}; FfzBadges *const ffzBadges{}; SeventvBadges *const seventvBadges{}; UserDataController *const userData{}; @@ -146,6 +145,7 @@ private: TwitchLiveController *const twitchLiveController{}; std::unique_ptr twitchPubSub; std::unique_ptr twitchBadges; + std::unique_ptr chatterinoBadges; const std::unique_ptr logging; public: @@ -225,12 +225,6 @@ public: ITwitchIrcServer *getTwitch() override; PubSub *getTwitchPubSub() override; Logging *getChatLogger() override; - ChatterinoBadges *getChatterinoBadges() override - { - assertInGuiThread(); - - return this->chatterinoBadges; - } FfzBadges *getFfzBadges() override { assertInGuiThread(); @@ -247,6 +241,7 @@ public: ISoundController *getSound() override; ITwitchLiveController *getTwitchLiveController() override; TwitchBadges *getTwitchBadges() override; + ChatterinoBadges *getChatterinoBadges() override; ImageUploader *getImageUploader() override { assertInGuiThread(); diff --git a/src/providers/chatterino/ChatterinoBadges.cpp b/src/providers/chatterino/ChatterinoBadges.cpp index 5582d925a..ec26d0cc8 100644 --- a/src/providers/chatterino/ChatterinoBadges.cpp +++ b/src/providers/chatterino/ChatterinoBadges.cpp @@ -1,4 +1,4 @@ -#include "ChatterinoBadges.hpp" +#include "providers/chatterino/ChatterinoBadges.hpp" #include "common/network/NetworkRequest.hpp" #include "common/network/NetworkResult.hpp" @@ -11,13 +11,10 @@ #include namespace chatterino { -void ChatterinoBadges::initialize(Settings &settings, const Paths &paths) -{ - this->loadChatterinoBadges(); -} ChatterinoBadges::ChatterinoBadges() { + this->loadChatterinoBadges(); } std::optional ChatterinoBadges::getBadge(const UserId &id) diff --git a/src/providers/chatterino/ChatterinoBadges.hpp b/src/providers/chatterino/ChatterinoBadges.hpp index 0cba176f0..be378d99d 100644 --- a/src/providers/chatterino/ChatterinoBadges.hpp +++ b/src/providers/chatterino/ChatterinoBadges.hpp @@ -1,7 +1,6 @@ #pragma once #include "common/Aliases.hpp" -#include "common/Singleton.hpp" #include "util/QStringHash.hpp" #include @@ -15,10 +14,9 @@ namespace chatterino { struct Emote; using EmotePtr = std::shared_ptr; -class ChatterinoBadges : public Singleton +class ChatterinoBadges { public: - void initialize(Settings &settings, const Paths &paths) override; ChatterinoBadges(); std::optional getBadge(const UserId &id);