diff --git a/src/databaseview.cpp b/src/databaseview.cpp index 551ea23..03504a3 100644 --- a/src/databaseview.cpp +++ b/src/databaseview.cpp @@ -9,6 +9,9 @@ #include #include #include +#include +#include +#include #include #include "batchprocessing.h" @@ -263,6 +266,7 @@ void DatabaseTableView::contextMenuEvent(QContextMenuEvent *event) QAction *unmark = menu.addAction(tr("Unmark")); QAction *open = menu.addAction(tr("Open")); QAction *openDirAction = menu.addAction(tr("Open file location")); + QAction *copyPath = menu.addAction(tr("Copy files")); QAction *a = menu.exec(event->globalPos()); if(a == nullptr) @@ -278,6 +282,22 @@ void DatabaseTableView::contextMenuEvent(QContextMenuEvent *event) emit openFile(indexes); else if(a == openDirAction) emit openDir(indexes); + else if(a == copyPath) + { + QStringList paths; + QList urls; + for(auto &index : indexes) + { + QString path = index.siblingAtColumn(0).data().toString(); + paths.append(path); + urls.append(QUrl::fromLocalFile(path)); + } + QMimeData *data = new QMimeData; + data->setUrls(urls); + data->setText(paths.join('\n')); + QClipboard *clipboard = QGuiApplication::clipboard(); + clipboard->setMimeData(data); + } } DataBaseView::DataBaseView(Database *database, QWidget *parent) : QWidget(parent) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index c4da36d..d85be56 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -153,6 +153,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) databaseViewDock->setWidget(m_databaseView); databaseViewDock->setObjectName("databaseViewDock"); databaseViewDock->hide(); + connect(databaseViewDock, &QDockWidget::visibilityChanged, m_databaseView, &DataBaseView::visible); addDockWidget(Qt::BottomDockWidgetArea, databaseViewDock); QDockWidget *filetreeDock = nullptr;