summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2014-01-18 19:51:58 +0100
committerTannin <devnull@localhost>2014-01-18 19:51:58 +0100
commite69210b3a78c4a6c63086d84e6bdb2c3b47d8944 (patch)
tree5bae6e217c9734b0403606bea3e419a955c1aca4 /src
parent40d20ab294ad7afd4b5747b306e45d0f8712a386 (diff)
- when a download server returns a text file, it's assumed to be an error and the text displayed as an error
- save games can now be deleted from inside MO - bugfix: removing the pending download entry failed if the download-url request failed - bugfix: download manager didn't stop automatically resuming failed downloads under certain circumstances - bugfix: uninstalled downloads were treated as not-finished when refreshing the download list - bugfix: updating the filesystem watcher on the saves directory didn't work correctly
Diffstat (limited to 'src')
-rw-r--r--src/aboutdialog.cpp1
-rw-r--r--src/downloadmanager.cpp33
-rw-r--r--src/downloadmanager.h2
-rw-r--r--src/mainwindow.cpp23
-rw-r--r--src/mainwindow.h3
-rw-r--r--src/modinfo.cpp4
-rw-r--r--src/modinfo.h2
-rw-r--r--src/nexusinterface.cpp34
-rw-r--r--src/nexusinterface.h8
-rw-r--r--src/pluginlist.cpp1
-rw-r--r--src/selfupdater.cpp2
-rw-r--r--src/selfupdater.h2
12 files changed, 67 insertions, 48 deletions
diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp
index 94e4e54c..c7f95640 100644
--- a/src/aboutdialog.cpp
+++ b/src/aboutdialog.cpp
@@ -73,7 +73,6 @@ void AboutDialog::on_creditsList_currentItemChanged(QListWidgetItem *current, QL
auto iter = m_LicenseFiles.find(current->data(Qt::UserRole).toInt());
if (iter != m_LicenseFiles.end()) {
QString filePath = qApp->applicationDirPath() + "/license/" + iter->second;
-qDebug("%s", qPrintable(filePath));
QString text = MOBase::readFileText(filePath);
ui->licenseText->setText(text);
} else {
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index dd320f70..31d8bcec 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -26,15 +26,16 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "utility.h"
#include "json.h"
#include "selectiondialog.h"
+#include <utility.h>
#include <QTimer>
#include <QFileInfo>
#include <QRegExp>
#include <QDirIterator>
#include <QInputDialog>
-#include <boost/bind.hpp>
-#include <regex>
#include <QMessageBox>
#include <QCoreApplication>
+#include <boost/bind.hpp>
+#include <regex>
using namespace MOBase;
@@ -246,7 +247,7 @@ void DownloadManager::refreshList()
// remove finished downloads
for (QVector<DownloadInfo*>::iterator Iter = m_ActiveDownloads.begin(); Iter != m_ActiveDownloads.end();) {
- if (((*Iter)->m_State == STATE_READY) || ((*Iter)->m_State == STATE_INSTALLED)) {
+ if (((*Iter)->m_State == STATE_READY) || ((*Iter)->m_State == STATE_INSTALLED) || ((*Iter)->m_State == STATE_UNINSTALLED)) {
delete *Iter;
Iter = m_ActiveDownloads.erase(Iter);
} else {
@@ -414,7 +415,7 @@ void DownloadManager::addNXMDownload(const QString &url)
NXMUrl nxmInfo(url);
QString managedGame = ToQString(MOShared::GameInfo::instance().getGameShortName());
- qDebug("add nxm download", qPrintable(url));
+ qDebug("add nxm download: %s", qPrintable(url));
if (nxmInfo.game().compare(managedGame, Qt::CaseInsensitive) != 0) {
qDebug("download requested for wrong game (game: %s, url: %s)", qPrintable(managedGame), qPrintable(nxmInfo.game()));
QMessageBox::information(NULL, tr("Wrong Game"), tr("The download link is for a mod for \"%1\" but this instance of MO "
@@ -1089,11 +1090,7 @@ void DownloadManager::nxmFileInfoAvailable(int modID, int fileID, QVariant userD
info.m_FileName = result["uri"].toString();
info.m_FileTime = matchDate(result["date"].toString());
- if (userData.isValid()) {
- m_RequestIDs.insert(m_NexusInterface->requestDownloadURL(modID, fileID, this, qVariantFromValue(info), userData.toString()));
- } else {
- m_RequestIDs.insert(m_NexusInterface->requestDownloadURL(modID, fileID, this, qVariantFromValue(info)));
- }
+ m_RequestIDs.insert(m_NexusInterface->requestDownloadURL(modID, fileID, this, QVariant::fromValue(info)));
}
@@ -1176,8 +1173,6 @@ void DownloadManager::nxmDownloadURLsAvailable(int modID, int fileID, QVariant u
m_RequestIDs.erase(idIter);
}
- qDebug("download urls received (modid %d, fileid %d)", modID, fileID);
-
NexusInfo info = userData.value<NexusInfo>();
QVariantList resultList = resultData.toList();
if (resultList.length() == 0) {
@@ -1200,7 +1195,7 @@ void DownloadManager::nxmDownloadURLsAvailable(int modID, int fileID, QVariant u
}
-void DownloadManager::nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString)
+void DownloadManager::nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorString)
{
std::set<int>::iterator idIter = m_RequestIDs.find(requestID);
if (idIter == m_RequestIDs.end()) {
@@ -1225,7 +1220,7 @@ void DownloadManager::nxmRequestFailed(int modID, QVariant userData, int request
}
}
- removePending(modID, userData.toInt());
+ removePending(modID, fileID);
emit showMessage(tr("Failed to request file info from nexus: %1").arg(errorString));
}
@@ -1243,14 +1238,18 @@ void DownloadManager::downloadFinished()
TaskProgressManager::instance().forgetMe(info->m_TaskProgressId);
bool error = false;
-
if ((info->m_State != STATE_CANCELING) &&
(info->m_State != STATE_PAUSING)) {
+ bool textData = reply->header(QNetworkRequest::ContentTypeHeader).toString().startsWith("text", Qt::CaseInsensitive);
if ((info->m_Output.size() == 0) ||
((reply->error() != QNetworkReply::NoError) && (reply->error() != QNetworkReply::OperationCanceledError)) ||
- reply->header(QNetworkRequest::ContentTypeHeader).toString().startsWith("text", Qt::CaseInsensitive)) {
+ textData) {
if (info->m_Tries == 0) {
- emit showMessage(tr("Download failed: %1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ if (textData && (reply->error() == QNetworkReply::NoError)) {
+ emit showMessage(tr("Download failed. Server reported: %1").arg(readFileText(info->m_Output.fileName())));
+ } else {
+ emit showMessage(tr("Download failed: %1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ }
}
error = true;
setState(info, STATE_PAUSING);
@@ -1310,7 +1309,7 @@ void DownloadManager::downloadFinished()
if ((info->m_Tries > 0) && error) {
--info->m_Tries;
- resumeDownload(index);
+ resumeDownloadInt(index);
}
} else {
qWarning("no download index %d", index);
diff --git a/src/downloadmanager.h b/src/downloadmanager.h
index 62396666..80b99ad2 100644
--- a/src/downloadmanager.h
+++ b/src/downloadmanager.h
@@ -412,7 +412,7 @@ public slots:
void nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
- void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString);
+ void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorString);
private slots:
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 14e27e76..582bc283 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -66,6 +66,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include <ctime>
#include <util.h>
#include <wchar.h>
+#include <utility.h>
#include <QTime>
#include <QInputDialog>
#include <QSettings>
@@ -1737,6 +1738,9 @@ void MainWindow::refreshSaveList()
savesDir.setPath(QDir::fromNativeSeparators(ToQString(GameInfo::instance().getDocumentsDir() + L"\\" + path)));
}
+ if (m_SavesWatcher.directories().length() > 0) {
+ m_SavesWatcher.removePaths(m_SavesWatcher.directories());
+ }
m_SavesWatcher.addPath(savesDir.absolutePath());
QStringList filters;
@@ -3868,6 +3872,22 @@ void MainWindow::on_categoriesList_itemSelectionChanged()
}
+void MainWindow::deleteSavegame_clicked()
+{
+ QListWidgetItem *selectedItem = ui->savegameList->item(m_SelectedSaveGame);
+ if (selectedItem == NULL) {
+ return;
+ }
+
+ QString fileName = selectedItem->data(Qt::UserRole).toString();
+
+ if (QMessageBox::question(this, tr("Confirm"), tr("Really delete \"%1\"?").arg(selectedItem->text()),
+ QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
+ shellDelete(QStringList() << fileName);
+ }
+}
+
+
void MainWindow::fixMods_clicked()
{
QListWidgetItem *selectedItem = ui->savegameList->item(m_SelectedSaveGame);
@@ -3973,6 +3993,7 @@ void MainWindow::on_savegameList_customContextMenuRequested(const QPoint &pos)
QMenu menu;
menu.addAction(tr("Fix Mods..."), this, SLOT(fixMods_clicked()));
+ menu.addAction(tr("Delete"), this, SLOT(deleteSavegame_clicked()));
menu.exec(ui->savegameList->mapToGlobal(pos));
}
@@ -4721,7 +4742,7 @@ void MainWindow::nxmDownloadURLs(int, int, QVariant, QVariant resultData, int)
}
-void MainWindow::nxmRequestFailed(int modID, QVariant, int, const QString &errorString)
+void MainWindow::nxmRequestFailed(int modID, int, QVariant, int, const QString &errorString)
{
if (modID == -1) {
// must be the update-check that failed
diff --git a/src/mainwindow.h b/src/mainwindow.h
index e7b3f7e1..c01ce767 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -398,6 +398,7 @@ private slots:
void openExplorer_clicked();
void information_clicked();
// savegame context menu
+ void deleteSavegame_clicked();
void fixMods_clicked();
// data-tree context menu
void writeDataToFile();
@@ -464,7 +465,7 @@ private slots:
void nxmUpdatesAvailable(const std::vector<int> &modIDs, QVariant userData, QVariant resultData, int requestID);
// void nxmEndorsementToggled(int, QVariant, QVariant resultData, int);
void nxmDownloadURLs(int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
- void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString);
+ void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorString);
void editCategories();
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index 6569f897..85612b32 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -345,7 +345,7 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc
connect(&m_NexusBridge, SIGNAL(descriptionAvailable(int,QVariant,QVariant)), this, SLOT(nxmDescriptionAvailable(int,QVariant,QVariant)));
connect(&m_NexusBridge, SIGNAL(endorsementToggled(int,QVariant,QVariant)), this, SLOT(nxmEndorsementToggled(int,QVariant,QVariant)));
- connect(&m_NexusBridge, SIGNAL(requestFailed(int,QVariant,QString)), this, SLOT(nxmRequestFailed(int,QVariant,QString)));
+ connect(&m_NexusBridge, SIGNAL(requestFailed(int,int,QVariant,QString)), this, SLOT(nxmRequestFailed(int,int,QVariant,QString)));
}
@@ -439,7 +439,7 @@ void ModInfoRegular::nxmEndorsementToggled(int, QVariant, QVariant resultData)
}
-void ModInfoRegular::nxmRequestFailed(int, QVariant userData, const QString &errorMessage)
+void ModInfoRegular::nxmRequestFailed(int, int, QVariant userData, const QString &errorMessage)
{
QString fullMessage = errorMessage;
if (userData.canConvert<int>() && (userData.toInt() == 1)) {
diff --git a/src/modinfo.h b/src/modinfo.h
index 677d8a82..83654c7e 100644
--- a/src/modinfo.h
+++ b/src/modinfo.h
@@ -762,7 +762,7 @@ private slots:
void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData);
void nxmEndorsementToggled(int, QVariant userData, QVariant resultData);
- void nxmRequestFailed(int modID, QVariant userData, const QString &errorMessage);
+ void nxmRequestFailed(int modID, int fileID, QVariant userData, const QString &errorMessage);
private:
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp
index 6b87822a..64dd6272 100644
--- a/src/nexusinterface.cpp
+++ b/src/nexusinterface.cpp
@@ -128,12 +128,12 @@ void NexusBridge::nxmEndorsementToggled(int modID, QVariant userData, QVariant r
}
}
-void NexusBridge::nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorMessage)
+void NexusBridge::nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorMessage)
{
std::set<int>::iterator iter = m_RequestIDs.find(requestID);
if (iter != m_RequestIDs.end()) {
m_RequestIDs.erase(iter);
- emit requestFailed(modID, userData, errorMessage);
+ emit requestFailed(modID, fileID, userData, errorMessage);
}
}
@@ -257,8 +257,8 @@ int NexusInterface::requestDescription(int modID, QObject *receiver, QVariant us
connect(this, SIGNAL(nxmDescriptionAvailable(int,QVariant,QVariant,int)),
receiver, SLOT(nxmDescriptionAvailable(int,QVariant,QVariant,int)), Qt::UniqueConnection);
- connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)),
- receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection);
+ connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)),
+ receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection);
nextRequest();
return requestInfo.m_ID;
@@ -273,8 +273,8 @@ int NexusInterface::requestUpdates(const std::vector<int> &modIDs, QObject *rece
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(int,QVariant,int,QString)),
- receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection);
+ connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)),
+ receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection);
nextRequest();
return requestInfo.m_ID;
@@ -307,8 +307,8 @@ int NexusInterface::requestFiles(int modID, QObject *receiver, QVariant userData
connect(this, SIGNAL(nxmFilesAvailable(int,QVariant,QVariant,int)),
receiver, SLOT(nxmFilesAvailable(int,QVariant,QVariant,int)), Qt::UniqueConnection);
- connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)),
- receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection);
+ connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)),
+ receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection);
// QTimer::singleShot(1000, this, SLOT(fakeFiles()));
// static int fID = 42;
@@ -327,8 +327,8 @@ int NexusInterface::requestFileInfo(int modID, int fileID, QObject *receiver, QV
connect(this, SIGNAL(nxmFileInfoAvailable(int,int,QVariant,QVariant,int)),
receiver, SLOT(nxmFileInfoAvailable(int,int,QVariant,QVariant,int)), Qt::UniqueConnection);
- connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)),
- receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection);
+ connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)),
+ receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection);
nextRequest();
return requestInfo.m_ID;
@@ -343,8 +343,8 @@ int NexusInterface::requestDownloadURL(int modID, int fileID, QObject *receiver,
connect(this, SIGNAL(nxmDownloadURLsAvailable(int,int,QVariant,QVariant,int)),
receiver, SLOT(nxmDownloadURLsAvailable(int,int,QVariant,QVariant,int)), Qt::UniqueConnection);
- connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)),
- receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection);
+ connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)),
+ receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection);
nextRequest();
return requestInfo.m_ID;
@@ -360,8 +360,8 @@ int NexusInterface::requestToggleEndorsement(int modID, bool endorse, QObject *r
connect(this, SIGNAL(nxmEndorsementToggled(int,QVariant,QVariant,int)),
receiver, SLOT(nxmEndorsementToggled(int,QVariant,QVariant,int)), Qt::UniqueConnection);
- connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)),
- receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection);
+ connect(this, SIGNAL(nxmRequestFailed(int,int,QVariant,int,QString)),
+ receiver, SLOT(nxmRequestFailed(int,int,QVariant,int,QString)), Qt::UniqueConnection);
nextRequest();
return requestInfo.m_ID;
@@ -437,7 +437,7 @@ void NexusInterface::requestFinished(std::list<NXMRequestInfo>::iterator iter)
if (reply->error() != QNetworkReply::NoError) {
qWarning("request failed: %s", reply->errorString().toUtf8().constData());
- emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, reply->errorString());
+ emit nxmRequestFailed(iter->m_ModID, iter->m_FileID, iter->m_UserData, iter->m_ID, reply->errorString());
} else {
int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
if (statusCode == 301) {
@@ -454,7 +454,7 @@ void NexusInterface::requestFinished(std::list<NXMRequestInfo>::iterator iter)
if (nexusError.length() == 0) {
nexusError = tr("empty response");
}
- emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, nexusError);
+ emit nxmRequestFailed(iter->m_ModID, iter->m_FileID, iter->m_UserData, iter->m_ID, nexusError);
} else {
bool ok;
QVariant result = QtJson::parse(data, ok);
@@ -480,7 +480,7 @@ void NexusInterface::requestFinished(std::list<NXMRequestInfo>::iterator iter)
} break;
}
} else {
- emit nxmRequestFailed(iter->m_ModID, iter->m_UserData, iter->m_ID, tr("invalid response"));
+ emit nxmRequestFailed(iter->m_ModID, iter->m_FileID, iter->m_UserData, iter->m_ID, tr("invalid response"));
}
}
}
diff --git a/src/nexusinterface.h b/src/nexusinterface.h
index e7a01b0f..7b709e1c 100644
--- a/src/nexusinterface.h
+++ b/src/nexusinterface.h
@@ -105,7 +105,7 @@ public slots:
void nxmFileInfoAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
void nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
void nxmEndorsementToggled(int modID, QVariant userData, QVariant resultData, int requestID);
- void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorMessage);
+ void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorMessage);
private:
@@ -240,7 +240,7 @@ signals:
void nxmFileInfoAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
void nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
void nxmEndorsementToggled(int modID, QVariant userData, QVariant resultData, int requestID);
- void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorString);
+ void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorString);
private slots:
@@ -276,13 +276,13 @@ private:
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) {}
+ 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) {}
+ m_Timeout(NULL), m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)), m_URL(url) {}
private:
static QAtomicInt s_NextID;
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index a0045ab3..85137390 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -312,7 +312,6 @@ bool PluginList::readLoadOrder(const QString &fileName)
void PluginList::readEnabledFrom(const QString &fileName)
{
-qDebug("read enabled from %s", qPrintable(fileName));
for (std::vector<ESPInfo>::iterator iter = m_ESPs.begin(); iter != m_ESPs.end(); ++iter) {
if (!iter->m_ForceEnabled) {
iter->m_Enabled = false;
diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp
index 2a9ca893..3a0db83f 100644
--- a/src/selfupdater.cpp
+++ b/src/selfupdater.cpp
@@ -428,7 +428,7 @@ void SelfUpdater::nxmFilesAvailable(int, QVariant userData, QVariant resultData,
}
-void SelfUpdater::nxmRequestFailed(int, QVariant, int requestID, const QString &errorMessage)
+void SelfUpdater::nxmRequestFailed(int, int, QVariant, int requestID, const QString &errorMessage)
{
if (requestID == m_UpdateRequestID) {
m_UpdateRequestID = -1;
diff --git a/src/selfupdater.h b/src/selfupdater.h
index 2c4c1ecd..14f7e90a 100644
--- a/src/selfupdater.h
+++ b/src/selfupdater.h
@@ -87,7 +87,7 @@ public slots:
void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData, int requestID);
void nxmFilesAvailable(int modID, QVariant userData, QVariant resultData, int requestID);
- void nxmRequestFailed(int modID, QVariant userData, int requestID, const QString &errorMessage);
+ void nxmRequestFailed(int modID, int fileID, QVariant userData, int requestID, const QString &errorMessage);
void nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID);
signals: