┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Faure <[email protected]>2008-06-05 19:19:14 +0000
committerDavid Faure <[email protected]>2008-06-05 19:19:14 +0000
commit008f524498475dd28717b1f3d65e2c99bbdb5b2a (patch)
treeb4a5449051ec42f0b03deae6aa4d61958d691b9e /src
parentee5a78d967e19a995e40268021658cb1c7cc0440 (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
Diffstat (limited to 'src')
-rw-r--r--src/dolphinpart.cpp33
-rw-r--r--src/dolphinpart.h7
-rw-r--r--src/dolphinpart.rc4
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"/>