diff options
Diffstat (limited to 'src/nexusinterface.h')
| -rw-r--r-- | src/nexusinterface.h | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/nexusinterface.h b/src/nexusinterface.h index 6067d027..c4427474 100644 --- a/src/nexusinterface.h +++ b/src/nexusinterface.h @@ -54,7 +54,7 @@ class NexusBridge : public MOBase::IModRepositoryBridge public: - NexusBridge(); + NexusBridge(const QString &subModule = ""); /** * @brief request description for a mod @@ -111,6 +111,7 @@ private: NexusInterface *m_Interface; QString m_Url; + QString m_SubModule; std::set<int> m_RequestIDs; }; @@ -145,7 +146,7 @@ public: * @param url the url to request from * @return int an id to identify the request **/ - int requestDescription(int modID, QObject *receiver, QVariant userData, + int requestDescription(int modID, QObject *receiver, QVariant userData, const QString &subModule, const QString &url = MOBase::ToQString(MOShared::GameInfo::instance().getNexusInfoUrl())); /** @@ -156,7 +157,7 @@ public: * @param url the url to request from * @return int an id to identify the request */ - int requestUpdates(const std::vector<int> &modIDs, QObject *receiver, QVariant userData, + int requestUpdates(const std::vector<int> &modIDs, QObject *receiver, QVariant userData, const QString &subModule, const QString &url = MOBase::ToQString(MOShared::GameInfo::instance().getNexusInfoUrl())); /** @@ -168,7 +169,7 @@ public: * @param url the url to request from * @return int an id to identify the request **/ - int requestFiles(int modID, QObject *receiver, QVariant userData, + int requestFiles(int modID, QObject *receiver, QVariant userData, const QString &subModule, const QString &url = MOBase::ToQString(MOShared::GameInfo::instance().getNexusInfoUrl())); /** @@ -181,7 +182,7 @@ public: * @param url the url to request from * @return int an id to identify the request **/ - int requestFileInfo(int modID, int fileID, QObject *receiver, QVariant userData, + int requestFileInfo(int modID, int fileID, QObject *receiver, QVariant userData, const QString &subModule, const QString &url = MOBase::ToQString(MOShared::GameInfo::instance().getNexusInfoUrl())); /** @@ -194,7 +195,7 @@ public: * @param url the url to request from * @return int an id to identify the request **/ - int requestDownloadURL(int modID, int fileID, QObject *receiver, QVariant userData, + int requestDownloadURL(int modID, int fileID, QObject *receiver, QVariant userData, const QString &subModule, const QString &url = MOBase::ToQString(MOShared::GameInfo::instance().getNexusInfoUrl())); /** @@ -206,7 +207,7 @@ public: * @param url the url to request from * @return int an id to identify the request */ - int requestToggleEndorsement(int modID, bool endorse, QObject *receiver, QVariant userData, + int requestToggleEndorsement(int modID, bool endorse, QObject *receiver, QVariant userData, const QString &subModule, const QString &url = MOBase::ToQString(MOShared::GameInfo::instance().getNexusInfoUrl())); /** @@ -220,6 +221,11 @@ public: **/ void setNMMVersion(const QString &nmmVersion); + /** + * @brief called when the log-in completes. This was, requests waiting for the log-in can be run + */ + void loginCompleted(); + public: /** @@ -234,6 +240,8 @@ signals: void requestNXMDownload(const QString &url); + void needLogin(); + void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData, int requestID); void nxmUpdatesAvailable(const std::vector<int> &modIDs, QVariant userData, QVariant resultData, int requestID); void nxmFilesAvailable(int modID, QVariant userData, QVariant resultData, int requestID); @@ -270,19 +278,14 @@ private: QVariant m_UserData; QTimer *m_Timeout; QString m_URL; + QString m_SubModule; bool m_Reroute; int m_ID; int m_Endorse; - NXMRequestInfo(int modID, Type type, QVariant userData, const QString &url) - : m_ModID(modID), m_FileID(0), m_Reply(NULL), m_Type(type), m_UserData(userData), - m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} - NXMRequestInfo(std::vector<int> modIDList, Type type, QVariant userData, const QString &url) - : m_ModID(-1), m_ModIDList(modIDList), m_FileID(0), m_Reply(NULL), m_Type(type), m_UserData(userData), - m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} - NXMRequestInfo(int modID, int fileID, Type type, QVariant userData, const QString &url) - : m_ModID(modID), m_FileID(fileID), m_Reply(NULL), m_Type(type), m_UserData(userData), - m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {} + NXMRequestInfo(int modID, Type type, QVariant userData, const QString &subModule, const QString &url); + NXMRequestInfo(std::vector<int> modIDList, Type type, QVariant userData, const QString &subModule, const QString &url); + NXMRequestInfo(int modID, int fileID, Type type, QVariant userData, const QString &subModule, const QString &url); private: static QAtomicInt s_NextID; @@ -295,6 +298,7 @@ private: NexusInterface(); void nextRequest(); void requestFinished(std::list<NXMRequestInfo>::iterator iter); + bool requiresLogin(const NXMRequestInfo &info); static void cleanup(); private: |
