X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/acfccceb916b885aa2764759076bad1b9d121eb2..ec9841397ff92b872df5c3853a232cedae82dfde:/src/dolphincontextmenu.cpp diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index a18f88a41..c9028862d 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -43,6 +44,8 @@ #include #include +#include +#include #include DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent, @@ -104,17 +107,36 @@ void DolphinContextMenu::open() void DolphinContextMenu::cut() { - // TODO + QMimeData* mimeData = new QMimeData(); + KUrl::List kdeUrls; + kdeUrls.append(m_fileInfo->url()); + KonqMimeData::populateMimeData(mimeData, kdeUrls, KUrl::List(), true); + QApplication::clipboard()->setMimeData(mimeData); } void DolphinContextMenu::copy() { - // TODO + QMimeData* mimeData = new QMimeData(); + KUrl::List kdeUrls; + kdeUrls.append(m_fileInfo->url()); + KonqMimeData::populateMimeData(mimeData, kdeUrls, KUrl::List(), false); + QApplication::clipboard()->setMimeData(mimeData); } void DolphinContextMenu::paste() { - // TODO + QClipboard* clipboard = QApplication::clipboard(); + const QMimeData* mimeData = clipboard->mimeData(); + + const KUrl::List source = KUrl::List::fromMimeData(mimeData); + const KUrl& dest = m_fileInfo->url(); + if (KonqMimeData::decodeIsCutSelection(mimeData)) { + KonqOperations::copy(m_mainWindow, KonqOperations::MOVE, source, dest); + clipboard->clear(); + } + else { + KonqOperations::copy(m_mainWindow, KonqOperations::COPY, source, dest); + } } void DolphinContextMenu::rename() @@ -355,10 +377,10 @@ void DolphinContextMenu::insertDefaultItemActions(KMenu* popup) QAction* renameAction = 0; if (insertSidebarActions) { renameAction = new QAction(i18n("Rename"), this); - connect(renameAction, SIGNAL(triggered()), this, SLOT(paste())); + connect(renameAction, SIGNAL(triggered()), this, SLOT(rename())); } else { - collection->action("rename"); + renameAction = collection->action("rename"); } popup->addAction(renameAction);