X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/6baba131b2e112c37015412b701bc3ea01a86c04..ec9841397ff92b872df5c3853a232cedae82dfde:/src/dolphincontextmenu.cpp diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 6ff20fe7f..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); @@ -366,7 +388,8 @@ void DolphinContextMenu::insertDefaultItemActions(KMenu* popup) const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals); const KConfigGroup kdeConfig(globalConfig, "KDE"); bool showDeleteCommand = kdeConfig.readEntry("ShowDeleteCommand", false); - const KUrl& url = m_mainWindow->activeView()->url(); + const KUrl& url = insertSidebarActions ? m_fileInfo->url(): + m_mainWindow->activeView()->url(); if (url.isLocalFile()) { QAction* moveToTrashAction = 0; if (insertSidebarActions) { @@ -374,7 +397,7 @@ void DolphinContextMenu::insertDefaultItemActions(KMenu* popup) connect(moveToTrashAction, SIGNAL(triggered()), this, SLOT(moveToTrash())); } else { - collection->action("move_to_trash"); + moveToTrashAction = collection->action("move_to_trash"); } popup->addAction(moveToTrashAction); } @@ -389,7 +412,7 @@ void DolphinContextMenu::insertDefaultItemActions(KMenu* popup) connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteItem())); } else { - collection->action("delete"); + deleteAction = collection->action("delete"); } popup->addAction(deleteAction); }