-void ColumnWidget::updateSelection(const KUrl& url)
-{
- setSelectionMode(SingleSelection);
- QItemSelectionModel* selModel = selectionModel();
- if (url.isEmpty()) {
- if (!m_active) {
- selModel->clear();
- }
- } else {
- const QAbstractProxyModel* proxyModel = static_cast<const QAbstractProxyModel*>(m_view->model());
- const KDirModel* dirModel = static_cast<const KDirModel*>(proxyModel->sourceModel());
- const QModelIndex dirIndex = dirModel->indexForUrl(url);
- const QModelIndex proxyIndex = proxyModel->mapFromSource(dirIndex);
-
- const QItemSelection selection = selModel->selection();
- const bool isIndexSelected = selModel->isSelected(proxyIndex);
-
- if (!m_active && ((selection.count() > 1) || !isIndexSelected)) {
- selModel->clear();
- }
- if (!isIndexSelected) {
- selModel->select(proxyIndex, QItemSelectionModel::Select);
- }
- }
-}
-