diff options
| author | Silarn <jrim@rimpo.org> | 2018-05-02 13:47:59 -0500 |
|---|---|---|
| committer | Silarn <jrim@rimpo.org> | 2018-05-02 13:47:59 -0500 |
| commit | 2091330af253399805a08c6d8f142261fc2fc8f6 (patch) | |
| tree | 60463f62bc9e29b520283884a38067b0c7aa77b6 | |
| parent | 168da18aa51868ad3ac908affb55a8aabdba1aed (diff) | |
Clean up handling of managed game instance in NexusInterface
| -rw-r--r-- | src/nexusinterface.cpp | 61 | ||||
| -rw-r--r-- | src/nexusinterface.h | 6 | ||||
| -rw-r--r-- | src/organizercore.cpp | 3 |
3 files changed, 24 insertions, 46 deletions
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<int> &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<int>, QVariant, QVariant, int)),
- receiver, SLOT(nxmUpdatesAvailable(std::vector<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(nxmUpdatesAvailable(std::vector<int>, QVariant, QVariant, int)),
+ receiver, SLOT(nxmUpdatesAvailable(std::vector<int>, 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>();
- IPluginGame *gamePlugin = nullptr;
+ IPluginGame *gamePlugin = qApp->property("managed_game").value<IPluginGame*>();
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)
{
diff --git a/src/nexusinterface.h b/src/nexusinterface.h index 4a5ac0dd..defb370f 100644 --- a/src/nexusinterface.h +++ b/src/nexusinterface.h @@ -349,9 +349,6 @@ signals: void nxmEndorsementToggled(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
void nxmRequestFailed(QString gameName, int modID, int fileID, QVariant userData, int requestID, const QString &errorString);
-public slots:
- void managedGameChanged(MOBase::IPluginGame const *game);
-
private slots:
void requestFinished();
@@ -404,7 +401,7 @@ private: void requestFinished(std::list<NXMRequestInfo>::iterator iter);
bool requiresLogin(const NXMRequestInfo &info);
MOBase::IPluginGame *getGame(QString gameName) const;
- QString getOldModsURL() const;
+ QString getOldModsURL(QString gameName) const;
private:
@@ -418,7 +415,6 @@ private: MOBase::VersionInfo m_MOVersion;
QString m_NMMVersion;
- MOBase::IPluginGame const *m_Game;
PluginContainer *m_PluginContainer;
};
diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 4739021a..d1b1fcd7 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -240,9 +240,6 @@ OrganizerCore::OrganizerCore(const QSettings &initSettings) SLOT(managedGameChanged(MOBase::IPluginGame const *)));
connect(this, SIGNAL(managedGameChanged(MOBase::IPluginGame const *)),
&m_PluginList, SLOT(managedGameChanged(MOBase::IPluginGame const *)));
- connect(this, SIGNAL(managedGameChanged(MOBase::IPluginGame const *)),
- NexusInterface::instance(m_PluginContainer),
- SLOT(managedGameChanged(MOBase::IPluginGame const *)));
connect(&m_PluginList, &PluginList::writePluginsList, &m_PluginListsWriter,
&DelayedFileWriterBase::write);
|
