#include <kmessagebox.h>
#include <kmimetypetrader.h>
#include <knewmenu.h>
+#include <konqmimedata.h>
#include <konq_operations.h>
#include <klocale.h>
#include <kpropertiesdialog.h>
#include <kstandardaction.h>
#include <kstandarddirs.h>
+#include <QApplication>
+#include <QClipboard>
#include <QDir>
DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent,
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()
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);
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) {
connect(moveToTrashAction, SIGNAL(triggered()), this, SLOT(moveToTrash()));
}
else {
- collection->action("move_to_trash");
+ moveToTrashAction = collection->action("move_to_trash");
}
popup->addAction(moveToTrashAction);
}
connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteItem()));
}
else {
- collection->action("delete");
+ deleteAction = collection->action("delete");
}
popup->addAction(deleteAction);
}