diff options
| author | Peter Penz <[email protected]> | 2008-06-18 19:34:03 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-06-18 19:34:03 +0000 |
| commit | b8a4e0fac2820ec8fc442c2abeea700ae4947e01 (patch) | |
| tree | 22d132204de327656614ee2dfe97834218eef776 /src/dolphincolumnwidget.cpp | |
| parent | 91607d4c4d60d7d51827e770e5504aa4ff552e48 (diff) | |
Assure that when requesting the context menu for the column-view, that the correct items are used.
TODO for 4.2: get rid of those 'if (isColumnViewActive())' special cases and provide a generic model which also works with the way the column view is implemented
BUG: 164146
svn path=/trunk/KDE/kdebase/apps/; revision=821903
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. |
