]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Make use of the error messages coming from the places model.
[dolphin.git] / src / dolphincontextmenu.cpp
index 73cbb09f673f41ef1dea66a617fa553d08e4aa2b..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>
 #include <kstandardaction.h>
 #include <kstandarddirs.h>
 
-#include <QApplication>
-#include <QClipboard>
-#include <QDir>
-#include <Q3ValueList>
+#include <QtGui/QApplication>
+#include <QtGui/QClipboard>
+#include <QtCore/QDir>
+#include <Qt3Support/Q3ValueList>
 
 DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent,
                                        KFileItem* fileInfo,
                                        const KUrl& baseUrl) :
-        m_mainWindow(parent),
-        m_fileInfo(fileInfo),
-        m_baseUrl(baseUrl),
-        m_context(NoContext)
+    m_mainWindow(parent),
+    m_fileInfo(fileInfo),
+    m_baseUrl(baseUrl),
+    m_context(NoContext)
 {
     // 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();
 }
@@ -226,10 +227,19 @@ void DolphinContextMenu::openViewportContextMenu()
     QAction* detailsMode = m_mainWindow->actionCollection()->action("details");
     viewModeMenu->addAction(detailsMode);
 
+    QAction* columnsMode = m_mainWindow->actionCollection()->action("columns");
+    viewModeMenu->addAction(columnsMode);
+
     QAction* previewsMode = m_mainWindow->actionCollection()->action("previews");
     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..."));
@@ -237,14 +247,18 @@ void DolphinContextMenu::openViewportContextMenu()
 
     QAction* propertiesAction = popup->addAction(i18n("Properties"));
 
-    QAction* activatedAction = popup->exec(QCursor::pos());
-    if (activatedAction == propertiesAction) {
-        new KPropertiesDialog(m_mainWindow->activeView()->url());
-    } 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();
@@ -273,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);