diff options
| author | David Faure <[email protected]> | 2008-06-05 19:19:14 +0000 |
|---|---|---|
| committer | David Faure <[email protected]> | 2008-06-05 19:19:14 +0000 |
| commit | 008f524498475dd28717b1f3d65e2c99bbdb5b2a (patch) | |
| tree | b4a5449051ec42f0b03deae6aa4d61958d691b9e | |
| parent | ee5a78d967e19a995e40268021658cb1c7cc0440 (diff) | |
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
| -rw-r--r-- | src/dolphinpart.cpp | 33 | ||||
| -rw-r--r-- | src/dolphinpart.h | 7 | ||||
| -rw-r--r-- | src/dolphinpart.rc | 4 |
3 files changed, 28 insertions, 16 deletions
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 <kpropertiesdialog.h> #include <ktoggleaction.h> #include <kio/netaccess.h> +#include <ktoolinvocation.h> #include <kauthorized.h> -#include <kshell.h> +#include <knewmenu.h> +#include <kmenu.h> #include <QActionGroup> #include <QApplication> @@ -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 <kparts/part.h> #include <kparts/browserextension.h> +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 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui name="dolphinpart" version="7" > +<kpartgui name="dolphinpart" version="8" > <MenuBar> <Menu name="edit"> + <Action name="new_menu"/> + <Separator/> <Action name="rename"/> <Action name="move_to_trash" /> <Action name="delete"/> |
