diff --git a/src/Application.cpp b/src/Application.cpp index b49981a49..6223dbadf 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -129,7 +129,7 @@ Application::Application(Settings &_settings, const Paths &paths, , chatterinoBadges(&this->emplace()) , ffzBadges(&this->emplace()) , seventvBadges(&this->emplace()) - , userData(&this->emplace()) + , userData(&this->emplace(new UserDataController(paths))) , sound(&this->emplace(makeSoundController(_settings))) , twitchLiveController(&this->emplace()) , twitchPubSub(new PubSub(TWITCH_PUBSUB_URL)) diff --git a/src/controllers/userdata/UserDataController.cpp b/src/controllers/userdata/UserDataController.cpp index 63cf7f1d9..3f8029cbe 100644 --- a/src/controllers/userdata/UserDataController.cpp +++ b/src/controllers/userdata/UserDataController.cpp @@ -8,13 +8,12 @@ namespace { using namespace chatterino; -std::shared_ptr initSettingsInstance() +std::shared_ptr initSettingsInstance( + const Paths &paths) { auto sm = std::make_shared(); - 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 initSettingsInstance() namespace chatterino { -UserDataController::UserDataController() - : sm(initSettingsInstance()) +UserDataController::UserDataController(const Paths &paths) + : sm(initSettingsInstance(paths)) , setting("/users", this->sm) { this->sm->load(); diff --git a/src/controllers/userdata/UserDataController.hpp b/src/controllers/userdata/UserDataController.hpp index fba501f4c..3be1f260a 100644 --- a/src/controllers/userdata/UserDataController.hpp +++ b/src/controllers/userdata/UserDataController.hpp @@ -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