From 08a485349f2bd73682ac806b97d3630c3a7dd3fd Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Wed, 7 Mar 2012 22:12:07 +0100 Subject: Allow custom sorting of details-view columns Fix regression that Dolphin 2.0 did not allow to adjust the sorting of the details-view columns. BUG: 164696 FIXED-IN: 4.8.2 --- src/views/dolphinview.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/views/dolphinview.cpp') diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index ea7441600..148459f68 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -161,6 +161,8 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : this, SLOT(slotSortOrderChangedByHeader(Qt::SortOrder,Qt::SortOrder))); connect(view, SIGNAL(sortRoleChanged(QByteArray,QByteArray)), this, SLOT(slotSortRoleChangedByHeader(QByteArray,QByteArray))); + connect(view, SIGNAL(visibleRolesChanged(QList,QList)), + this, SLOT(slotVisibleRolesChangedByHeader(QList,QList))); KItemListSelectionManager* selectionManager = controller->selectionManager(); connect(selectionManager, SIGNAL(selectionChanged(QSet,QSet)), @@ -1157,6 +1159,29 @@ void DolphinView::slotSortRoleChangedByHeader(const QByteArray& current, const Q emit sortingChanged(sorting); } +void DolphinView::slotVisibleRolesChangedByHeader(const QList& current, + const QList& previous) +{ + Q_UNUSED(previous); + Q_ASSERT(m_container->controller()->view()->visibleRoles() == current); + + const QList previousAdditionalInfoList = m_additionalInfoList; + + m_additionalInfoList.clear(); + m_additionalInfoList.reserve(current.count()); + const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); + foreach (const QByteArray& role, current) { + if (role != "name") { + m_additionalInfoList.append(infoAccessor.additionalInfo(role)); + } + } + + ViewProperties props(url()); + props.setAdditionalInfoList(m_additionalInfoList); + + emit additionalInfoListChanged(m_additionalInfoList, previousAdditionalInfoList); +} + KFileItemModel* DolphinView::fileItemModel() const { return static_cast(m_container->controller()->model()); -- cgit v1.3