X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ffe9f62839d5bc908dfd3d6b2c237464c907a78c..1e1e1b6c8604dfef3acca02badfce62e819c79ee:/src/dolphincolumnview.cpp diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 979ff7649..a85e0198a 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -503,6 +503,23 @@ void DolphinColumnView::reload() dirLister->openUrl(rootUrl, false, true); } +void DolphinColumnView::invertSelection() +{ + // TODO: this approach of inverting the selection is quite slow. It should + // be possible to speedup the implementation by using QItemSelection, but + // all adempts have failed yet... + + ColumnWidget* column = activeColumn(); + QItemSelectionModel* selModel = column->selectionModel(); + + KDirLister* dirLister = m_dolphinModel->dirLister(); + const KFileItemList list = dirLister->itemsForDir(column->url()); + foreach (KFileItem* item, list) { + const QModelIndex index = m_dolphinModel->indexForUrl(item->url()); + selModel->select(m_proxyModel->mapFromSource(index), QItemSelectionModel::Toggle); + } +} + void DolphinColumnView::showColumn(const KUrl& url) { const KUrl& rootUrl = m_columns[0]->url(); @@ -618,7 +635,14 @@ void DolphinColumnView::showColumn(const KUrl& url) m_index = columnIndex; activeColumn()->setActive(true); - expandToActiveUrl(); + connect(dirLister, SIGNAL(completed()), + this, SLOT(expandToActiveUrl())); + dirLister->openUrl(rootUrl, false, true); +} + +void DolphinColumnView::selectAll() +{ + activeColumn()->selectAll(); } bool DolphinColumnView::isIndexHidden(const QModelIndex& index) const @@ -756,6 +780,9 @@ void DolphinColumnView::updateDecorationSize() void DolphinColumnView::expandToActiveUrl() { + disconnect(m_dolphinModel->dirLister(), SIGNAL(completed()), + this, SLOT(expandToActiveUrl())); + const int lastIndex = m_columns.count() - 1; Q_ASSERT(lastIndex >= 0); const KUrl& activeUrl = m_columns[lastIndex]->url(); @@ -781,9 +808,6 @@ void DolphinColumnView::reloadColumns() for (int i = 0; i <= end; ++i) { ColumnWidget* nextColumn = m_columns[i + 1]; - KDirLister* dirLister = m_dolphinModel->dirLister(); - dirLister->updateDirectory(nextColumn->url()); - const QModelIndex rootIndex = nextColumn->rootIndex(); if (rootIndex.isValid()) { nextColumn->show();