X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ffcd3ed51435668b203ce58d34d2d625e9a7889d..e801bddf91ef73f0e05a0e810b9543c355ab877f:/src/treeviewsidebarpage.cpp diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index c605babf0..4dddeae5c 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -20,6 +20,7 @@ #include "treeviewsidebarpage.h" #include "bookmarkselector.h" +#include "dolphincontextmenu.h" #include "dolphinmainwindow.h" #include "dolphinsortfilterproxymodel.h" #include "dolphinview.h" @@ -103,6 +104,31 @@ void TreeViewSidebarPage::showEvent(QShowEvent* event) connectToActiveView(); } +void TreeViewSidebarPage::contextMenuEvent(QContextMenuEvent* event) +{ + SidebarPage::contextMenuEvent(event); + + const QModelIndex index = m_treeView->indexAt(event->pos()); + if (!index.isValid()) { + // only open a context menu above a directory item + return; + } + +#if defined(USE_PROXY_MODEL) + const QModelIndex dirModelIndex = m_proxyModel->mapToSource(index); + KFileItem* item = m_dirModel->itemForIndex(dirModelIndex); +#else + KFileItem* item = m_dirModel->itemForIndex(index); +#endif + + mainWindow()->activeView()->clearSelection(); + DolphinContextMenu contextMenu(mainWindow(), + item, + m_dirLister->url(), + DolphinContextMenu::SidebarView); + contextMenu.open(); +} + void TreeViewSidebarPage::updateSelection(const KUrl& url) { if (!url.isValid() || (url == m_selectedUrl)) {