summaryrefslogtreecommitdiff
path: root/src/nexusinterface.h
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2014-05-13 21:20:44 +0200
committerTannin <devnull@localhost>2014-05-13 21:20:44 +0200
commit977b4075254ca79e68bbdec2e689eccb291fe701 (patch)
tree0afa2ad971bb786ca6acfa19944cd8381e925c8b /src/nexusinterface.h
parentf4b1aba61ae81b4151695798006b3a787e0de6de (diff)
- 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
Diffstat (limited to 'src/nexusinterface.h')
-rw-r--r--src/nexusinterface.h36
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: