┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphincolumnview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dolphincolumnview.cpp')
-rw-r--r--src/dolphincolumnview.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp
index f4a5ef19a..ee7fb52aa 100644
--- a/src/dolphincolumnview.cpp
+++ b/src/dolphincolumnview.cpp
@@ -173,6 +173,7 @@ void ColumnWidget::obtainSelectionModel()
if (selectionModel() != m_view->selectionModel()) {
selectionModel()->deleteLater();
setSelectionModel(m_view->selectionModel());
+ clearSelection();
}
}
@@ -428,6 +429,16 @@ DolphinColumnView::~DolphinColumnView()
{
}
+void DolphinColumnView::invertSelection()
+{
+ selectActiveColumn(QItemSelectionModel::Toggle);
+}
+
+void DolphinColumnView::selectAll()
+{
+ selectActiveColumn(QItemSelectionModel::Select);
+}
+
QAbstractItemView* DolphinColumnView::createColumn(const QModelIndex& index)
{
// let the column widget be aware about its URL...
@@ -598,7 +609,7 @@ void DolphinColumnView::requestActivation(QWidget* column)
const bool isActive = (widget == column);
widget->setActive(isActive);
if (isActive) {
- m_controller->setUrl(widget->url());
+ m_controller->setUrl(widget->url());
}
}
}
@@ -618,4 +629,23 @@ void DolphinColumnView::requestSelectionModel(QAbstractItemView* view)
}
}
+void DolphinColumnView::selectActiveColumn(QItemSelectionModel::SelectionFlags flags)
+{
+ // TODO: this approach of selecting the active column is very slow. It should be
+ // possible to speedup the implementation by using QItemSelection, but all adempts
+ // have failed yet...
+
+ QItemSelectionModel* selModel = selectionModel();
+
+ const QAbstractProxyModel* proxyModel = static_cast<const QAbstractProxyModel*>(model());
+ const KDirModel* dirModel = static_cast<const KDirModel*>(proxyModel->sourceModel());
+ KDirLister* dirLister = dirModel->dirLister();
+
+ const KFileItemList list = dirLister->itemsForDir(m_controller->url());
+ foreach (KFileItem* item, list) {
+ const QModelIndex index = dirModel->indexForUrl(item->url());
+ selModel->select(proxyModel->mapFromSource(index), flags);
+ }
+}
+
#include "dolphincolumnview.moc"