diff options
| author | Silarn <jrim@rimpo.org> | 2018-04-08 03:58:08 -0500 |
|---|---|---|
| committer | Silarn <jrim@rimpo.org> | 2018-04-08 03:58:08 -0500 |
| commit | 0f8852f487cb1f8b993141042da4196db965e038 (patch) | |
| tree | ebbe960383777be45ec57a8ae5842c8b9417e8ad | |
| parent | 7eba6837dd65eb0e5f3b9f71e67e82fe553a56a6 (diff) | |
Also mark hidden downloads as uninstalled; refresh plugins after files
| -rw-r--r-- | src/downloadmanager.cpp | 20 | ||||
| -rw-r--r-- | src/downloadmanager.h | 3 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 6 |
3 files changed, 25 insertions, 4 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 45070885..161656b2 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -918,6 +918,10 @@ void DownloadManager::markInstalled(int index) setState(m_ActiveDownloads.at(index), STATE_INSTALLED);
}
+DownloadManager::DownloadInfo* DownloadManager::getDownloadInfo(QString fileName)
+{
+ return DownloadInfo::createFromMeta(fileName, true);
+}
void DownloadManager::markUninstalled(int index)
{
@@ -933,6 +937,22 @@ void DownloadManager::markUninstalled(int index) }
+void DownloadManager::markUninstalled(QString fileName)
+{
+ int index = indexByName(fileName);
+ if (index >= 0) {
+ markUninstalled(index);
+ } else {
+ DownloadInfo *info = getDownloadInfo(fileName);
+ if (info != nullptr) {
+ QSettings metaFile(info->m_Output.fileName() + ".meta", QSettings::IniFormat);
+ metaFile.setValue("uninstalled", true);
+ setState(info, STATE_UNINSTALLED);
+ }
+ }
+}
+
+
QString DownloadManager::getDownloadFileName(const QString &baseName) const
{
QString fullPath = m_OutputDirectory + "/" + baseName;
diff --git a/src/downloadmanager.h b/src/downloadmanager.h index e63a0113..059c6cb5 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -314,6 +314,8 @@ public: */
void markUninstalled(int index);
+ void markUninstalled(QString download);
+
/**
* @brief refreshes the list of downloads
*/
@@ -431,6 +433,7 @@ private slots: private:
void createMetaFile(DownloadInfo *info);
+ DownloadManager::DownloadInfo* getDownloadInfo(QString fileName);
public:
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d9d83231..48a09718 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1980,6 +1980,7 @@ void MainWindow::directory_refreshed() refreshDataTree();
updateProblemsButton();
statusBar()->hide();
+ m_OrganizerCore.refreshESPList();
}
void MainWindow::modorder_changed()
@@ -2307,10 +2308,7 @@ void MainWindow::removeMod_clicked() void MainWindow::modRemoved(const QString &fileName)
{
if (!fileName.isEmpty() && !QFileInfo(fileName).isAbsolute()) {
- int index = m_OrganizerCore.downloadManager()->indexByName(fileName);
- if (index >= 0) {
- m_OrganizerCore.downloadManager()->markUninstalled(index);
- }
+ m_OrganizerCore.downloadManager()->markUninstalled(fileName);
}
}
|
