From: David Faure Date: Thu, 5 Jun 2008 19:19:14 +0000 (+0000) Subject: Move the "Create New" action (for the Edit menu, not for the context menu) to dolphin... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/008f524498475dd28717b1f3d65e2c99bbdb5b2a Move the "Create New" action (for the Edit menu, not for the context menu) to dolphinpart, so that it doesn't appear while browsing the web [with a filemanagement profile initially]. The point is to make the GUI sensible whatever initial profile was selected and hopefully get rid of konq-filemanagement.rc/konq-webbrowsing.rc. svn path=/trunk/KDE/kdebase/apps/; revision=817326 --- diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index 686dde5b8..bca9ee4a6 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -39,8 +39,10 @@ #include #include #include +#include #include -#include +#include +#include #include #include @@ -135,6 +137,12 @@ DolphinPart::~DolphinPart() void DolphinPart::createActions() { + // Edit menu + + m_newMenu = new KNewMenu(actionCollection(), widget(), "new_menu"); + connect(m_newMenu->menu(), SIGNAL(aboutToShow()), + this, SLOT(updateNewMenu())); + KAction *editMimeTypeAction = actionCollection()->addAction( "editMimeType" ); editMimeTypeAction->setText( i18nc("@action:inmenu Edit", "&Edit File Type..." ) ); connect(editMimeTypeAction, SIGNAL(triggered()), SLOT(slotEditMimeType())); @@ -473,9 +481,6 @@ void DolphinPart::setNameFilter(const QString& nameFilter) void DolphinPart::slotOpenTerminal() { - KConfigGroup confGroup(KGlobal::config(), "General"); // set by componentchooser kcm - const QString preferredTerminal = confGroup.readPathEntry("TerminalApplication", "konsole"); - QString dir(QDir::homePath()); KUrl u(url()); @@ -489,17 +494,15 @@ void DolphinPart::slotOpenTerminal() dir = u.path(); } - // Compensate for terminal having arguments. - QStringList args = KShell::splitArgs(preferredTerminal); - if (args.isEmpty()) { - return; - } - const QString prog = args.takeFirst(); - if (prog == "konsole") { - args << "--workdir"; - args << dir; - } - QProcess::startDetached(prog, args); + KToolInvocation::invokeTerminal(QString(), dir); +} + +void DolphinPart::updateNewMenu() +{ + // As requested by KNewMenu : + m_newMenu->slotCheckUpToDate(); + // And set the files that the menu apply on : + m_newMenu->setPopupFiles(url()); } #include "dolphinpart.moc" diff --git a/src/dolphinpart.h b/src/dolphinpart.h index ac32c5f43..6778bb064 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -22,6 +22,7 @@ #include #include +class KNewMenu; class DolphinViewActionHandler; class QActionGroup; class KAction; @@ -177,6 +178,11 @@ private Q_SLOTS: */ void slotOpenTerminal(); + /** + * Updates the 'Create New...' sub menu, just before it's shown. + */ + void updateNewMenu(); + private: void createActions(); void createGoAction(const char* name, const char* iconName, @@ -190,6 +196,7 @@ private: DolphinModel* m_dolphinModel; DolphinSortFilterProxyModel* m_proxyModel; DolphinPartBrowserExtension* m_extension; + KNewMenu* m_newMenu; QString m_nameFilter; Q_DISABLE_COPY(DolphinPart) }; diff --git a/src/dolphinpart.rc b/src/dolphinpart.rc index 6efc50ba9..de271b5d6 100644 --- a/src/dolphinpart.rc +++ b/src/dolphinpart.rc @@ -1,7 +1,9 @@ - + + +