From 609ce0929289f3e26eb1898b184c7dafbf7bcac2 Mon Sep 17 00:00:00 2001 From: David Faure Date: Fri, 14 Dec 2007 15:53:40 +0000 Subject: Moving code around in dolphin fixes DnD support in konqueror :) svn path=/trunk/KDE/kdebase/apps/; revision=748476 --- src/dolphinmainwindow.cpp | 84 +++-------------------------------------------- 1 file changed, 5 insertions(+), 79 deletions(-) (limited to 'src/dolphinmainwindow.cpp') diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 13406a6b5..46a80629b 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -20,6 +20,7 @@ ***************************************************************************/ #include "dolphinmainwindow.h" +#include "dolphindropcontroller.h" #include @@ -59,7 +60,6 @@ #include #include #include -#include #include #include #include @@ -150,84 +150,10 @@ void DolphinMainWindow::refreshViews() void DolphinMainWindow::dropUrls(const KUrl::List& urls, const KUrl& destination) { - kDebug() << "Source" << urls; - kDebug() << "Destination:" << destination; - - Qt::DropAction action = Qt::CopyAction; - - Qt::KeyboardModifiers modifier = QApplication::keyboardModifiers(); - const bool shiftPressed = modifier & Qt::ShiftModifier; - const bool controlPressed = modifier & Qt::ControlModifier; - if (shiftPressed && controlPressed) { - // shortcut for 'Link Here' is used - action = Qt::LinkAction; - } else if (shiftPressed) { - // shortcut for 'Move Here' is used - action = Qt::MoveAction; - } else if (controlPressed) { - // shortcut for 'Copy Here' is used - action = Qt::CopyAction; - } else { - // open a context menu which offers the following actions: - // - Move Here - // - Copy Here - // - Link Here - // - Cancel - - KMenu popup(this); - - QString seq = QKeySequence(Qt::ShiftModifier).toString(); - seq.chop(1); // chop superfluous '+' - QAction* moveAction = popup.addAction(KIcon("go-jump"), - i18nc("@action:inmenu", - "&Move Here\t%1", seq)); - - seq = QKeySequence(Qt::ControlModifier).toString(); - seq.chop(1); - QAction* copyAction = popup.addAction(KIcon("edit-copy"), - i18nc("@action:inmenu", - "&Copy Here\t%1", seq)); - - seq = QKeySequence(Qt::ControlModifier + Qt::ShiftModifier).toString(); - seq.chop(1); - QAction* linkAction = popup.addAction(KIcon("insert-link"), - i18nc("@action:inmenu", - "&Link Here\t%1", seq)); - - popup.addSeparator(); - popup.addAction(KIcon("process-stop"), i18nc("@action:inmenu", "Cancel")); - - QAction* activatedAction = popup.exec(QCursor::pos()); - if (activatedAction == moveAction) { - action = Qt::MoveAction; - } else if (activatedAction == copyAction) { - action = Qt::CopyAction; - } else if (activatedAction == linkAction) { - action = Qt::LinkAction; - } else { - return; - } - } - - switch (action) { - case Qt::MoveAction: - KonqOperations::copy(this, KonqOperations::MOVE, urls, destination); - m_undoCommandTypes.append(KonqFileUndoManager::MOVE); - break; - - case Qt::CopyAction: - KonqOperations::copy(this, KonqOperations::COPY, urls, destination); - m_undoCommandTypes.append(KonqFileUndoManager::COPY); - break; - - case Qt::LinkAction: - KonqOperations::copy(this, KonqOperations::LINK, urls, destination); - m_undoCommandTypes.append(KonqFileUndoManager::LINK); - break; - - default: - break; - } + DolphinDropController dropController(this); + connect(&dropController, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)), + this, SLOT(slotDoingOperation(KonqFileUndoManager::CommandType))); + dropController.dropUrls(urls, destination); } void DolphinMainWindow::changeUrl(const KUrl& url) -- cgit v1.3