summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2013-05-17 20:44:40 +0200
committerTannin <devnull@localhost>2013-05-17 20:44:40 +0200
commit45f6cd21a2c730b9dea322b0dba30120cdc40521 (patch)
treeb7e25a9265dc825107e846d8dd098113e0350f2f /src
parentfc3753dcc5b7d55bf99674e7d17962f477053921 (diff)
- extended plugin interface to allow plugins access to download manager
- extended plugin interface to allow installation of mods from files - improved detection of online state - download tab now also displays files supported through plugins - batch installer now has basic functionality (downloads and installes files)
Diffstat (limited to 'src')
-rw-r--r--src/downloadmanager.cpp49
-rw-r--r--src/downloadmanager.h33
-rw-r--r--src/installationmanager.cpp1
-rw-r--r--src/mainwindow.cpp18
-rw-r--r--src/mainwindow.h3
-rw-r--r--src/modinfo.cpp10
-rw-r--r--src/modinfo.h14
-rw-r--r--src/modinfodialog.cpp16
-rw-r--r--src/nexusinterface.cpp49
-rw-r--r--src/nexusinterface.h6
10 files changed, 138 insertions, 61 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index 69edc625..aa6ba12b 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -137,7 +137,7 @@ QString DownloadManager::DownloadInfo::currentURL()
DownloadManager::DownloadManager(NexusInterface *nexusInterface, QObject *parent)
- : QObject(parent), m_NexusInterface(nexusInterface), m_DirWatcher()
+ : IDownloadManager(parent), m_NexusInterface(nexusInterface), m_DirWatcher()
{
connect(&m_DirWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(directoryChanged(QString)));
}
@@ -173,6 +173,12 @@ void DownloadManager::setOutputDirectory(const QString &outputDirectory)
refreshList();
}
+void DownloadManager::setSupportedExtensions(const QStringList &extensions)
+{
+ m_SupportedExtensions = extensions;
+ refreshList();
+}
+
void DownloadManager::refreshList()
{
// remove finished downloads
@@ -185,11 +191,11 @@ void DownloadManager::refreshList()
}
}
- QStringList nameFilters;
- nameFilters.append("*.rar");
- nameFilters.append("*.zip");
- nameFilters.append("*.7z");
- nameFilters.append("*.fomod");
+ QStringList nameFilters(m_SupportedExtensions);
+ foreach (const QString &extension, m_SupportedExtensions) {
+ nameFilters.append("*." + extension);
+ }
+
nameFilters.append(QString("*").append(UNFINISHED));
QDir dir(QDir::fromNativeSeparators(m_OutputDirectory));
@@ -328,7 +334,7 @@ void DownloadManager::removeFile(int index, bool deleteFile)
}
if (deleteFile) {
- if (!QFile(filePath).remove()) {
+ if (!shellDelete(QStringList(filePath), NULL)) {
reportError(tr("failed to delete %1").arg(filePath));
return;
}
@@ -419,7 +425,6 @@ void DownloadManager::cancelDownload(int index)
if (m_ActiveDownloads.at(index)->m_State == STATE_DOWNLOADING) {
setState(m_ActiveDownloads.at(index), STATE_CANCELING);
- qDebug("canceled %d - %s", index, m_ActiveDownloads[index]->m_FileName.toUtf8().constData());
}
}
@@ -622,7 +627,6 @@ QString DownloadManager::getFileNameFromNetworkReply(QNetworkReply *reply)
void DownloadManager::setState(DownloadManager::DownloadInfo *info, DownloadManager::DownloadState state)
{
- qDebug("change state of %s %d -> %d", qPrintable(info->m_FileName), info->m_State, state);
info->m_State = state;
switch (state) {
case STATE_PAUSED:
@@ -640,6 +644,12 @@ void DownloadManager::setState(DownloadManager::DownloadInfo *info, DownloadMana
} break;
case STATE_READY: {
createMetaFile(info);
+ for (int i = 0; i < m_ActiveDownloads.size(); ++i) {
+ if (m_ActiveDownloads[i] == info) {
+ emit downloadComplete(i);
+ return;
+ }
+ }
} break;
default: /* NOP */ break;
}
@@ -861,6 +871,23 @@ bool DownloadManager::ServerByPreference(const QVariant &LHS, const QVariant &RH
return LHSUsers < RHSUsers;
}
+int DownloadManager::startDownloadURLs(const QStringList &urls)
+{
+ addDownload(urls, -1);
+ return m_ActiveDownloads.size() - 1;
+}
+
+int DownloadManager::startDownloadNexusFile(int modID, int fileID)
+{
+ int newID = m_ActiveDownloads.size();
+ addNXMDownload(QString("nxm://%1/mods/%2/files/%3").arg(ToQString(MOShared::GameInfo::instance().getGameName())).arg(modID).arg(fileID));
+ return newID;
+}
+
+QString DownloadManager::downloadPath(int id)
+{
+ return getFilePath(id);
+}
void DownloadManager::nxmDownloadURLsAvailable(int modID, int fileID, QVariant userData, QVariant resultData, int requestID)
{
@@ -935,7 +962,7 @@ void DownloadManager::downloadFinished()
if ((info->m_State != STATE_CANCELING) &&
(info->m_State != STATE_PAUSING)) {
if ((info->m_Output.size() == 0) ||
- (reply->error() != QNetworkReply::NoError) ||
+ ((reply->error() != QNetworkReply::NoError) && (reply->error() != QNetworkReply::OperationCanceledError)) ||
reply->header(QNetworkRequest::ContentTypeHeader).toString().startsWith("text", Qt::CaseInsensitive)) {
if (info->m_Tries == 0) {
emit showMessage(tr("Download failed: %1 (%2)").arg(reply->errorString()).arg(reply->error()));
@@ -983,7 +1010,7 @@ void DownloadManager::downloadFinished()
reply->close();
reply->deleteLater();
- if (info->m_Tries > 0) {
+ if ((info->m_Tries > 0) && error) {
--info->m_Tries;
resumeDownload(index);
}
diff --git a/src/downloadmanager.h b/src/downloadmanager.h
index 407acd3c..46e852aa 100644
--- a/src/downloadmanager.h
+++ b/src/downloadmanager.h
@@ -21,6 +21,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#define DOWNLOADMANAGER_H
#include "nexusinterface.h"
+#include <idownloadmanager.h>
#include <set>
#include <QObject>
#include <QUrl>
@@ -52,7 +53,7 @@ Q_DECLARE_METATYPE(NexusInfo)
/*!
* \brief manages downloading of files and provides progress information for gui elements
**/
-class DownloadManager : public QObject
+class DownloadManager : public MOBase::IDownloadManager
{
Q_OBJECT
@@ -145,15 +146,10 @@ public:
QString getOutputDirectory() const { return m_OutputDirectory; }
/**
- * @brief start a download from a url
- *
- * @param url the url to download from
- * @param modID the nexus mod id this download belongs to
- * @param fileID the nexus file id this download belongs to, if known. Defaults to 0.
- * @param nexusInfo information previously retrieved from the nexus network
- * @return true if the download was started, false if it wasn't. The latter currently only happens if there is a duplicate and the user decides not to download again
- **/
- bool addDownload(const QStringList &URLs, int modID, int fileID = 0, const NexusInfo &nexusInfo = NexusInfo());
+ * @brief set the list of supported extensions
+ * @param extensions list of supported extensions
+ */
+ void setSupportedExtensions(const QStringList &extensions);
/**
* @brief download from an already open network connection
@@ -263,6 +259,11 @@ public:
*/
static bool ServerByPreference(const QVariant &LHS, const QVariant &RHS);
+
+ virtual int startDownloadURLs(const QStringList &urls);
+ virtual int startDownloadNexusFile(int modID, int fileID);
+ virtual QString downloadPath(int id);
+
signals:
void aboutToUpdate();
@@ -330,6 +331,17 @@ private:
void startDownload(QNetworkReply *reply, DownloadInfo *newDownload, bool resume);
+ /**
+ * @brief start a download from a url
+ *
+ * @param url the url to download from
+ * @param modID the nexus mod id this download belongs to
+ * @param fileID the nexus file id this download belongs to, if known. Defaults to 0.
+ * @param nexusInfo information previously retrieved from the nexus network
+ * @return true if the download was started, false if it wasn't. The latter currently only happens if there is a duplicate and the user decides not to download again
+ **/
+ bool addDownload(const QStringList &URLs, int modID, int fileID = 0, const NexusInfo &nexusInfo = NexusInfo());
+
// important: the caller has to lock the list-mutex, otherwise the DownloadInfo-pointer might get invalidated at any time
DownloadInfo *findDownload(QObject *reply, int *index = NULL) const;
@@ -353,6 +365,7 @@ private:
QVector<DownloadInfo*> m_ActiveDownloads;
QString m_OutputDirectory;
+ QStringList m_SupportedExtensions;
std::set<int> m_RequestIDs;
QVector<int> m_AlphabeticalTranslation;
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp
index 52ef01c1..5db8877d 100644
--- a/src/installationmanager.cpp
+++ b/src/installationmanager.cpp
@@ -706,7 +706,6 @@ bool InstallationManager::install(const QString &fileName, const QString &modsDi
QString version = "";
QString newestVersion = "";
int categoryID = 0;
-// bool nameGuessed = false;
QString metaName = fileName.mid(0).append(".meta");
if (QFile(metaName).exists()) {
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index e7e9f856..89dc9904 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -106,10 +106,17 @@ static bool isOnline()
QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
bool connected = false;
- for (auto iter = interfaces.begin(); iter != interfaces.end(); ++iter) {
+ for (auto iter = interfaces.begin(); iter != interfaces.end() && !connected; ++iter) {
if ( (iter->flags() & QNetworkInterface::IsUp) &&
(iter->flags() & QNetworkInterface::IsRunning) &&
!(iter->flags() & QNetworkInterface::IsLoopBack)) {
+ auto addresses = iter->addressEntries();
+ if (addresses.count() == 0) {
+ continue;
+ }
+ qDebug("interface %s seems to be up (address: %s)",
+ qPrintable(iter->humanReadableName()),
+ qPrintable(addresses[0].ip().toString()));
connected = true;
}
}
@@ -996,6 +1003,8 @@ void MainWindow::loadPlugins()
}
}
}
+
+ m_DownloadManager.setSupportedExtensions(m_InstallationManager.getSupportedExtensions());
}
IGameInfo &MainWindow::gameInfo() const
@@ -1818,6 +1827,7 @@ void MainWindow::on_tabWidget_currentChanged(int index)
void MainWindow::installMod(const QString &fileName)
{
+qDebug("install %s", qPrintable(fileName));
bool hasIniTweaks = false;
GuessedValue<QString> modName;
m_CurrentProfile->writeModlistNow();
@@ -1847,6 +1857,11 @@ void MainWindow::installMod(const QString &fileName)
}
}
+IDownloadManager *MainWindow::downloadManager()
+{
+ return &m_DownloadManager;
+}
+
void MainWindow::installMod()
{
@@ -3020,6 +3035,7 @@ void MainWindow::exportModListCSV()
fields.push_back(std::make_pair(QString("mod_installed_name"), CSVBuilder::TYPE_STRING));
fields.push_back(std::make_pair(QString("mod_version"), CSVBuilder::TYPE_STRING));
fields.push_back(std::make_pair(QString("file_installed_name"), CSVBuilder::TYPE_STRING));
+// fields.push_back(std::make_pair(QString("file_category"), CSVBuilder::TYPE_INTEGER));
builder.setFields(fields);
builder.writeHeader();
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 3f2b92a6..24cdb91e 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -105,6 +105,8 @@ public:
virtual void modDataChanged(MOBase::IModInterface *mod);
virtual QVariant pluginSetting(const QString &pluginName, const QString &key) const;
virtual QString pluginDataPath() const;
+ virtual void installMod(const QString &fileName);
+ virtual MOBase::IDownloadManager *downloadManager();
void addPrimaryCategoryCandidates(QMenu *primaryCategoryMenu, ModInfo::Ptr info);
@@ -177,7 +179,6 @@ private:
void refreshDirectoryStructure();
bool refreshProfiles(bool selectProfile = true);
void refreshExecutablesList();
- void installMod(const QString &fileName);
void installMod();
bool modifyExecutablesDialog();
void displayModInformation(ModInfo::Ptr modInfo, unsigned int index, int tab);
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index 2ac7182b..bc475b92 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -327,7 +327,7 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc
for (int i = 0; i < numNexusFiles; ++i) {
metaFile.setArrayIndex(i);
QString infoString = metaFile.value("info", "").toString();
- ModRepositoryFileInfo *info = new ModRepositoryFileInfo(infoString, this);
+ ModRepositoryFileInfo info(infoString);
m_NexusFileInfos.push_back(info);
}
metaFile.endArray();
@@ -351,7 +351,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(filesAvailable(int,QVariant,const QList<ModRepositoryFileInfo*>&)), this, SLOT(nxmFilesAvailable(int,QVariant,QList<ModRepositoryFileInfo*>)));
+ connect(&m_NexusBridge, SIGNAL(filesAvailable(int,QVariant,const QList<ModRepositoryFileInfo>&)), this, SLOT(nxmFilesAvailable(int,QVariant,QList<ModRepositoryFileInfo>)));
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)));
}
@@ -393,7 +393,7 @@ void ModInfoRegular::saveMeta()
metaFile.beginWriteArray("nexusFiles");
for (int i = 0; i < m_NexusFileInfos.size(); ++i) {
metaFile.setArrayIndex(i);
- metaFile.setValue("info", m_NexusFileInfos.at(i)->toString());
+ metaFile.setValue("info", m_NexusFileInfos.at(i).toString());
}
metaFile.endArray();
} else {
@@ -425,7 +425,7 @@ void ModInfoRegular::nxmDescriptionAvailable(int, QVariant, QVariant resultData)
}
-void ModInfoRegular::nxmFilesAvailable(int, QVariant, const QList<ModRepositoryFileInfo*> &resultData)
+void ModInfoRegular::nxmFilesAvailable(int, QVariant, const QList<ModRepositoryFileInfo> &resultData)
{
m_NexusFileInfos = resultData;
m_LastNexusQuery = QDateTime::currentDateTime();
@@ -653,7 +653,7 @@ QString ModInfoRegular::notes() const
return m_Notes;
}
-void ModInfoRegular::getNexusFiles(QList<ModRepositoryFileInfo*>::const_iterator &begin, QList<ModRepositoryFileInfo*>::const_iterator &end)
+void ModInfoRegular::getNexusFiles(QList<ModRepositoryFileInfo>::const_iterator &begin, QList<ModRepositoryFileInfo>::const_iterator &end)
{
begin = m_NexusFileInfos.begin();
end = m_NexusFileInfos.end();
diff --git a/src/modinfo.h b/src/modinfo.h
index 92752e4b..e08ef8b6 100644
--- a/src/modinfo.h
+++ b/src/modinfo.h
@@ -374,8 +374,8 @@ public:
* @param begin iterator to the first file
* @param end iterator to one past the last file
*/
- virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo*>::const_iterator &begin,
- QList<MOBase::ModRepositoryFileInfo*>::const_iterator &end) = 0;
+ virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo>::const_iterator &begin,
+ QList<MOBase::ModRepositoryFileInfo>::const_iterator &end) = 0;
/**
* @return nexus description of the mod (html)
@@ -686,7 +686,7 @@ public:
* @param begin iterator to the first file
* @param end iterator to one past the last file
*/
- virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo*>::const_iterator &begin, QList<MOBase::ModRepositoryFileInfo*>::const_iterator &end);
+ virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo>::const_iterator &begin, QList<MOBase::ModRepositoryFileInfo>::const_iterator &end);
/**
* @return nexus description of the mod (html)
@@ -721,7 +721,7 @@ private:
private slots:
void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData);
- void nxmFilesAvailable(int, QVariant, const QList<ModRepositoryFileInfo*> &resultData);
+ void nxmFilesAvailable(int, QVariant, const QList<ModRepositoryFileInfo> &resultData);
void nxmEndorsementToggled(int, QVariant userData, QVariant resultData);
void nxmRequestFailed(int modID, QVariant userData, const QString &errorMessage);
@@ -748,7 +748,7 @@ private:
QString m_InstallationFile;
QString m_Notes;
QString m_NexusDescription;
- QList<MOBase::ModRepositoryFileInfo*> m_NexusFileInfos;
+ QList<MOBase::ModRepositoryFileInfo> m_NexusFileInfos;
QDateTime m_LastNexusQuery;
@@ -828,8 +828,8 @@ public:
virtual int getHighlight() const;
virtual QString getDescription() const;
virtual QDateTime getLastNexusQuery() const { return QDateTime(); }
- virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo*>::const_iterator&,
- QList<MOBase::ModRepositoryFileInfo*>::const_iterator&) {}
+ virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo>::const_iterator&,
+ QList<MOBase::ModRepositoryFileInfo>::const_iterator&) {}
virtual QString getNexusDescription() const { return QString(); }
private:
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index d1c37263..be3052af 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -781,21 +781,21 @@ void ModInfoDialog::modDetailsUpdated(bool success)
// prevent sorting while we change the table
filesWidget->setSortingEnabled(false);
int row = 0;
- QList<ModRepositoryFileInfo*>::const_iterator current, end;
+ QList<ModRepositoryFileInfo>::const_iterator current, end;
m_ModInfo->getNexusFiles(current, end);
for (; current != end; ++current) {
- ModRepositoryFileInfo *fileInfo = *current;
+ const ModRepositoryFileInfo &fileInfo = *current;
filesWidget->insertRow(row);
- int type = fileInfo->categoryID;
+ int type = fileInfo.categoryID;
filesWidget->setItem(row, 4, new QTableWidgetItem(QString("%1").arg(type)));
filesWidget->setItem(row, 0, new QTableWidgetItem(getFileCategory(type)));
- QTableWidgetItem *nameItem = new QTableWidgetItem(fileInfo->name);
- nameItem->setToolTip(fileInfo->description);
- nameItem->setData(Qt::UserRole, fileInfo->fileID);
+ QTableWidgetItem *nameItem = new QTableWidgetItem(fileInfo.name);
+ nameItem->setToolTip(fileInfo.description);
+ nameItem->setData(Qt::UserRole, fileInfo.fileID);
filesWidget->setItem(row, 1, nameItem);
- filesWidget->setItem(row, 2, new QTableWidgetItem(fileInfo->version.canonicalString()));
+ filesWidget->setItem(row, 2, new QTableWidgetItem(fileInfo.version.canonicalString()));
QTableWidgetItem *sizeItem = new QTableWidgetItem();
- sizeItem->setData(Qt::DisplayRole, fileInfo->fileSize);
+ sizeItem->setData(Qt::DisplayRole, fileInfo.fileSize);
filesWidget->setItem(row, 3, sizeItem);
++row;
}
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp
index 56752ca5..f9deb569 100644
--- a/src/nexusinterface.cpp
+++ b/src/nexusinterface.cpp
@@ -45,6 +45,7 @@ void NexusBridge::requestDescription(int modID, QVariant userData)
void NexusBridge::requestFiles(int modID, QVariant userData)
{
+qDebug("request file %d", modID);
m_RequestIDs.insert(m_Interface->requestFiles(modID, this, userData, m_Url));
}
@@ -78,24 +79,23 @@ void NexusBridge::nxmFilesAvailable(int modID, QVariant userData, QVariant resul
if (iter != m_RequestIDs.end()) {
m_RequestIDs.erase(iter);
- QList<ModRepositoryFileInfo*> fileInfoList;
+ QList<ModRepositoryFileInfo> fileInfoList;
QVariantList resultList = resultData.toList();
foreach(QVariant file, resultList) {
- ModRepositoryFileInfo *temp = new ModRepositoryFileInfo(NULL);
+ ModRepositoryFileInfo temp;
QVariantMap fileInfo = file.toMap();
- temp->uri = fileInfo["uri"].toString();
- temp->name = fileInfo["name"].toString();
- temp->description = fileInfo["description"].toString();
- temp->version = VersionInfo(fileInfo["version"].toString());
- temp->categoryID = fileInfo["category_id"].toInt();
- temp->fileID = fileInfo["id"].toInt();
- temp->fileSize = fileInfo["size"].toInt();
+ temp.uri = fileInfo["uri"].toString();
+ temp.name = fileInfo["name"].toString();
+ temp.description = fileInfo["description"].toString();
+ temp.version = VersionInfo(fileInfo["version"].toString());
+ temp.categoryID = fileInfo["category_id"].toInt();
+ temp.fileID = fileInfo["id"].toInt();
+ temp.fileSize = fileInfo["size"].toInt();
fileInfoList.append(temp);
}
- emit bla(userData.toString());
emit filesAvailable(modID, userData, fileInfoList);
}
}
@@ -114,7 +114,7 @@ void NexusBridge::nxmDownloadURLsAvailable(int modID, int fileID, QVariant userD
std::set<int>::iterator iter = m_RequestIDs.find(requestID);
if (iter != m_RequestIDs.end()) {
m_RequestIDs.erase(iter);
- //emit downloadURLsAvailable(modID, fileID, userData, resultData);
+ emit downloadURLsAvailable(modID, fileID, userData, resultData);
}
}
@@ -123,7 +123,7 @@ void NexusBridge::nxmEndorsementToggled(int modID, QVariant userData, QVariant r
std::set<int>::iterator iter = m_RequestIDs.find(requestID);
if (iter != m_RequestIDs.end()) {
m_RequestIDs.erase(iter);
- //emit endorsementToggled(modID, userData, resultData);
+ emit endorsementToggled(modID, userData, resultData);
}
}
@@ -132,7 +132,7 @@ void NexusBridge::nxmRequestFailed(int modID, QVariant userData, int requestID,
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, userData, errorMessage);
}
}
@@ -265,6 +265,25 @@ int NexusInterface::requestUpdates(const std::vector<int> &modIDs, QObject *rece
}
+void NexusInterface::fakeFiles()
+{
+ static int id = 42;
+
+ QVariantList result;
+ QVariantMap fileMap;
+ fileMap["uri"] = "fakeURI";
+ fileMap["name"] = "fakeName";
+ fileMap["description"] = "fakeDescription";
+ fileMap["version"] = "1.0.0";
+ fileMap["category_id"] = "1";
+ fileMap["id"] = "1";
+ fileMap["size"] = "512";
+ result.append(fileMap);
+
+ emit nxmFilesAvailable(1234, "fake", result, id++);
+}
+
+
int NexusInterface::requestFiles(int modID, QObject *receiver, QVariant userData, const QString &url)
{
NXMRequestInfo requestInfo(modID, NXMRequestInfo::TYPE_FILES, userData, url);
@@ -275,6 +294,10 @@ int NexusInterface::requestFiles(int modID, QObject *receiver, QVariant userData
connect(this, SIGNAL(nxmRequestFailed(int,QVariant,int,QString)),
receiver, SLOT(nxmRequestFailed(int,QVariant,int,QString)), Qt::UniqueConnection);
+// QTimer::singleShot(1000, this, SLOT(fakeFiles()));
+// static int fID = 42;
+// return fID++;
+
nextRequest();
return requestInfo.m_ID;
}
diff --git a/src/nexusinterface.h b/src/nexusinterface.h
index cb455e93..d69275e1 100644
--- a/src/nexusinterface.h
+++ b/src/nexusinterface.h
@@ -107,10 +107,6 @@ signals:
void endorsementToggled(int modID, QVariant userData, QVariant resultData);
void requestFailed(int modID, QVariant userData, const QString &errorMessage);*/
-signals:
-
- void bla(QString userData);
-
public slots:
void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData, int requestID);
@@ -263,6 +259,8 @@ private slots:
void downloadRequestedNXM(const QString &url);
+ void fakeFiles();
+
private:
struct NXMRequestInfo {