X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8578ad1e751d218b40c49a601934a23d8ecd027d..d6488887ecf69d7f192b94de8dce34fae0b7eb76:/src/dolphinpart.cpp diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index 113b840e7..e25c2882f 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -22,11 +22,14 @@ #include "dolphinview.h" #include "dolphinmodel.h" +#include + #include #include #include #include #include +#include #include #include @@ -129,6 +132,14 @@ void DolphinPart::createActions() KAction* deleteAction = DolphinView::createDeleteAction(actionCollection()); connect(deleteAction, SIGNAL(triggered()), m_view, SLOT(deleteSelectedItems())); + + // This action doesn't appear in the GUI, it's for the shortcut only. + // KNewMenu takes care of the GUI stuff. + KAction* newDirAction = actionCollection()->addAction( "create_dir" ); + newDirAction->setText( i18n("Create Folder..." ) ); + connect(newDirAction, SIGNAL(triggered()), SLOT(slotNewDir())); + newDirAction->setShortcut(Qt::Key_F10); + widget()->addAction(newDirAction); } void DolphinPart::slotSelectionChanged(const KFileItemList& selection) @@ -173,7 +184,7 @@ void DolphinPart::updateViewActions() KAboutData* DolphinPart::createAboutData() { - return new KAboutData("dolphinpart", 0, ki18nc("@title", "Dolphin Part"), "0.1"); + return new KAboutData("dolphinpart", "dolphin", ki18nc("@title", "Dolphin Part"), "0.1"); } bool DolphinPart::openUrl(const KUrl& url) @@ -186,10 +197,10 @@ bool DolphinPart::openUrl(const KUrl& url) const QString prettyUrl = url.pathOrUrl(); emit setWindowCaption(prettyUrl); emit m_extension->setLocationBarUrl(prettyUrl); + emit started(0); // get the wheel to spin m_view->setUrl(url); if (reload) m_view->reload(); - emit started(0); // get the wheel to spin return true; } @@ -258,18 +269,45 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) KParts::BrowserExtension::ActionGroupMap actionGroups; QList editActions; - editActions.append(actionCollection()->action("rename")); - editActions.append(actionCollection()->action("move_to_trash")); - editActions.append(actionCollection()->action("delete")); - actionGroups.insert("editactions", editActions); - - KFileItemList items; items.append(item); - emit m_extension->popupMenu(QCursor::pos(), - items, - KParts::OpenUrlArguments(), - KParts::BrowserArguments(), - popupFlags, - actionGroups); + + if (!item.isNull()) { // only for context menu on one or more items + // TODO if ( sMoving ) + editActions.append(actionCollection()->action("rename")); + + bool addTrash = false; + bool addDel = false; + + // TODO if ( sMoving && !isIntoTrash && !isTrashLink ) + addTrash = true; + + /* TODO if ( sDeleting ) */ { + if ( !item.isLocalFile() ) + addDel = true; + else if (QApplication::keyboardModifiers() & Qt::ShiftModifier) { + addTrash = false; + addDel = true; + } + else { + KConfigGroup configGroup( KGlobal::config(), "KDE" ); + if ( configGroup.readEntry( "ShowDeleteCommand", false) ) + addDel = true; + } + } + + if (addTrash) + editActions.append(actionCollection()->action("move_to_trash")); + if (addDel) + editActions.append(actionCollection()->action("delete")); + actionGroups.insert("editactions", editActions); + + KFileItemList items; items.append(item); + emit m_extension->popupMenu(QCursor::pos(), + items, + KParts::OpenUrlArguments(), + KParts::BrowserArguments(), + popupFlags, + actionGroups); + } } void DolphinPart::slotViewModeActionTriggered(QAction* action) @@ -318,4 +356,9 @@ void DolphinPart::slotTrashActivated(Qt::MouseButtons, Qt::KeyboardModifiers mod m_view->trashSelectedItems(); } +void DolphinPart::slotNewDir() +{ + KonqOperations::newDir(widget(), url()); +} + #include "dolphinpart.moc"