]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix saving sort role after change from header
authorFelix Ernst <felixernst@kde.org>
Tue, 9 Apr 2024 05:53:41 +0000 (05:53 +0000)
committerMéven Car <meven.car@kdemail.net>
Tue, 9 Apr 2024 05:53:41 +0000 (05:53 +0000)
This is a partial revert of
5186f09cabf0af4b0683e75b0bcde1061f84a67e. That commit tried to
simplify code, however this lead to the saving of view properties
being skipped, introducing the linked bug.

The issue is that by the time the slotSortRoleChangedFromHeader()
method is called, the model already changed its sort role.
Therefore the check if the new role is identical to the old sort
role fails and no saving would occur.

With this partial revert the header will continue to change the
sort role itself (which allows a minor optimization of not double
sorting when also changing the sort order at the same time). The
method slotSortRoleChangedFromHeader() is then only responsible
for saving that change in the ViewProperties and telling the
SortBy menu in the user interface that the sorting has changed.

BUG: 480246

src/views/dolphinview.cpp

index 32209b9fb29a8184be3a4331d4e29671c2173d2e..613f99405f957a269c89407b16e57b37f9058160 100644 (file)
@@ -1936,7 +1936,10 @@ void DolphinView::slotSortRoleChangedByHeader(const QByteArray &current, const Q
     Q_UNUSED(previous)
     Q_ASSERT(m_model->sortRole() == current);
 
-    setSortRole(current);
+    ViewProperties props(viewPropertiesUrl());
+    props.setSortRole(current);
+
+    Q_EMIT sortRoleChanged(current);
 }
 
 void DolphinView::slotVisibleRolesChangedByHeader(const QList<QByteArray> &current, const QList<QByteArray> &previous)