From 977b4075254ca79e68bbdec2e689eccb291fe701 Mon Sep 17 00:00:00 2001 From: Tannin Date: Tue, 13 May 2014 21:20:44 +0200 Subject: - mod list context menu split into two menus (one for whole list, one for selected mods) - added option to combine category filters using "or" - added context menu option for deselecting category filters - slightly changed ui on the category filters - added a sample plugin for cpp that can be built without building the rest of MO - simple installer can now be configured to run without any user interaction - extended interface for python plugins - iorganizer implementation moved out of the main window - nexus requests from plugins will now be identified in the user agent - bugfix: shortcuts created from MO used the wrong working directory - bugfix: deactivation of bsas didn't stick - bugfix: file hiding mechanism wasn't active - bugfix: executables linked on the toolbar couldn't be removed if the executable was removed first - bugfix: the endorsement-filter couldn't be combined with other filters - bugfix: python interface to repository bridge was broken --- src/nexusinterface.h | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'src/nexusinterface.h') 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 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 &modIDs, QObject *receiver, QVariant userData, + int requestUpdates(const std::vector &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 &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 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 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::iterator iter); + bool requiresLogin(const NXMRequestInfo &info); static void cleanup(); private: -- cgit v1.3.1