refactor: Un-singletonize Paths & Updates (#5092)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user