From 2091330af253399805a08c6d8f142261fc2fc8f6 Mon Sep 17 00:00:00 2001 From: Silarn Date: Wed, 2 May 2018 13:47:59 -0500 Subject: Clean up handling of managed game instance in NexusInterface --- src/nexusinterface.cpp | 61 +++++++++++++++++++------------------------------- 1 file changed, 23 insertions(+), 38 deletions(-) (limited to 'src/nexusinterface.cpp') diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index 8bf0de6e..d2a52c7b 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -247,21 +247,19 @@ bool NexusInterface::isURLGameRelated(const QUrl &url) const { QString const name(url.toString()); return name.startsWith(getGameURL("") + "/") || - name.startsWith(getOldModsURL() + "/"); + name.startsWith(getOldModsURL("") + "/"); } QString NexusInterface::getGameURL(QString gameName) const { IPluginGame *game = getGame(gameName); - if (game != nullptr) { - return "https://www.nexusmods.com/" + game->gameNexusName().toLower(); - } - return "https://www.nexusmods.com/" + m_Game->gameNexusName().toLower(); + return "https://www.nexusmods.com/" + game->gameNexusName().toLower(); } -QString NexusInterface::getOldModsURL() const +QString NexusInterface::getOldModsURL(QString gameName) const { - return "https://" + m_Game->gameNexusName().toLower() + ".nexusmods.com/mods"; + IPluginGame *game = getGame(gameName); + return "https://" + game->gameNexusName().toLower() + ".nexusmods.com/mods"; } @@ -291,7 +289,7 @@ bool NexusInterface::isModURL(int modID, const QString &url) const return true; } //Try the alternate (old style) mod name - QString alt = QString("%1/%2").arg(getOldModsURL()).arg(modID); + QString alt = QString("%1/%2").arg(getOldModsURL("")).arg(modID); return QUrl(alt) == QUrl(url); } @@ -321,22 +319,17 @@ int NexusInterface::requestUpdates(const std::vector &modIDs, QObject *rece QString gameName, const QString &subModule) { IPluginGame *game = getGame(gameName); + NXMRequestInfo requestInfo(modIDs, NXMRequestInfo::TYPE_GETUPDATES, userData, subModule, game); + m_RequestQueue.enqueue(requestInfo); - if (game != nullptr) { - NXMRequestInfo requestInfo(modIDs, NXMRequestInfo::TYPE_GETUPDATES, userData, subModule, game); - m_RequestQueue.enqueue(requestInfo); - - connect(this, SIGNAL(nxmUpdatesAvailable(std::vector, QVariant, QVariant, int)), - receiver, SLOT(nxmUpdatesAvailable(std::vector, QVariant, QVariant, int)), Qt::UniqueConnection); - - connect(this, SIGNAL(nxmRequestFailed(QString, int, int, QVariant, int, QString)), - receiver, SLOT(nxmRequestFailed(QString, int, int, QVariant, int, QString)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmUpdatesAvailable(std::vector, QVariant, QVariant, int)), + receiver, SLOT(nxmUpdatesAvailable(std::vector, QVariant, QVariant, int)), Qt::UniqueConnection); - nextRequest(); - return requestInfo.m_ID; - } + connect(this, SIGNAL(nxmRequestFailed(QString, int, int, QVariant, int, QString)), + receiver, SLOT(nxmRequestFailed(QString, int, int, QVariant, int, QString)), Qt::UniqueConnection); - return -1; + nextRequest(); + return requestInfo.m_ID; } @@ -378,20 +371,17 @@ int NexusInterface::requestFiles(QString gameName, int modID, QObject *receiver, int NexusInterface::requestFileInfo(QString gameName, int modID, int fileID, QObject *receiver, QVariant userData, const QString &subModule) { IPluginGame *gamePlugin = getGame(gameName); - if (gamePlugin != nullptr) { - NXMRequestInfo requestInfo(modID, fileID, NXMRequestInfo::TYPE_FILEINFO, userData, subModule, gamePlugin); - m_RequestQueue.enqueue(requestInfo); + NXMRequestInfo requestInfo(modID, fileID, NXMRequestInfo::TYPE_FILEINFO, userData, subModule, gamePlugin); + m_RequestQueue.enqueue(requestInfo); - connect(this, SIGNAL(nxmFileInfoAvailable(QString, int, int, QVariant, QVariant, int)), - receiver, SLOT(nxmFileInfoAvailable(QString, int, int, QVariant, QVariant, int)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmFileInfoAvailable(QString, int, int, QVariant, QVariant, int)), + receiver, SLOT(nxmFileInfoAvailable(QString, int, int, QVariant, QVariant, int)), Qt::UniqueConnection); - connect(this, SIGNAL(nxmRequestFailed(QString, int, int, QVariant, int, QString)), - receiver, SLOT(nxmRequestFailed(QString, int, int, QVariant, int, QString)), Qt::UniqueConnection); + connect(this, SIGNAL(nxmRequestFailed(QString, int, int, QVariant, int, QString)), + receiver, SLOT(nxmRequestFailed(QString, int, int, QVariant, int, QString)), Qt::UniqueConnection); - nextRequest(); - return requestInfo.m_ID; - } - return -1; + nextRequest(); + return requestInfo.m_ID; } @@ -438,7 +428,7 @@ bool NexusInterface::requiresLogin(const NXMRequestInfo &info) IPluginGame* NexusInterface::getGame(QString gameName) const { auto gamePlugins = m_PluginContainer->plugins(); - IPluginGame *gamePlugin = nullptr; + IPluginGame *gamePlugin = qApp->property("managed_game").value(); for (auto plugin : gamePlugins) { if (plugin->gameShortName().compare(gameName, Qt::CaseInsensitive) == 0) { gamePlugin = plugin; @@ -637,11 +627,6 @@ void NexusInterface::requestTimeout() } } -void NexusInterface::managedGameChanged(IPluginGame const *game) -{ - m_Game = game; -} - namespace { QString get_management_url(MOBase::IPluginGame const *game) { -- cgit v1.3.1