┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
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
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
-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"/>