From 5a3a5f513515dd2a260fdea3b148e38339c41e57 Mon Sep 17 00:00:00 2001 From: David Faure Date: Mon, 24 Dec 2007 11:17:16 +0000 Subject: [PATCH] Move a bunch of Go menu actions from konqueror to dolphinpart, so that they don't clutter the Go menu when using other parts. As posted on k-c-d. svn path=/trunk/KDE/kdebase/apps/; revision=752408 --- src/dolphinpart.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ src/dolphinpart.h | 12 ++++++++++++ src/dolphinpart.rc | 8 ++++++++ 3 files changed, 60 insertions(+) diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index 981bb7028b..bd986dcf5a 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -18,6 +18,7 @@ */ #include "dolphinpart.h" +#include #include "dolphinsortfilterproxymodel.h" #include "dolphinview.h" #include "dolphinmodel.h" @@ -136,6 +137,45 @@ void DolphinPart::createActions() connect(newDirAction, SIGNAL(triggered()), SLOT(slotNewDir())); newDirAction->setShortcut(Qt::Key_F10); widget()->addAction(newDirAction); + + // Go menu + + QActionGroup* goActionGroup = new QActionGroup(this); + connect(goActionGroup, SIGNAL(triggered(QAction*)), + this, SLOT(slotGoTriggered(QAction*))); + + createGoAction("go_applications", "start-here", + i18nc("@action:inmenu Go", "App&lications"), QString("programs:/"), + goActionGroup); + createGoAction("go_network_folders", "drive-remote", + i18nc("@action:inmenu Go", "&Network Folders"), QString("remote:/"), + goActionGroup); + createGoAction("go_settings", "preferences-system", + i18nc("@action:inmenu Go", "Sett&ings"), QString("settings:/"), + goActionGroup); + createGoAction("go_trash", "user-trash", + i18nc("@action:inmenu Go", "Trash"), QString("trash:/"), + goActionGroup); + createGoAction("go_autostart", "", + i18nc("@action:inmenu Go", "Autostart"), KGlobalSettings::autostartPath(), + goActionGroup); +} + +void DolphinPart::createGoAction(const char* name, const char* iconName, + const QString& text, const QString& url, + QActionGroup* actionGroup) +{ + KAction* action = actionCollection()->addAction(name); + action->setIcon(KIcon(iconName)); + action->setText(text); + action->setData(url); + action->setActionGroup(actionGroup); +} + +void DolphinPart::slotGoTriggered(QAction* action) +{ + const QString url = action->data().toString(); + emit m_extension->openUrlRequest(KUrl(url)); } void DolphinPart::slotSelectionChanged(const KFileItemList& selection) diff --git a/src/dolphinpart.h b/src/dolphinpart.h index 2a512eddb2..98e0f2f672 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -22,6 +22,7 @@ #include #include +class QActionGroup; class KAction; class KFileItemList; class KFileItem; @@ -114,10 +115,21 @@ private Q_SLOTS: */ void slotTrashActivated(Qt::MouseButtons, Qt::KeyboardModifiers); + /** + * Connected to the key shortcut for "new directory" (F10) + */ void slotNewDir(); + /** + * Connected to all "Go" menu actions provided by DolphinPart + */ + void slotGoTriggered(QAction* action); + private: void createActions(); + void createGoAction(const char* name, const char* iconName, + const QString& text, const QString& url, + QActionGroup* actionGroup); private: DolphinView* m_view; diff --git a/src/dolphinpart.rc b/src/dolphinpart.rc index 3344db227f..26002ceaf8 100644 --- a/src/dolphinpart.rc +++ b/src/dolphinpart.rc @@ -39,6 +39,14 @@ + + + + + + + +