diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2020-08-21 01:27:50 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-21 01:27:50 -0400 |
| commit | a4043bab8cfa58e1bb8c2adcb686b7358932cdb6 (patch) | |
| tree | 4ae86580a64d484411c009759e9e7bfff1fcefb2 /src | |
| parent | 9e3793c194c4e8570cb23470b931cfb9221ae2ec (diff) | |
| parent | 321b1facdcb6ddc0a1e2b4ce6cdf4cc9ebe6c18b (diff) | |
Merge pull request #1201 from erri120/open-meta
Open Meta file from downloads list
Diffstat (limited to 'src')
| -rw-r--r-- | src/downloadlistwidget.cpp | 5 | ||||
| -rw-r--r-- | src/downloadlistwidget.h | 2 | ||||
| -rw-r--r-- | src/downloadmanager.cpp | 27 | ||||
| -rw-r--r-- | src/downloadmanager.h | 2 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 1 |
5 files changed, 37 insertions, 0 deletions
diff --git a/src/downloadlistwidget.cpp b/src/downloadlistwidget.cpp index 2fddd16f..1bb13779 100644 --- a/src/downloadlistwidget.cpp +++ b/src/downloadlistwidget.cpp @@ -221,6 +221,7 @@ void DownloadListWidget::onCustomContextMenu(const QPoint &point) else
menu.addAction(tr("Visit on Nexus"), this, SLOT(issueVisitOnNexus()));
menu.addAction(tr("Open File"), this, SLOT(issueOpenFile()));
+ menu.addAction(tr("Open Meta File"), this, SLOT(issueOpenMetaFile()));
menu.addAction(tr("Reveal in Explorer"), this, SLOT(issueOpenInDownloadsFolder()));
menu.addSeparator();
@@ -315,6 +316,10 @@ void DownloadListWidget::issueOpenFile() emit openFile(m_ContextRow);
}
+void DownloadListWidget::issueOpenMetaFile() {
+ emit openMetaFile(m_ContextRow);
+}
+
void DownloadListWidget::issueOpenInDownloadsFolder()
{
emit openInDownloadsFolder(m_ContextRow);
diff --git a/src/downloadlistwidget.h b/src/downloadlistwidget.h index ad07b0f1..784bd275 100644 --- a/src/downloadlistwidget.h +++ b/src/downloadlistwidget.h @@ -86,6 +86,7 @@ signals: void resumeDownload(int index);
void visitOnNexus(int index);
void openFile(int index);
+ void openMetaFile(int index);
void openInDownloadsFolder(int index);
private slots:
@@ -99,6 +100,7 @@ private slots: void issueRestoreToViewAll();
void issueVisitOnNexus();
void issueOpenFile();
+ void issueOpenMetaFile();
void issueOpenInDownloadsFolder();
void issueCancel();
void issuePause();
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 4defd96b..3e6010db 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -1091,6 +1091,33 @@ void DownloadManager::openFile(int index) return; } +void DownloadManager::openMetaFile(int index) { + if (index < 0 || index >= m_ActiveDownloads.size()) { + log::error("OpenMetaFile: invalid download index {}", index); + return; + } + + const auto path = QDir(m_OutputDirectory); + const auto filePath = getFilePath(index); + const auto metaPath = filePath + ".meta"; + + if (path.exists(metaPath)) { + shell::Open(metaPath); + return; + } + else { + QSettings metaFile(metaPath, QSettings::IniFormat); + metaFile.setValue("removed", false); + } + + if (path.exists(metaPath)) { + shell::Open(metaPath); + return; + } + + shell::Explore(filePath); +} + void DownloadManager::openInDownloadsFolder(int index) { if ((index < 0) || (index >= m_ActiveDownloads.size())) { diff --git a/src/downloadmanager.h b/src/downloadmanager.h index c837f006..90def927 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -453,6 +453,8 @@ public slots: void openFile(int index); + void openMetaFile(int index); + void openInDownloadsFolder(int index); void nxmDescriptionAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 55e0a593..dc8e6141 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -5360,6 +5360,7 @@ void MainWindow::initDownloadView() connect(ui->downloadView, SIGNAL(queryInfoMd5(int)), m_OrganizerCore.downloadManager(), SLOT(queryInfoMd5(int))); connect(ui->downloadView, SIGNAL(visitOnNexus(int)), m_OrganizerCore.downloadManager(), SLOT(visitOnNexus(int))); connect(ui->downloadView, SIGNAL(openFile(int)), m_OrganizerCore.downloadManager(), SLOT(openFile(int))); + connect(ui->downloadView, SIGNAL(openMetaFile(int)), m_OrganizerCore.downloadManager(), SLOT(openMetaFile(int))); connect(ui->downloadView, SIGNAL(openInDownloadsFolder(int)), m_OrganizerCore.downloadManager(), SLOT(openInDownloadsFolder(int))); connect(ui->downloadView, SIGNAL(removeDownload(int, bool)), m_OrganizerCore.downloadManager(), SLOT(removeDownload(int, bool))); connect(ui->downloadView, SIGNAL(restoreDownload(int)), m_OrganizerCore.downloadManager(), SLOT(restoreDownload(int))); |
