]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
* allow to toggle the content of split views by the context menu
[dolphin.git] / src / dolphincontextmenu.cpp
index 4e2cb4f8629721cf66a9b78a998be5d5ffb9a154..038902e6b5b5ac8cc98ad531c4a1e5ba66785300 100644 (file)
@@ -23,6 +23,7 @@
 #include "dolphinmainwindow.h"
 #include "dolphinsettings.h"
 #include "dolphinview.h"
+#include "dolphinviewcontainer.h"
 
 #include <kactioncollection.h>
 #include <kfileplacesmodel.h>
@@ -57,7 +58,7 @@ DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent,
 {
     // The context menu either accesses the URLs of the selected items
     // or the items itself. To increase the performance both lists are cached.
-    DolphinView* view = m_mainWindow->activeView();
+    DolphinView* view = m_mainWindow->activeViewContainer()->view();
     m_selectedUrls = view->selectedUrls();
     m_selectedItems = view->selectedItems();
 }
@@ -233,6 +234,12 @@ void DolphinContextMenu::openViewportContextMenu()
     viewModeMenu->addAction(previewsMode);
 
     popup->addMenu(viewModeMenu);
+
+    QAction* toggleViewsAction = 0;
+    if (m_mainWindow->isSplit()) {
+        toggleViewsAction = popup->addAction(i18n("Toggle Views"));
+    }
+
     popup->addSeparator();
 
     QAction* bookmarkAction = popup->addAction(KIcon("bookmark-folder"), i18n("Bookmark This Folder..."));
@@ -240,17 +247,18 @@ void DolphinContextMenu::openViewportContextMenu()
 
     QAction* propertiesAction = popup->addAction(i18n("Properties"));
 
-    QAction* activatedAction = popup->exec(QCursor::pos());
-    if (activatedAction == propertiesAction) {
-        const KUrl& url = m_mainWindow->activeView()->url();
-        KPropertiesDialog* dlg = new KPropertiesDialog(url);
-        dlg->exec();
-        delete dlg;
-    } else if (activatedAction == bookmarkAction) {
-        const KUrl& url = m_mainWindow->activeView()->url();
+    QAction* action = popup->exec(QCursor::pos());
+    if (action == propertiesAction) {
+        const KUrl& url = m_mainWindow->activeViewContainer()->url();
+        KPropertiesDialog dialog(url);
+        dialog.exec();
+    } else if (action == bookmarkAction) {
+        const KUrl& url = m_mainWindow->activeViewContainer()->url();
         if (url.isValid()) {
             DolphinSettings::instance().placesModel()->addPlace(url.fileName(), url);
         }
+    } else if ((toggleViewsAction != 0) && (action == toggleViewsAction)) {
+        m_mainWindow->toggleViews();
     }
 
     popup->deleteLater();
@@ -279,7 +287,7 @@ void DolphinContextMenu::insertDefaultItemActions(KMenu* popup)
     const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals);
     const KConfigGroup kdeConfig(globalConfig, "KDE");
     bool showDeleteCommand = kdeConfig.readEntry("ShowDeleteCommand", false);
-    const KUrl& url = m_mainWindow->activeView()->url();
+    const KUrl& url = m_mainWindow->activeViewContainer()->url();
     if (url.isLocalFile()) {
         QAction* moveToTrashAction = collection->action("move_to_trash");
         popup->addAction(moveToTrashAction);