From 45f6cd21a2c730b9dea322b0dba30120cdc40521 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 17 May 2013 20:44:40 +0200 Subject: - 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) --- src/nexusinterface.cpp | 49 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 13 deletions(-) (limited to 'src/nexusinterface.cpp') 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 fileInfoList; + QList 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::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::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::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 &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; } -- cgit v1.3.1