X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/008f524498475dd28717b1f3d65e2c99bbdb5b2a..629ec98952bcf38bc99f2b11bc37bdc2ec7aabcc:/src/dolphinpart.cpp diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index bca9ee4a6..0f8c72453 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -49,9 +49,7 @@ #include K_PLUGIN_FACTORY(DolphinPartFactory, registerPlugin();) -// The componentdata name must be dolphinpart so that dolphinpart.rc is found -// Alternatively we would have to install it as dolphin/dolphinpart.rc -K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart")) +K_EXPORT_PLUGIN(DolphinPartFactory("dolphinpart", "dolphin")) DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args) : KParts::ReadOnlyPart(parent) @@ -122,8 +120,6 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantL m_actionHandler->updateViewActions(); slotSelectionChanged(KFileItemList()); // initially disable selection-dependent actions - // TODO sort_by_* actions - // TODO there was a "always open a new window" (when clicking on a directory) setting in konqueror // (sort of spacial navigation) @@ -213,26 +209,27 @@ void DolphinPart::slotSelectionChanged(const KFileItemList& selection) QAction* deleteAction = actionCollection()->action("delete"); QAction* editMimeTypeAction = actionCollection()->action("editMimeType"); QAction* propertiesAction = actionCollection()->action("properties"); + QAction* deleteWithTrashShortcut = actionCollection()->action("delete_shortcut"); // see DolphinViewActionHandler if (!hasSelection) { stateChanged("has_no_selection"); emit m_extension->enableAction("cut", false); emit m_extension->enableAction("copy", false); - renameAction->setEnabled(false); - moveToTrashAction->setEnabled(false); - deleteAction->setEnabled(false); + deleteWithTrashShortcut->setEnabled(false); editMimeTypeAction->setEnabled(false); - propertiesAction->setEnabled(false); } else { stateChanged("has_selection"); + // TODO share this code with DolphinMainWindow::updateEditActions (and the desktop code) + // in libkonq KonqFileItemCapabilities capabilities(selection); const bool enableMoveToTrash = capabilities.isLocal() && capabilities.supportsMoving(); renameAction->setEnabled(capabilities.supportsMoving()); moveToTrashAction->setEnabled(enableMoveToTrash); deleteAction->setEnabled(capabilities.supportsDeleting()); + deleteWithTrashShortcut->setEnabled(capabilities.supportsDeleting() && !enableMoveToTrash); editMimeTypeAction->setEnabled(true); propertiesAction->setEnabled(true); emit m_extension->enableAction("cut", capabilities.supportsMoving()); @@ -352,7 +349,7 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) // If the parent directory of the selected item is writable, moving // and deleting are possible. KFileItem parentDir = m_dirLister->rootItem(); - if (!parentDir.isWritable()) { + if (!parentDir.isNull() && !parentDir.isWritable()) { popupFlags |= KParts::BrowserExtension::NoDeletion; sDeleting = false; sMoving = false; @@ -404,6 +401,7 @@ void DolphinPart::slotOpenContextMenu(const KFileItem& _item, const KUrl&) void DolphinPart::slotUrlChanged(const KUrl& url) { + KParts::ReadOnlyPart::setUrl(url); QString prettyUrl = url.pathOrUrl(); emit m_extension->setLocationBarUrl(prettyUrl); }