refactor: Un-singletonize Paths & Updates (#5092)

This commit is contained in:
pajlada
2024-01-16 21:56:43 +01:00
committed by GitHub
parent 7f935665f9
commit 718696db53
60 changed files with 237 additions and 165 deletions
@@ -47,7 +47,7 @@ AccountController::AccountController()
});
}
void AccountController::initialize(Settings &settings, Paths &paths)
void AccountController::initialize(Settings &settings, const Paths &paths)
{
this->twitch.load();
}
@@ -21,7 +21,7 @@ public:
AccountModel *createModel(QObject *parent);
void initialize(Settings &settings, Paths &paths) override;
void initialize(Settings &settings, const Paths &paths) override;
TwitchAccountManager twitch;
@@ -261,7 +261,7 @@ const std::unordered_map<QString, VariableReplacer> COMMAND_VARS{
namespace chatterino {
void CommandController::initialize(Settings &, Paths &paths)
void CommandController::initialize(Settings &, const Paths &paths)
{
// Update commands map when the vector of commands has been updated
auto addFirstMatchToMap = [this](auto args) {
@@ -33,7 +33,7 @@ public:
bool dryRun);
QStringList getDefaultChatterinoCommandList();
void initialize(Settings &, Paths &paths) override;
void initialize(Settings &, const Paths &paths) override;
void save() override;
CommandModel *createModel(QObject *parent);
@@ -440,7 +440,8 @@ std::ostream &operator<<(std::ostream &os, const HighlightResult &result)
return os;
}
void HighlightController::initialize(Settings &settings, Paths & /*paths*/)
void HighlightController::initialize(Settings &settings,
const Paths & /*paths*/)
{
this->rebuildListener_.addSetting(settings.enableSelfHighlight);
this->rebuildListener_.addSetting(settings.enableSelfHighlightSound);
@@ -86,7 +86,7 @@ struct HighlightCheck {
class HighlightController final : public Singleton
{
public:
void initialize(Settings &settings, Paths &paths) override;
void initialize(Settings &settings, const Paths &paths) override;
/**
* @brief Checks the given message parameters if it matches our internal checks, and returns a result
@@ -26,7 +26,7 @@
namespace chatterino {
void NotificationController::initialize(Settings &settings, Paths &paths)
void NotificationController::initialize(Settings &settings, const Paths &paths)
{
this->initialized_ = true;
for (const QString &channelName : this->twitchSetting_.getValue())
@@ -20,7 +20,7 @@ enum class Platform : uint8_t {
class NotificationController final : public Singleton, private QObject
{
public:
void initialize(Settings &settings, Paths &paths) override;
void initialize(Settings &settings, const Paths &paths) override;
bool isChannelNotified(const QString &channelName, Platform p);
void updateChannelNotification(const QString &channelName, Platform p);
+7 -2
View File
@@ -23,7 +23,12 @@
namespace chatterino {
void PluginController::initialize(Settings &settings, Paths &paths)
PluginController::PluginController(const Paths &paths_)
: paths(paths_)
{
}
void PluginController::initialize(Settings &settings, const Paths &paths)
{
(void)paths;
@@ -44,7 +49,7 @@ void PluginController::initialize(Settings &settings, Paths &paths)
void PluginController::loadPlugins()
{
this->plugins_.clear();
auto dir = QDir(getPaths()->pluginsDirectory);
auto dir = QDir(this->paths.pluginsDirectory);
qCDebug(chatterinoLua) << "Loading plugins in" << dir.path();
for (const auto &info :
dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot))
+5 -1
View File
@@ -26,8 +26,12 @@ class Paths;
class PluginController : public Singleton
{
const Paths &paths;
public:
void initialize(Settings &settings, Paths &paths) override;
explicit PluginController(const Paths &paths_);
void initialize(Settings &settings, const Paths &paths) override;
QString tryExecPluginCommand(const QString &commandName,
const CommandContext &ctx);
+1 -1
View File
@@ -68,7 +68,7 @@ namespace chatterino {
// NUM_SOUNDS specifies how many simultaneous default ping sounds & decoders to create
constexpr const auto NUM_SOUNDS = 4;
void MiniaudioBackend::initialize(Settings &settings, Paths &paths)
void MiniaudioBackend::initialize(Settings &settings, const Paths &paths)
{
(void)(settings);
(void)(paths);
+1 -1
View File
@@ -25,7 +25,7 @@ namespace chatterino {
**/
class MiniaudioBackend : public ISoundController
{
void initialize(Settings &settings, Paths &paths) override;
void initialize(Settings &settings, const Paths &paths) override;
public:
MiniaudioBackend();
@@ -8,13 +8,12 @@ namespace {
using namespace chatterino;
std::shared_ptr<pajlada::Settings::SettingManager> initSettingsInstance()
std::shared_ptr<pajlada::Settings::SettingManager> initSettingsInstance(
const Paths &paths)
{
auto sm = std::make_shared<pajlada::Settings::SettingManager>();
auto *paths = getPaths();
auto path = combinePath(paths->settingsDirectory, "user-data.json");
auto path = combinePath(paths.settingsDirectory, "user-data.json");
sm->setPath(path.toUtf8().toStdString());
@@ -30,8 +29,8 @@ std::shared_ptr<pajlada::Settings::SettingManager> initSettingsInstance()
namespace chatterino {
UserDataController::UserDataController()
: sm(initSettingsInstance())
UserDataController::UserDataController(const Paths &paths)
: sm(initSettingsInstance(paths))
, setting("/users", this->sm)
{
this->sm->load();
@@ -17,6 +17,8 @@
namespace chatterino {
class Paths;
class IUserDataController
{
public:
@@ -31,7 +33,7 @@ public:
class UserDataController : public IUserDataController, public Singleton
{
public:
UserDataController();
explicit UserDataController(const Paths &paths);
// Get extra data about a user
// If the user does not have any extra data, return none