summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSilarn <jrim@rimpo.org>2019-01-31 00:36:41 -0600
committerSilarn <jrim@rimpo.org>2019-02-18 21:29:26 -0600
commit6b9e94473addf468224ea2b0521ab724d5842cb5 (patch)
tree1dfbe6a85bcb5096a6fa37293a1b57bf075f0580 /src
parent5aed35d2b6a43bae284bea958456bc50b8bfda44 (diff)
Various fixes and updates
* Add second api type for mod info to segment updates from basic desc * Add saved nexus file type and factor it into the update display * Fix some issues with how we were checking for 'latest update' files
Diffstat (limited to 'src')
-rw-r--r--src/downloadmanager.cpp3
-rw-r--r--src/mainwindow.cpp36
-rw-r--r--src/mainwindow.h2
-rw-r--r--src/modinfo.h12
-rw-r--r--src/modinfobackup.h5
-rw-r--r--src/modinfodialog.cpp1
-rw-r--r--src/modinfoforeign.h6
-rw-r--r--src/modinfooverwrite.h6
-rw-r--r--src/modinforegular.cpp20
-rw-r--r--src/modinforegular.h14
-rw-r--r--src/modinfoseparator.h6
-rw-r--r--src/modlist.cpp5
-rw-r--r--src/nexusinterface.cpp32
-rw-r--r--src/nexusinterface.h43
14 files changed, 155 insertions, 36 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index f5e4d688..32d05230 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -1004,7 +1004,8 @@ QString DownloadManager::getFileTypeString(int fileType)
case 2: return tr("Update");
case 3: return tr("Optional");
case 4: return tr("Old");
- case 5: return tr("Misc");
+ case 5: return tr("Miscellaneous");
+ case 6: return tr("Deleted");
default: return tr("Unknown");
}
}
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 6933efda..064f817d 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -441,7 +441,7 @@ MainWindow::MainWindow(QSettings &initSettings
m_ModUpdateTimer.setSingleShot(false);
connect(&m_ModUpdateTimer, SIGNAL(timeout()), this, SLOT(modUpdateCheck()));
- m_ModUpdateTimer.start(300 * 1000);
+ //m_ModUpdateTimer.start(300 * 1000);
setCategoryListVisible(initSettings.value("categorylist_visible", true).toBool());
FileDialogMemory::restore(initSettings);
@@ -496,7 +496,7 @@ MainWindow::MainWindow(QSettings &initSettings
updatePluginCount();
updateModCount();
- modUpdateCheck();
+ //modUpdateCheck();
}
@@ -5472,9 +5472,7 @@ void MainWindow::nxmUpdatesAvailable(QString gameName, int modID, QVariant userD
QVariantMap resultInfo = resultData.toMap();
QList files = resultInfo["files"].toList();
QList fileUpdates = resultInfo["file_updates"].toList();
- bool foundUpdate = false;
m_ModsToUpdate--;
- bool sameNexus = false;
QString gameNameReal;
for (IPluginGame *game : m_PluginContainer.plugins<IPluginGame>()) {
if (game->gameNexusName() == gameName) {
@@ -5485,7 +5483,19 @@ void MainWindow::nxmUpdatesAvailable(QString gameName, int modID, QVariant userD
std::vector<ModInfo::Ptr> modsList = ModInfo::getByModID(gameNameReal, modID);
for (auto mod : modsList) {
+ bool foundUpdate = false;
+ bool oldFile = false;
QString installedFile = mod->getInstallationFile();
+ QVariantMap foundFile;
+ for (auto file : files) {
+ QVariantMap fileData = file.toMap();
+ if (fileData["file_name"].toString().compare(installedFile, Qt::CaseInsensitive) == 0) {
+ foundFile = fileData;
+ mod->setNexusFileStatus(foundFile["category_id"].toInt());
+ if (mod->getNexusFileStatus() == 4 || mod->getNexusFileStatus() == 6)
+ oldFile = true;
+ }
+ }
for (auto update : fileUpdates) {
QVariantMap updateData = update.toMap();
// Locate the current install file as an update
@@ -5514,17 +5524,11 @@ void MainWindow::nxmUpdatesAvailable(QString gameName, int modID, QVariant userD
}
break;
- } else if (installedFile == updateData["new_file_name"]) {
+ } else if (installedFile == updateData["new_file_name"].toString()) {
// This is a safety mechanism if this is the latest update file so we don't use the mod version
- if (!foundUpdate) {
- for (auto file : files) {
- QVariantMap fileData = file.toMap();
- if (fileData["file_id"].toInt() == updateData["new_file_id"]) {
- mod->setVersion(fileData["version"].toString());
- mod->setNewestVersion(fileData["version"].toString());
- foundUpdate = true;
- }
- }
+ if (!foundUpdate && !oldFile) {
+ foundUpdate = true;
+ mod->setNewestVersion(foundFile["version"].toString());
}
}
}
@@ -5535,7 +5539,7 @@ void MainWindow::nxmUpdatesAvailable(QString gameName, int modID, QVariant userD
mod->updateNXMInfo();
} else {
// Scrape mod data here so we can use the mod version if no file update was located
- NexusInterface::instance(&m_PluginContainer)->requestDescription(gameName, modID, this, QVariant(), QString());
+ NexusInterface::instance(&m_PluginContainer)->requestModInfo(gameName, modID, this, QVariant(), QString());
}
}
@@ -5546,7 +5550,7 @@ void MainWindow::nxmUpdatesAvailable(QString gameName, int modID, QVariant userD
}
}
-void MainWindow::nxmDescriptionAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID)
+void MainWindow::nxmModInfoAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID)
{
QVariantMap result = resultData.toMap();
QString gameNameReal;
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 65ca99dd..3f3a5457 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -512,7 +512,7 @@ private slots:
void modUpdateCheck();
void nxmUpdatesAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
- void nxmDescriptionAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
+ void nxmModInfoAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
void nxmEndorsementToggled(QString, int, QVariant, QVariant resultData, int);
void nxmDownloadURLs(QString, int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
void nxmRequestFailed(QString gameName, int modID, int fileID, QVariant userData, int requestID, QNetworkReply::NetworkError error, const QString &errorString);
diff --git a/src/modinfo.h b/src/modinfo.h
index 9c753752..ae9dd1f3 100644
--- a/src/modinfo.h
+++ b/src/modinfo.h
@@ -504,6 +504,18 @@ public:
virtual QString getDescription() const = 0;
/**
+ * @return the nexus file status (aka category ID)
+ */
+ virtual int getNexusFileStatus() const = 0;
+
+
+ /**
+ * @brief sets the file status (category ID) from Nexus
+ * @param status the status id of the installed file
+ */
+ virtual void setNexusFileStatus(int status) = 0;
+
+ /**
* @return comments for this mod
*/
virtual QString comments() const = 0;
diff --git a/src/modinfobackup.h b/src/modinfobackup.h
index f74cd111..e88335e2 100644
--- a/src/modinfobackup.h
+++ b/src/modinfobackup.h
@@ -25,7 +25,12 @@ public:
virtual std::vector<QString> getIniTweaks() const { return std::vector<QString>(); }
virtual std::vector<EFlag> getFlags() const;
virtual QString getDescription() const;
+ virtual int getNexusFileStatus() const { return 0; }
+ virtual void setNexusFileStatus(int) {}
virtual QDateTime getLastNexusQuery() const { return QDateTime(); }
+ virtual void setLastNexusQuery(QDateTime) {}
+ virtual QDateTime getLastNexusUpdate() const { return QDateTime(); }
+ virtual void setLastNexusUpdate(QDateTime) {}
virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo*>::const_iterator&,
QList<MOBase::ModRepositoryFileInfo*>::const_iterator&) {}
virtual QString getNexusDescription() const { return QString(); }
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index db3e5de1..30d09579 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -851,6 +851,7 @@ QString ModInfoDialog::getFileCategory(int categoryID)
case 2: return tr("Update");
case 3: return tr("Optional");
case 4: return tr("Old");
+ case 5: return tr("Miscellaneous");
case 6: return tr("Deleted");
default: return tr("Unknown");
}
diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h
index 0702f268..6fcf56a1 100644
--- a/src/modinfoforeign.h
+++ b/src/modinfoforeign.h
@@ -47,10 +47,12 @@ public:
virtual std::vector<ModInfo::EFlag> getFlags() const;
virtual int getHighlight() const;
virtual QString getDescription() const;
+ virtual int getNexusFileStatus() const { return 0; }
+ virtual void setNexusFileStatus(int) {}
virtual QDateTime getLastNexusUpdate() const { return QDateTime(); }
- virtual void setLastNexusUpdate(QDateTime time) {}
+ virtual void setLastNexusUpdate(QDateTime) {}
virtual QDateTime getLastNexusQuery() const { return QDateTime(); }
- virtual void setLastNexusQuery(QDateTime time) {}
+ virtual void setLastNexusQuery(QDateTime) {}
virtual QString getNexusDescription() const { return QString(); }
virtual int getFixedPriority() const { return INT_MIN; }
virtual QStringList archives(bool checkOnDisk = false) { return m_Archives; }
diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h
index d2882301..9f77f648 100644
--- a/src/modinfooverwrite.h
+++ b/src/modinfooverwrite.h
@@ -50,10 +50,12 @@ public:
virtual std::vector<ModInfo::EFlag> getFlags() const;
virtual int getHighlight() const;
virtual QString getDescription() const;
+ virtual int getNexusFileStatus() const { return 0; }
+ virtual void setNexusFileStatus(int) {}
virtual QDateTime getLastNexusUpdate() const { return QDateTime(); }
- virtual void setLastNexusUpdate(QDateTime time) {}
+ virtual void setLastNexusUpdate(QDateTime) {}
virtual QDateTime getLastNexusQuery() const { return QDateTime(); }
- virtual void setLastNexusQuery(QDateTime time) {}
+ virtual void setLastNexusQuery(QDateTime) {}
virtual QString getNexusDescription() const { return QString(); }
virtual QStringList archives(bool checkOnDisk = false);
virtual void addInstalledFile(int, int) {}
diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp
index f2844084..89541a70 100644
--- a/src/modinforegular.cpp
+++ b/src/modinforegular.cpp
@@ -93,6 +93,7 @@ void ModInfoRegular::readMeta()
m_IgnoredVersion = metaFile.value("ignoredVersion", "").toString();
m_InstallationFile = metaFile.value("installationFile", "").toString();
m_NexusDescription = metaFile.value("nexusDescription", "").toString();
+ m_NexusFileStatus = metaFile.value("nexusFileStatus", "1").toInt();
m_Repository = metaFile.value("repository", "Nexus").toString();
m_Converted = metaFile.value("converted", false).toBool();
m_Validated = metaFile.value("validated", false).toBool();
@@ -161,6 +162,7 @@ void ModInfoRegular::saveMeta()
metaFile.setValue("notes", m_Notes);
metaFile.setValue("nexusDescription", m_NexusDescription);
metaFile.setValue("url", m_URL);
+ metaFile.setValue("nexusFileStatus", m_NexusFileStatus);
metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate));
metaFile.setValue("lastNexusUpdate", m_LastNexusUpdate.toString(Qt::ISODate));
metaFile.setValue("converted", m_Converted);
@@ -199,6 +201,9 @@ bool ModInfoRegular::updateAvailable() const
if (m_IgnoredVersion.isValid() && (m_IgnoredVersion == m_NewestVersion)) {
return false;
}
+ if (m_NexusFileStatus == 4 || m_NexusFileStatus == 6) {
+ return true;
+ }
return m_NewestVersion.isValid() && (m_Version < m_NewestVersion);
}
@@ -271,8 +276,6 @@ bool ModInfoRegular::updateNXMInfo()
m_NexusBridge.requestDescription(m_GameName, m_NexusID, QVariant());
return true;
}
- QString warning("Please wait until %1 to request updated mod info from Nexus!");
- qWarning() << warning.arg(target.toLocalTime().time().toString(Qt::DefaultLocaleShortDate));
return false;
}
@@ -613,6 +616,19 @@ QString ModInfoRegular::getDescription() const
}
}
+int ModInfoRegular::getNexusFileStatus() const
+{
+ return m_NexusFileStatus;
+}
+
+void ModInfoRegular::setNexusFileStatus(int status)
+{
+ m_NexusFileStatus = status;
+ m_MetaInfoChanged = true;
+ saveMeta();
+ emit modDetailsUpdated(true);
+}
+
QString ModInfoRegular::comments() const
{
return m_Comments;
diff --git a/src/modinforegular.h b/src/modinforegular.h
index 8e3952e8..13ce7e42 100644
--- a/src/modinforegular.h
+++ b/src/modinforegular.h
@@ -285,6 +285,19 @@ public:
*/
virtual QString getDescription() const;
+
+ /**
+ * @return the nexus file status (aka category ID)
+ */
+ virtual int getNexusFileStatus() const;
+
+
+ /**
+ * @brief sets the file status (category ID) from Nexus
+ * @param status the status id of the installed file
+ */
+ virtual void setNexusFileStatus(int status);
+
/**
* @return comments for this mod
*/
@@ -402,6 +415,7 @@ private:
bool m_IsAlternate;
bool m_Converted;
bool m_Validated;
+ bool m_NexusFileStatus;
MOBase::VersionInfo m_NewestVersion;
MOBase::VersionInfo m_IgnoredVersion;
diff --git a/src/modinfoseparator.h b/src/modinfoseparator.h
index 1f3be861..819ee686 100644
--- a/src/modinfoseparator.h
+++ b/src/modinfoseparator.h
@@ -43,10 +43,12 @@ public:
virtual QString getInstallationFile() const { return ""; }
virtual QString getURL() const { return ""; }
virtual QString repository() const { return ""; }
+ virtual int getNexusFileStatus() const { return 0; }
+ virtual void setNexusFileStatus(int) {}
virtual QDateTime getLastNexusUpdate() const { return QDateTime(); }
- virtual void setLastNexusUpdate(QDateTime time) {}
+ virtual void setLastNexusUpdate(QDateTime) {}
virtual QDateTime getLastNexusQuery() const { return QDateTime(); }
- virtual void setLastNexusQuery(QDateTime time) {}
+ virtual void setLastNexusQuery(QDateTime) {}
virtual QDateTime creationTime() const { return QDateTime(); }
virtual void getNexusFiles
diff --git a/src/modlist.cpp b/src/modlist.cpp
index 8c502f99..3f8ea4e1 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -458,6 +458,11 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
"(i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. "
"Either way you may want to \"upgrade\".");
}
+ if (modInfo->getNexusFileStatus() == 4) {
+ text += "<br>" + tr("This file has been marked as \"Old\". There is most likely an updated version of this file available.");
+ } else if (modInfo->getNexusFileStatus() == 6) {
+ text += "<br>" + tr("This file has been marked as \"Deleted\"! You may want to check for an update or remove the nexus ID from this mod!");
+ }
if (modInfo->getNexusID() > 0) {
if (!modInfo->canBeUpdated()) {
text += "<br>" + tr("This mod was last checked on %1. It will be available to check after %2.")
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp
index 7481cf96..06fbe451 100644
--- a/src/nexusinterface.cpp
+++ b/src/nexusinterface.cpp
@@ -326,6 +326,22 @@ int NexusInterface::requestDescription(QString gameName, int modID, QObject *rec
return requestInfo.m_ID;
}
+int NexusInterface::requestModInfo(QString gameName, int modID, QObject *receiver, QVariant userData,
+ const QString &subModule, MOBase::IPluginGame const *game)
+{
+ NXMRequestInfo requestInfo(modID, NXMRequestInfo::TYPE_MODINFO, userData, subModule, game);
+ m_RequestQueue.enqueue(requestInfo);
+
+ connect(this, SIGNAL(nxmModInfoAvailable(QString, int, QVariant, QVariant, int)),
+ receiver, SLOT(nxmModInfoAvailable(QString, int, QVariant, QVariant, int)), Qt::UniqueConnection);
+
+ connect(this, SIGNAL(nxmRequestFailed(QString, int, int, QVariant, int, QNetworkReply::NetworkError, QString)),
+ receiver, SLOT(nxmRequestFailed(QString, int, int, QVariant, int, QNetworkReply::NetworkError, QString)), Qt::UniqueConnection);
+
+ nextRequest();
+ return requestInfo.m_ID;
+}
+
int NexusInterface::requestUpdates(const int &modID, QObject *receiver, QVariant userData,
QString gameName, const QString &subModule)
@@ -504,12 +520,11 @@ void NexusInterface::nextRequest()
if (!info.m_Reroute) {
bool hasParams = false;
switch (info.m_Type) {
- case NXMRequestInfo::TYPE_DESCRIPTION: {
+ case NXMRequestInfo::TYPE_DESCRIPTION:
+ case NXMRequestInfo::TYPE_MODINFO: {
url = QString("%1/games/%2/mods/%3").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID);
} break;
- case NXMRequestInfo::TYPE_FILES: {
- url = QString("%1/games/%2/mods/%3/files").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID);
- } break;
+ case NXMRequestInfo::TYPE_FILES:
case NXMRequestInfo::TYPE_GETUPDATES: {
url = QString("%1/games/%2/mods/%3/files").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID);
} break;
@@ -594,18 +609,21 @@ void NexusInterface::requestFinished(std::list<NXMRequestInfo>::iterator iter)
case NXMRequestInfo::TYPE_DESCRIPTION: {
emit nxmDescriptionAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
} break;
+ case NXMRequestInfo::TYPE_MODINFO: {
+ emit nxmModInfoAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
+ } break;
case NXMRequestInfo::TYPE_FILES: {
emit nxmFilesAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
} break;
+ case NXMRequestInfo::TYPE_GETUPDATES: {
+ emit nxmUpdatesAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
+ } break;
case NXMRequestInfo::TYPE_FILEINFO: {
emit nxmFileInfoAvailable(iter->m_GameName, iter->m_ModID, iter->m_FileID, iter->m_UserData, result, iter->m_ID);
} break;
case NXMRequestInfo::TYPE_DOWNLOADURL: {
emit nxmDownloadURLsAvailable(iter->m_GameName, iter->m_ModID, iter->m_FileID, iter->m_UserData, result, iter->m_ID);
} break;
- case NXMRequestInfo::TYPE_GETUPDATES: {
- emit nxmUpdatesAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
- } break;
case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: {
emit nxmEndorsementToggled(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
} break;
diff --git a/src/nexusinterface.h b/src/nexusinterface.h
index e60ebf3f..64f15961 100644
--- a/src/nexusinterface.h
+++ b/src/nexusinterface.h
@@ -151,6 +151,7 @@ public:
/**
* @brief request description for a mod
*
+ * @param gameName the game short name to support multiple game sources
* @param modID id of the mod caller is interested in (assumed to be for the current game)
* @param receiver the object to receive the result asynchronously via a signal (nxmDescriptionAvailable)
* @param userData user data to be returned with the result
@@ -164,6 +165,7 @@ public:
/**
* @brief request description for a mod
*
+ * @param gameName the game short name to support multiple game sources
* @param modID id of the mod caller is interested in
* @param receiver the object to receive the result asynchronously via a signal (nxmDescriptionAvailable)
* @param userData user data to be returned with the result
@@ -174,11 +176,38 @@ public:
MOBase::IPluginGame const *game);
/**
+ * @brief request description for a mod
+ *
+ * @param gameName the game short name to support multiple game sources
+ * @param modID id of the mod caller is interested in (assumed to be for the current game)
+ * @param receiver the object to receive the result asynchronously via a signal (nxmModInfoAvailable)
+ * @param userData user data to be returned with the result
+ * @return int an id to identify the request
+ **/
+ int requestModInfo(QString gameName, int modID, QObject *receiver, QVariant userData, const QString &subModule)
+ {
+ return requestModInfo(gameName, modID, receiver, userData, subModule, getGame(gameName));
+ }
+
+ /**
+ * @brief request mod info
+ *
+ * @param gameName the game short name to support multiple game sources
+ * @param modID id of the mod caller is interested in
+ * @param receiver the object to receive the result asynchronously via a signal (nxmModInfoAvailable)
+ * @param userData user data to be returned with the result
+ * @param game Game with which the mod is associated
+ * @return int an id to identify the request
+ **/
+ int requestModInfo(QString gameName, int modID, QObject *receiver, QVariant userData, const QString &subModule,
+ MOBase::IPluginGame const *game);
+
+ /**
* @brief request nexus descriptions for multiple mods at once
- * @param modIDs a list of ids of mods the caller is interested in
+ * @param modID id of the mod the caller is interested in
* @param receiver the object to receive the result asynchronously via a signal (nxmDescriptionAvailable)
* @param userData user data to be returned with the result
- * @param game the game with which the mods are associated
+ * @param gameName the game with which the mods are associated
* @return int an id to identify the request
*/
int requestUpdates(const int &modID, QObject *receiver, QVariant userData, QString gameName, const QString &subModule);
@@ -186,6 +215,7 @@ public:
/**
* @brief request a list of the files belonging to a mod
*
+ * @param gameName the game short name to support multiple game sources
* @param modID id of the mod caller is interested in (assumed to be for the current game)
* @param receiver the object to receive the result asynchronously via a signal (nxmFilesAvailable)
* @param userData user data to be returned with the result
@@ -200,6 +230,7 @@ public:
/**
* @brief request a list of the files belonging to a mod
*
+ * @param gameName the game short name to support multiple game sources
* @param modID id of the mod caller is interested in
* @param receiver the object to receive the result asynchronously via a signal (nxmFilesAvailable)
* @param userData user data to be returned with the result
@@ -212,7 +243,7 @@ public:
/**
* @brief request info about a single file of a mod
*
- * @param game name of the game short name to request the download from
+ * @param gameName name of the game short name to request the download from
* @param modID id of the mod caller is interested in (assumed to be for the current game)
* @param fileID id of the file the caller is interested in
* @param receiver the object to receive the result asynchronously via a signal (nxmFilesAvailable)
@@ -224,6 +255,7 @@ public:
/**
* @brief request the download url of a file
*
+ * @param gameName the game short name to support multiple game sources
* @param modID id of the mod caller is interested in (assumed to be for the current game)
* @param fileID id of the file the caller is interested in
* @param receiver the object to receive the result asynchronously via a signal (nxmFilesAvailable)
@@ -238,6 +270,7 @@ public:
/**
* @brief request the download url of a file
*
+ * @param gameName the game short name to support multiple game sources
* @param modID id of the mod caller is interested in
* @param fileID id of the file the caller is interested in
* @param receiver the object to receive the result asynchronously via a signal (nxmFilesAvailable)
@@ -248,6 +281,7 @@ public:
int requestDownloadURL(QString gameName, int modID, int fileID, QObject *receiver, QVariant userData, const QString &subModule, MOBase::IPluginGame const *game);
/**
+ * @param gameName the game short name to support multiple game sources
* @brief toggle endorsement state of the mod
* @param modID id of the mod (assumed to be for the current game)
* @param endorse true if the mod should be endorsed, false for un-endorse
@@ -261,6 +295,7 @@ public:
}
/**
+ * @param gameName the game short name to support multiple game sources
* @brief toggle endorsement state of the mod
* @param modID id of the mod
* @param endorse true if the mod should be endorsed, false for un-endorse
@@ -342,6 +377,7 @@ signals:
void needLogin();
void nxmDescriptionAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
+ void nxmModInfoAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
void nxmUpdatesAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
void nxmFilesAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
void nxmFileInfoAvailable(QString gameName, int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
@@ -374,6 +410,7 @@ private:
QNetworkReply *m_Reply;
enum Type {
TYPE_DESCRIPTION,
+ TYPE_MODINFO,
TYPE_FILES,
TYPE_FILEINFO,
TYPE_DOWNLOADURL,