Forward port of SVN commit 1093803: Assure that the changed selection model is reconnected when changing columns. This fixes the regression that some operations have been disabled on sub columns. Thanks to Frank Reininghaus for the analyses.

CCBUG: 226749

svn path=/trunk/KDE/kdebase/apps/; revision=1093807
This commit is contained in:
Peter Penz 2010-02-21 13:29:32 +00:00
parent a2f0d69558
commit 642062284c

View file

@ -535,10 +535,7 @@ QList<QAction*> DolphinView::versionControlActions(const KFileItemList& items) c
void DolphinView::setUrl(const KUrl& url)
{
if (m_controller->url() == url) {
return;
}
if (m_controller->url() != url) {
m_newFileNames.clear();
m_controller->setUrl(url); // emits urlChanged, which we forward
@ -551,6 +548,17 @@ void DolphinView::setUrl(const KUrl& url)
m_viewAccessor.dirModel()->clearVersionData();
emit startedPathLoading(url);
}
// the selection model might have changed in the case of a column view
QItemSelectionModel* selectionModel = m_viewAccessor.itemView()->selectionModel();
if (m_selectionModel != selectionModel) {
disconnect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
this, SLOT(slotSelectionChanged(QItemSelection, QItemSelection)));
m_selectionModel = selectionModel;
connect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
this, SLOT(slotSelectionChanged(QItemSelection, QItemSelection)));
}
}
void DolphinView::selectAll()
@ -1325,8 +1333,8 @@ void DolphinView::createView()
m_selectionModel = view->selectionModel();
}
m_selectionModel->setParent(this);
connect(view->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),
this, SLOT(slotSelectionChanged(const QItemSelection&, const QItemSelection&)));
connect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
this, SLOT(slotSelectionChanged(QItemSelection, QItemSelection)));
setFocusProxy(m_viewAccessor.layoutTarget());
m_topLayout->insertWidget(1, m_viewAccessor.layoutTarget());