From 8eed64171cfdee8be2690e4fb7e0aaeb3aafc6e5 Mon Sep 17 00:00:00 2001 From: David Faure Date: Mon, 24 Dec 2007 19:07:32 +0000 Subject: [PATCH] Move (broken) action "Edit/Properties" to dolphinpart and made it work there. Pass parent widget to all KPropertiesDialog instances. svn path=/trunk/KDE/kdebase/apps/; revision=752542 --- src/dolphincontextmenu.cpp | 2 +- src/dolphinpart.cpp | 21 ++++++++++++++++++--- src/dolphinpart.h | 5 +++++ src/dolphinpart.rc | 3 ++- src/treeviewcontextmenu.cpp | 2 +- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 648928e0f2..d7953df4fd 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -261,7 +261,7 @@ void DolphinContextMenu::openViewportContextMenu() QAction* action = popup->exec(QCursor::pos()); if (action == propertiesAction) { const KUrl& url = m_mainWindow->activeViewContainer()->url(); - KPropertiesDialog dialog(url); + KPropertiesDialog dialog(url, m_mainWindow); dialog.exec(); } else if (action == addToPlacesAction) { const KUrl& url = m_mainWindow->activeViewContainer()->url(); diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index da6faecc6f..12ba14a9fc 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -18,6 +18,7 @@ */ #include "dolphinpart.h" +#include #include #include "dolphinsortfilterproxymodel.h" #include "dolphinview.h" @@ -131,9 +132,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" ); @@ -192,7 +198,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); @@ -407,7 +413,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(); } } diff --git a/src/dolphinpart.h b/src/dolphinpart.h index 23a5ea653e..300924a8da 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -130,6 +130,11 @@ private Q_SLOTS: */ void slotEditMimeType(); + /** + * Connected to the "properties" action + */ + void slotProperties(); + private: void createActions(); void createGoAction(const char* name, const char* iconName, diff --git a/src/dolphinpart.rc b/src/dolphinpart.rc index 325a3650fc..35bde506e7 100644 --- a/src/dolphinpart.rc +++ b/src/dolphinpart.rc @@ -1,11 +1,12 @@ - + + diff --git a/src/treeviewcontextmenu.cpp b/src/treeviewcontextmenu.cpp index f73b504818..40c5e9cd8f 100644 --- a/src/treeviewcontextmenu.cpp +++ b/src/treeviewcontextmenu.cpp @@ -164,7 +164,7 @@ void TreeViewContextMenu::deleteItem() void TreeViewContextMenu::showProperties() { - KPropertiesDialog dialog(m_fileInfo.url()); + KPropertiesDialog dialog(m_fileInfo.url(), m_parent); dialog.exec(); }