X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/728ecea4a1969bb8e0f8ae25c94c49f98185e82e..ac73af7bedeebe2afa451249e8a6500651a6ec00:/src/dolphinpart.cpp diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index da6faecc6..d26f14061 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -18,6 +18,7 @@ */ #include "dolphinpart.h" +#include #include #include "dolphinsortfilterproxymodel.h" #include "dolphinview.h" @@ -27,6 +28,7 @@ #include #include +#include #include #include #include @@ -46,6 +48,9 @@ DolphinPart::DolphinPart(QWidget* parentWidget, QObject* parent, const QStringLi setComponentData( DolphinPartFactory::componentData() ); m_extension = new DolphinPartBrowserExtension(this); + // make sure that other apps using this part find Dolphin's view-file-columns icons + KIconLoader::global()->addAppDir("dolphin"); + m_dirLister = new KDirLister; m_dirLister->setAutoUpdate(true); m_dirLister->setMainWindow(parentWidget->topLevelWidget()); @@ -131,9 +136,14 @@ void DolphinPart::createActions() connect(deleteAction, SIGNAL(triggered()), m_view, SLOT(deleteSelectedItems())); KAction *editMimeTypeAction = actionCollection()->addAction( "editMimeType" ); - editMimeTypeAction->setText( i18n( "&Edit File Type..." ) ); + editMimeTypeAction->setText( i18nc("@action:inmenu Edit", "&Edit File Type..." ) ); connect(editMimeTypeAction, SIGNAL(triggered()), SLOT(slotEditMimeType())); + KAction *propertiesAction = actionCollection()->addAction( "properties" ); + propertiesAction->setText( i18nc("@action:inmenu Edit", "Properties") ); + propertiesAction->setShortcut(Qt::ALT+Qt::Key_Return); + connect(propertiesAction, SIGNAL(triggered()), SLOT(slotProperties())); + // 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" ); @@ -148,10 +158,10 @@ void DolphinPart::createActions() connect(goActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(slotGoTriggered(QAction*))); - createGoAction("go_applications", "start-here", + createGoAction("go_applications", "start-here-kde", i18nc("@action:inmenu Go", "App&lications"), QString("programs:/"), goActionGroup); - createGoAction("go_network_folders", "drive-remote", + createGoAction("go_network_folders", "folder-remote", i18nc("@action:inmenu Go", "&Network Folders"), QString("remote:/"), goActionGroup); createGoAction("go_settings", "preferences-system", @@ -192,7 +202,7 @@ void DolphinPart::slotSelectionChanged(const KFileItemList& selection) } QStringList actions; - actions << "rename" << "move_to_trash" << "delete" << "editMimeType"; + actions << "rename" << "move_to_trash" << "delete" << "editMimeType" << "properties"; foreach(const QString& actionName, actions) { QAction* action = actionCollection()->action(actionName); Q_ASSERT(action); @@ -271,6 +281,14 @@ void DolphinPart::slotRequestItemInfo(const KFileItem& item) void DolphinPart::slotItemTriggered(const KFileItem& item) { + KParts::OpenUrlArguments args; + args.setMimeType(item.mimetype()); + + // Ideally, konqueror should be changed to not require trustedSource for directory views, + // since the idea was not to need BrowserArguments for non-browser stuff... + KParts::BrowserArguments browserArgs; + browserArgs.trustedSource = true; + // MMB click support. // TODO: this doesn't work, mouseButtons() is always 0. // Issue N176832 for the missing QAIV signal; task 177399 @@ -278,9 +296,7 @@ void DolphinPart::slotItemTriggered(const KFileItem& item) if (QApplication::mouseButtons() & Qt::MidButton) { kDebug() << "MMB!!" << item.mimetype(); if (item.mimeTypePtr()->is("inode/directory")) { - KParts::OpenUrlArguments args; - args.setMimeType( item.mimetype() ); - emit m_extension->createNewWindow( item.url(), args ); + emit m_extension->createNewWindow(item.url(), args); } else { kDebug() << "run()"; item.run(); @@ -288,7 +304,7 @@ void DolphinPart::slotItemTriggered(const KFileItem& item) } else { // Left button. [Right button goes to slotOpenContextMenu before triggered can be emitted] kDebug() << "LMB"; - emit m_extension->openUrlRequest(item.url()); + emit m_extension->openUrlRequest(item.url(), args, browserArgs); } } @@ -407,7 +423,16 @@ void DolphinPart::slotEditMimeType() { const KFileItemList items = m_view->selectedItems(); if (!items.isEmpty()) { - KonqOperations::editMimeType( items.first().mimetype(), m_view ); + KonqOperations::editMimeType(items.first().mimetype(), m_view); + } +} + +void DolphinPart::slotProperties() +{ + const KFileItemList items = m_view->selectedItems(); + if (!items.isEmpty()) { + KPropertiesDialog dialog(items.first().url(), m_view); + dialog.exec(); } }