]> cloud.milkyroute.net Git - dolphin.git/commitdiff
provide a 'Create New' entry for a context menu above a directory
authorPeter Penz <peter.penz19@gmail.com>
Fri, 14 Nov 2008 19:51:13 +0000 (19:51 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 14 Nov 2008 19:51:13 +0000 (19:51 +0000)
BUG: 169880

svn path=/trunk/KDE/kdebase/apps/; revision=884373

src/dolphincontextmenu.cpp
src/dolphinmainwindow.cpp
src/dolphinnewmenu.cpp
src/dolphinnewmenu.h

index 6409ba0fa4146914af583b1cd59f4f9ce1ef2852..777d96a04e007f8c94f6d19544994bdc429b8e56 100644 (file)
@@ -21,6 +21,7 @@
 #include "dolphincontextmenu.h"
 
 #include "dolphinmainwindow.h"
 #include "dolphincontextmenu.h"
 
 #include "dolphinmainwindow.h"
+#include "dolphinnewmenu.h"
 #include "dolphinsettings.h"
 #include "dolphinview.h"
 #include "dolphinviewcontainer.h"
 #include "dolphinsettings.h"
 #include "dolphinview.h"
 #include "dolphinviewcontainer.h"
@@ -173,9 +174,21 @@ void DolphinContextMenu::openItemContextMenu()
 
     KMenu* popup = new KMenu(m_mainWindow);
     if (m_fileInfo.isDir() && (m_selectedUrls.count() == 1)) {
 
     KMenu* popup = new KMenu(m_mainWindow);
     if (m_fileInfo.isDir() && (m_selectedUrls.count() == 1)) {
-      popup->addAction(m_mainWindow->actionCollection()->action("open_in_new_window"));
-      popup->addAction(m_mainWindow->actionCollection()->action("open_in_new_tab"));
-      popup->addSeparator();
+        // setup 'Create New' menu
+        DolphinNewMenu* newMenu = new DolphinNewMenu(popup, m_mainWindow);
+        newMenu->slotCheckUpToDate();
+        newMenu->setPopupFiles(m_fileInfo.url());
+        
+        KMenu* menu = newMenu->menu();
+        menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
+        menu->setIcon(KIcon("document-new"));
+        popup->addMenu(newMenu->menu());
+        popup->addSeparator();
+    
+        // insert 'Open in new window' and 'Open in new tab' entries
+        popup->addAction(m_mainWindow->actionCollection()->action("open_in_new_window"));
+        popup->addAction(m_mainWindow->actionCollection()->action("open_in_new_tab"));
+        popup->addSeparator();
     }
     addShowMenubarAction(popup);
     insertDefaultItemActions(popup);
     }
     addShowMenubarAction(popup);
     insertDefaultItemActions(popup);
index d93ff83e49824dc55e43e73a7ce10b4f9afcfe5c..cf20644827b7a936bf94f3600822e31d54168a78 100644 (file)
@@ -945,7 +945,7 @@ void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* viewContain
 void DolphinMainWindow::setupActions()
 {
     // setup 'File' menu
 void DolphinMainWindow::setupActions()
 {
     // setup 'File' menu
-    m_newMenu = new DolphinNewMenu(this);
+    m_newMenu = new DolphinNewMenu(this, this);
     KMenu* menu = m_newMenu->menu();
     menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
     menu->setIcon(KIcon("document-new"));
     KMenu* menu = m_newMenu->menu();
     menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
     menu->setIcon(KIcon("document-new"));
index 100f20a52ea4f927a20901737be8971e5053c8f6..f4309ade37c91bc3918d7fd291886b4e261623c9 100644 (file)
@@ -27,8 +27,8 @@
 #include <kactioncollection.h>
 #include <kio/job.h>
 
 #include <kactioncollection.h>
 #include <kio/job.h>
 
-DolphinNewMenu::DolphinNewMenu(DolphinMainWindow* mainWin) :
-    KNewMenu(mainWin->actionCollection(), mainWin, "create_new"),
+DolphinNewMenu::DolphinNewMenu(QWidget* parent, DolphinMainWindow* mainWin) :
+    KNewMenu(mainWin->actionCollection(), parent, "create_new"),
     m_mainWin(mainWin)
 {
 }
     m_mainWin(mainWin)
 {
 }
index 8db07548f47742b51a5cc59ef58422ec88088b56..b1a95edc92307c6fab6da25fe1c8536df99f3056 100644 (file)
@@ -39,7 +39,7 @@ class DolphinNewMenu : public KNewMenu
     Q_OBJECT
 
 public:
     Q_OBJECT
 
 public:
-    DolphinNewMenu(DolphinMainWindow* mainWin);
+    DolphinNewMenu(QWidget* parent, DolphinMainWindow* mainWin);
     virtual ~DolphinNewMenu();
 
 protected slots:
     virtual ~DolphinNewMenu();
 
 protected slots: