#pragma once #include #include #include #include #include #include "auth-oauth.hpp" class BrowserDock; class TwitchAuth : public OAuthStreamKey { Q_OBJECT friend class TwitchLogin; QSharedPointer chat; QSharedPointer info; QSharedPointer stat; QSharedPointer feed; QSharedPointer chatMenu; QSharedPointer infoMenu; QSharedPointer statMenu; QSharedPointer feedMenu; bool uiLoaded = false; std::string name; std::string uuid; virtual bool RetryLogin() override; virtual void SaveInternal() override; virtual bool LoadInternal() override; bool MakeApiRequest(const char *path, json11::Json &json_out); bool GetChannelInfo(); virtual void LoadUI() override; public: TwitchAuth(const Def &d); static std::shared_ptr Login(QWidget *parent, const std::string &service_name); QTimer uiLoadTimer; public slots: void TryLoadSecondaryUIPanes(); void LoadSecondaryUIPanes(); };