From 31bf15f3b43e52a9e9090b8e71191c81be084ba6 Mon Sep 17 00:00:00 2001 From: Silarn Date: Mon, 23 Apr 2018 22:12:46 -0700 Subject: Need to check if the file is in the download directory for creating meta --- src/downloadmanager.cpp | 9 +++++---- src/downloadmanager.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 3d88e803..aec2ad85 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -74,12 +74,13 @@ DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createNew(const Mo return info; } -DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createFromMeta(const QString &filePath, bool showHidden) +DownloadManager::DownloadInfo *DownloadManager::DownloadInfo::createFromMeta(const QString &filePath, bool showHidden, const QString outputDirectory) { DownloadInfo *info = new DownloadInfo; QString metaFileName = filePath + ".meta"; - if (!QFile(metaFileName).exists()) return nullptr; + QFileInfo metaFileInfo(metaFileName); + if (QDir::fromNativeSeparators(metaFileInfo.path()).compare(QDir::fromNativeSeparators(outputDirectory), Qt::CaseInsensitive) != 0) return nullptr; QSettings metaFile(metaFileName, QSettings::IniFormat); if (!showHidden && metaFile.value("removed", false).toBool()) { return nullptr; @@ -322,7 +323,7 @@ void DownloadManager::refreshList() QString fileName = QDir::fromNativeSeparators(m_OutputDirectory) + "/" + file; - DownloadInfo *info = DownloadInfo::createFromMeta(fileName, m_ShowHidden); + DownloadInfo *info = DownloadInfo::createFromMeta(fileName, m_ShowHidden, m_OutputDirectory); if (info != nullptr) { m_ActiveDownloads.push_front(info); } @@ -945,7 +946,7 @@ void DownloadManager::markInstalled(QString fileName) DownloadManager::DownloadInfo* DownloadManager::getDownloadInfo(QString fileName) { - return DownloadInfo::createFromMeta(fileName, true); + return DownloadInfo::createFromMeta(fileName, true, m_OutputDirectory); } void DownloadManager::markUninstalled(int index) diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 780aeb5c..308d365b 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -93,7 +93,7 @@ private: bool m_Hidden; static DownloadInfo *createNew(const MOBase::ModRepositoryFileInfo *fileInfo, const QStringList &URLs); - static DownloadInfo *createFromMeta(const QString &filePath, bool showHidden); + static DownloadInfo *createFromMeta(const QString &filePath, bool showHidden, const QString outputDirectory); /** * @brief rename the file -- cgit v1.3.1