1 #pragma once 2 3 #include <QObject> 4 5 #include "common/SignalVector.hpp" 6 #include "common/Singleton.hpp" 7 #include "providers/twitch/TwitchAccountManager.hpp" 8 #include "util/SharedPtrElementLess.hpp" 9 10 namespace chatterino { 11 12 class Account; 13 class Settings; 14 class Paths; 15 16 class AccountModel; 17 18 class AccountController final : public Singleton 19 { 20 public: 21 AccountController(); 22 23 AccountModel *createModel(QObject *parent); 24 25 virtual void initialize(Settings &settings, Paths &paths) override; 26 27 TwitchAccountManager twitch; 28 29 private: 30 SignalVector<std::shared_ptr<Account>> accounts_; 31 }; 32 33 } // namespace chatterino 34