]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
Apply the facets-patch written by Sebastian TrĂ¼g, which allows to filter search resul...
[dolphin.git] / src / dolphinmainwindow.cpp
index 0913503d2b3fac166dce9fd7870037f12454881b..da94ffcd501d87d4376e702436ca12792ef1d6fe 100644 (file)
@@ -28,6 +28,7 @@
 #include "dolphinnewfilemenu.h"
 #include "dolphinviewcontainer.h"
 #include "mainwindowadaptor.h"
+#include "panels/facets/facetpanel.h"
 #include "panels/folders/folderspanel.h"
 #include "panels/places/placespanel.h"
 #include "panels/information/informationpanel.h"
@@ -1193,9 +1194,9 @@ void DolphinMainWindow::openContextMenu(const KFileItem& item,
                                         const KUrl& url,
                                         const QList<QAction*>& customActions)
 {
-    DolphinContextMenu contextMenu(this, item, url);
-    contextMenu.setCustomActions(customActions);
-    const DolphinContextMenu::Command command = contextMenu.open();
+    QPointer<DolphinContextMenu> contextMenu = new DolphinContextMenu(this, item, url);
+    contextMenu->setCustomActions(customActions);
+    const DolphinContextMenu::Command command = contextMenu->open();
 
     switch (command) {
     case DolphinContextMenu::OpenParentFolderInNewWindow: {
@@ -1213,6 +1214,8 @@ void DolphinMainWindow::openContextMenu(const KFileItem& item,
     default:
         break;
     }
+
+    delete contextMenu;
 }
 
 void DolphinMainWindow::init()
@@ -1560,6 +1563,20 @@ void DolphinMainWindow::setupDockWidgets()
     connect(foldersPanel, SIGNAL(changeUrl(KUrl, Qt::MouseButtons)),
             this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons)));
 
+    // setup "Facets"
+   QDockWidget* facetDock = new QDockWidget(i18nc("@title:window", "Filter"));
+   facetDock->setObjectName("facetDock");
+   facetDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
+   Panel* facetPanel = new FacetPanel(facetDock);
+   connect(facetPanel, SIGNAL(urlActivated(KUrl)), this, SLOT(handleUrl(KUrl)));
+   facetDock->setWidget(facetPanel);
+
+   QAction* facetAction = facetDock->toggleViewAction();
+   facetAction->setIcon(KIcon("dialog-facet"));
+   addDockWidget(Qt::RightDockWidgetArea, facetDock);
+   connect(this, SIGNAL(urlChanged(KUrl)),
+           facetPanel, SLOT(setUrl(KUrl)));
+
     // setup "Terminal"
 #ifndef Q_OS_WIN
     QDockWidget* terminalDock = new QDockWidget(i18nc("@title:window Shell terminal", "Terminal"));
@@ -1614,6 +1631,7 @@ void DolphinMainWindow::setupDockWidgets()
     panelsMenu->addAction(placesAction);
     panelsMenu->addAction(infoAction);
     panelsMenu->addAction(foldersAction);
+    panelsMenu->addAction(facetAction);
 #ifndef Q_OS_WIN
     panelsMenu->addAction(terminalAction);
 #endif