summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-12-02 15:18:15 +0100
committerArno <arno@disconnect.de>2016-12-02 15:18:15 +0100
commitc8d8c71460c7e7d403c9dba1addc850a361d3e9c (patch)
tree7e67e1db1bcc7e50a89fb0d2ccb2512193e303de
parentfad8bc514580428a1d62368162d75abf3272d04b (diff)
downloadShemovCleaner-c8d8c71460c7e7d403c9dba1addc850a361d3e9c.tar.gz
ShemovCleaner-c8d8c71460c7e7d403c9dba1addc850a361d3e9c.tar.bz2
ShemovCleaner-c8d8c71460c7e7d403c9dba1addc850a361d3e9c.zip
Add Copy Files to... context menu
Does nothing yet. There's no slot for the actions.
-rw-r--r--filewidget.cpp22
-rw-r--r--filewidget.h4
2 files changed, 25 insertions, 1 deletions
diff --git a/filewidget.cpp b/filewidget.cpp
index 5e3a1e5..30254d4 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -30,6 +30,7 @@
#include <QClipboard>
#include <QApplication>
#include <QContextMenuEvent>
+#include <QSignalMapper>
#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());
}
diff --git a/filewidget.h b/filewidget.h
index 504ea37..296944e 100644
--- a/filewidget.h
+++ b/filewidget.h
@@ -20,6 +20,8 @@ class QMimeData;
class VideoSorter;
class FileDisplay;
class OriginDialog;
+class QMenu;
+class QSignalMapper;
class FileWidget : public QWidget {
Q_OBJECT
@@ -84,6 +86,8 @@ class FileWidget : public QWidget {
QStandardItemModel *mModel;
QTreeView *mFileView;
QMenuBar *mMenuBar;
+ QMenu *mCopyToMenu;
+ QSignalMapper *mCopyToMapper;
QToolBar *mToolBar;
QProgressBar *mProgressBar;
QString mLastDir;