diff options
Diffstat (limited to 'src/dolphincolumnwidget.cpp')
| -rw-r--r-- | src/dolphincolumnwidget.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index 8f3b253aa..6d983f71f 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -28,6 +28,7 @@ #include "dolphin_columnmodesettings.h" #include "dolphin_generalsettings.h" #include "draganddrophelper.h" +#include "iconmanager.h" #include "selectionmanager.h" #include "tooltipmanager.h" @@ -39,8 +40,6 @@ #include <kjob.h> #include <konqmimedata.h> -#include "iconmanager.h" - #include <QApplication> #include <QClipboard> #include <QPainter> @@ -246,6 +245,33 @@ void DolphinColumnWidget::editItem(const KFileItem& item) } } +KFileItem DolphinColumnWidget::itemAt(const QPoint& pos) const +{ + KFileItem item; + const QModelIndex index = indexAt(pos); + if (index.isValid() && (index.column() == DolphinModel::Name)) { + const QModelIndex dolphinModelIndex = m_proxyModel->mapToSource(index); + item = m_dolphinModel->itemForIndex(dolphinModelIndex); + } + return item; +} + +KFileItemList DolphinColumnWidget::selectedItems() const +{ + const QItemSelection selection = m_proxyModel->mapSelectionToSource(selectionModel()->selection()); + KFileItemList itemList; + + const QModelIndexList indexList = selection.indexes(); + foreach (const QModelIndex &index, indexList) { + KFileItem item = m_dolphinModel->itemForIndex(index); + if (!item.isNull()) { + itemList.append(item); + } + } + + return itemList; +} + QStyleOptionViewItem DolphinColumnWidget::viewOptions() const { QStyleOptionViewItem viewOptions = QListView::viewOptions(); @@ -364,6 +390,10 @@ void DolphinColumnWidget::contextMenuEvent(QContextMenuEvent* event) QListView::contextMenuEvent(event); const QModelIndex index = indexAt(event->pos()); + if (!index.isValid()) { + clearSelection(); + } + if (index.isValid() || m_active) { // Only open a context menu above an item or if the mouse is above // the active column. |
