summaryrefslogtreecommitdiffstats
path: root/shemov.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-12-21 19:12:40 +0100
committerArno <am@disconnect.de>2010-12-21 19:12:40 +0100
commitf3d62ad86a1def4d11d132af7366874f43a438b9 (patch)
treefd46290dfc6da30be98b9bfe7d4566a7f4785312 /shemov.cpp
parent8abf0a7882dbd1c80e24e5d01b79cd1cf60925e2 (diff)
downloadSheMov-f3d62ad86a1def4d11d132af7366874f43a438b9.tar.gz
SheMov-f3d62ad86a1def4d11d132af7366874f43a438b9.tar.bz2
SheMov-f3d62ad86a1def4d11d132af7366874f43a438b9.zip
Fix copy, cut and paste files
Make this options in the context and edit menu of FilesystemWidget behave a lot more as expected. Copy and cut just copies the file names to the clipboard, and paste paste moves them if they were cut and copies them when the action was copy. Still need to fix the colors when something is marked somehow. Should be configurable :)
Diffstat (limited to 'shemov.cpp')
-rw-r--r--shemov.cpp37
1 files changed, 26 insertions, 11 deletions
diff --git a/shemov.cpp b/shemov.cpp
index e63b93b..79712dd 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -332,12 +332,19 @@ void SheMov::createActions(){
mDeleteFilesA = new QAction(tr("Delete selected..."), this);
mDeleteFilesA->setShortcut(tr("CTRL+d"));
connect(mDeleteFilesA, SIGNAL(triggered()), mFSWidget, SLOT(deleteFiles()));
- mCopyA = new QAction(tr("Copy file(s)..."), this);
- mCopyA->setShortcut(tr("CTRL+v"));
- connect(mCopyA, SIGNAL(triggered()), mFSWidget, SLOT(copyFiles()));
- mMoveA = new QAction(tr("Move file(s)..."), this);
- mMoveA->setShortcut(tr("CTRL+m"));
- connect(mMoveA, SIGNAL(triggered()), mFSWidget, SLOT(moveFiles()));
+ QSignalMapper *copyCutMapper = new QSignalMapper(this);
+ mCopyA = new QAction(tr("Copy"), this);
+ mCopyA->setShortcut(tr("CTRL+c"));
+ copyCutMapper->setMapping(mCopyA, FilesystemWidget::Copy);
+ connect(mCopyA, SIGNAL(triggered()), copyCutMapper, SLOT(map()));
+ mCutA = new QAction(tr("Cut"), this);
+ mCutA->setShortcut(tr("CTRL+x"));
+ copyCutMapper->setMapping(mCutA, FilesystemWidget::Cut);
+ connect(mCutA, SIGNAL(triggered()), copyCutMapper, SLOT(map()));
+ connect(copyCutMapper, SIGNAL(mapped(int)), mFSWidget, SLOT(toClipboard(int)));
+ mPasteA = new QAction(tr("Paste"), this);
+ mPasteA->setShortcut(tr("Ctrl+v"));
+ connect(mPasteA, SIGNAL(triggered()), mFSWidget, SLOT(fromClipboard()));
mRenameA = new QAction(tr("Rename..."), this);
mRenameA->setShortcut(tr("CTRL+r"));
connect(mRenameA, SIGNAL(triggered()), mFSWidget, SLOT(renameFile()));
@@ -380,7 +387,6 @@ void SheMov::createActions(){
mRenameMapper->setMapping(mRenameCoverBA, tr("back"));
mRenameCoverBA->setData("RenameMenu");
mRenameCoverCA = new QAction(tr("Rename to cover"), this);
- mRenameCoverCA->setShortcut(tr("CTRL+c"));
connect(mRenameCoverCA, SIGNAL(triggered()), mRenameMapper, SLOT(map()));
mRenameMapper->setMapping(mRenameCoverCA, tr("cover"));
mRenameCoverCA->setData("RenameMenu");
@@ -549,17 +555,22 @@ void SheMov::createMenus(){
mEditFSMenu->addAction(mDeleteFilesA);
mEditFSMenu->addSeparator();
mEditFSMenu->addAction(mCopyA);
- mEditFSMenu->addAction(mMoveA);
+ mEditFSMenu->addAction(mCutA);
+ mEditFSMenu->addAction(mPasteA);
mEditFSMenu->addAction(mRenameA);
mRenameMenu = new QMenu(tr("&Rename..."), this);
mRenameMenu->addAction(mTemplateA);
mRenameMenu->addAction(mRenameCoverFA);
mRenameMenu->addAction(mRenameCoverBA);
mRenameMenu->addAction(mRenameCoverCA);
- mRenameMenuA = new QAction(tr("&Rename"), this);
+ mRenameMenuA = new QAction(tr("&Rename to"), this);
mRenameMenuA->setMenu(mRenameMenu);
mEditFSMenu->addAction(mRenameMenuA);
mEditFSMenu->addSeparator();
+ mEditFSMenu->addAction(mCopyA);
+ mEditFSMenu->addAction(mCutA);
+ mEditFSMenu->addAction(mPasteA);
+ mEditFSMenu->addSeparator();
mEditFSMenu->addAction(mMountDvdA);
mEditFSMenu->addSeparator();
mEditFSMenu->addAction(mMarkA);
@@ -636,9 +647,13 @@ void SheMov::createMenus(){
mFSWidget->fileView()->addAction(mCreateFolderA);
mFSWidget->fileView()->addAction(mDeleteFilesA);
mFSWidget->fileView()->addAction(mRenameA);
- mFSWidget->fileView()->addAction(mCopyA);
- mFSWidget->fileView()->addAction(mMoveA);
mFSWidget->fileView()->addAction(mRenameMenuA);
+ QAction *sep16 = new QAction(this);
+ sep16->setSeparator(true);
+ mFSWidget->fileView()->addAction(sep16);
+ mFSWidget->fileView()->addAction(mCopyA);
+ mFSWidget->fileView()->addAction(mCutA);
+ mFSWidget->fileView()->addAction(mPasteA);
QAction *sep10 = new QAction(this);
sep10->setSeparator(true);
mFSWidget->fileView()->addAction(sep10);