From c8d8c71460c7e7d403c9dba1addc850a361d3e9c Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 2 Dec 2016 15:18:15 +0100 Subject: Add Copy Files to... context menu Does nothing yet. There's no slot for the actions. --- filewidget.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'filewidget.cpp') diff --git a/filewidget.cpp b/filewidget.cpp index 5e3a1e5..30254d4 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include "filewidget.h" #include "filesorter.h" @@ -39,7 +40,7 @@ #include "globals.h" #include "viewer.h" -FileWidget::FileWidget(QWidget *parent) : QWidget(parent) { +FileWidget::FileWidget(QWidget *parent) : QWidget(parent), mCopyToMenu(0), mCopyToMapper(0) { setupGui(); } @@ -118,6 +119,7 @@ void FileWidget::setupGui(){ } void FileWidget::createActions(){ + mCopyToMenu = new QMenu; mSelDirA = new QAction(QIcon(":/folder.png"), tr("Select Folder..."), this); mSelDirA->setShortcut(tr("CTRL+O")); connect(mSelDirA, SIGNAL(triggered()), this, SLOT(selectDir())); @@ -639,6 +641,24 @@ void FileWidget::keyPressEvent(QKeyEvent *e){ void FileWidget::contextMenuEvent(QContextMenuEvent *e){ QMenu contextMenu(this); + QSettings s; + mCopyToMenu->clear(); + mCopyToMenu->setTitle(tr("Copy Files to...")); + mCopyToMenu->setIcon(QIcon(":/hourglass_figure.png")); + mCopyToMapper->deleteLater(); + mCopyToMapper = new QSignalMapper; + QStringList copyToDirs = s.value("copydirs").toStringList(); + foreach(auto d, copyToDirs){ + QFileInfo di(d); + if(di.exists()){ + QAction *copyA = new QAction(di.fileName(), mCopyToMenu); + connect(copyA, SIGNAL(triggered()), mCopyToMapper, SLOT(map())); + mCopyToMapper->setMapping(copyA, di.absoluteFilePath()); + mCopyToMenu->addAction(copyA); + } + } + contextMenu.addMenu(mCopyToMenu); + contextMenu.addAction(createSeparator()); contextMenu.addActions(actions()); contextMenu.exec(e->globalPos()); } -- cgit v1.2.3-70-g09d2