From 2db33523a1c8497657963a88f70fe1726cbf8fc9 Mon Sep 17 00:00:00 2001 From: Tannin Date: Wed, 23 Apr 2014 23:59:30 +0200 Subject: - added an option to show meta info on downloads instead of filenames - MO will now cancel if user tries to run MO vfs-injected - when saving the MO ini file it is now written to a tmp file first and then overwritten - updated to link against boost python 1.55 --- src/downloadmanager.cpp | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) (limited to 'src/downloadmanager.cpp') diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 19470825..e79c3ba6 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -110,6 +110,10 @@ DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createFromMeta(con int fileID = metaFile.value("fileID", 0).toInt(); info->m_FileInfo = new ModRepositoryFileInfo(modID, fileID); info->m_FileInfo->name = metaFile.value("name", "").toString(); + if (info->m_FileInfo->name == "0") { + // bug in earlier version + info->m_FileInfo->name = ""; + } info->m_FileInfo->modName = metaFile.value("modName", "").toString(); info->m_FileInfo->modID = modID; info->m_FileInfo->fileID = fileID; @@ -413,8 +417,7 @@ void DownloadManager::startDownload(QNetworkReply *reply, DownloadInfo *newDownl if (!resume) { newDownload->m_PreResumeSize = newDownload->m_Output.size(); - - removePending(newDownload-> m_ModID, newDownload->m_FileID); + removePending(newDownload->m_FileInfo->modID, newDownload->m_FileInfo->fileID); emit aboutToUpdate(); @@ -440,7 +443,6 @@ void DownloadManager::addNXMDownload(const QString &url) } emit aboutToUpdate(); - m_PendingDownloads.append(std::make_pair(nxmInfo.modId(), nxmInfo.fileId())); emit update(-1); @@ -683,7 +685,6 @@ void DownloadManager::queryInfo(int index) } info->m_ReQueried = true; setState(info, STATE_FETCHINGMODINFO); -// m_RequestIDs.insert(m_NexusInterface->requestFiles(info->m_ModID, this, qVariantFromValue(static_cast(info)))); } @@ -715,6 +716,34 @@ QString DownloadManager::getFilePath(int index) const return m_OutputDirectory + "/" + m_ActiveDownloads.at(index)->m_FileName; } +QString DownloadManager::getFileTypeString(int fileType) +{ + switch (fileType) { + case 1: return tr("Main"); + case 2: return tr("Update"); + case 3: return tr("Optional"); + case 4: return tr("Old"); + case 5: return tr("Misc"); + default: return tr("Unknown"); + } +} + +QString DownloadManager::getDisplayName(int index) const +{ + if ((index < 0) || (index >= m_ActiveDownloads.size())) { + throw MyException(tr("invalid index")); + } + + DownloadInfo *info = m_ActiveDownloads.at(index); + + if (!info->m_FileInfo->name.isEmpty()) { + return QString("%1 (%2, v%3)").arg(info->m_FileInfo->name) + .arg(getFileTypeString(info->m_FileInfo->fileCategory)) + .arg(info->m_FileInfo->version.displayString()); + } else { + return info->m_FileName; + } +} QString DownloadManager::getFileName(int index) const { @@ -921,7 +950,6 @@ DownloadManager::DownloadInfo *DownloadManager::findDownload(QObject *reply, int void DownloadManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) { -qDebug("progress: %ldd / %ldd", bytesReceived, bytesTotal); if (bytesTotal == 0) { return; } -- cgit v1.3.1