mirror of
https://invent.kde.org/system/dolphin
synced 2024-07-04 17:30:55 +00:00
Slightly refactor count resorting
The bug fix 8f043b2958
introduced a
secondary code path to trigger a resort of items. However, the previous
way to trigger it only required a small bug fix to work and gives us a
couple of optimisations for free. This commit removes the secondary code
path and fixes the primary one.
CCBUG: 473999
This commit is contained in:
parent
a85302d567
commit
e817c3246c
|
@ -1726,7 +1726,8 @@ void KFileItemModel::emitItemsChangedAndTriggerResorting(const KItemRangeList &i
|
|||
|
||||
// Trigger a resorting if necessary. Note that this can happen even if the sort
|
||||
// role has not changed at all because the file name can be used as a fallback.
|
||||
if (changedRoles.contains(sortRole()) || changedRoles.contains(roleForType(NameRole))) {
|
||||
if (changedRoles.contains(sortRole()) || changedRoles.contains(roleForType(NameRole))
|
||||
|| (changedRoles.contains("count") && sortRole() == "size")) { // "count" is used in the "size" sort role, so this might require a resorting.
|
||||
for (const KItemRange &range : itemRanges) {
|
||||
bool needsResorting = false;
|
||||
|
||||
|
@ -1751,7 +1752,7 @@ void KFileItemModel::emitItemsChangedAndTriggerResorting(const KItemRangeList &i
|
|||
}
|
||||
|
||||
if (needsResorting) {
|
||||
m_resortAllItemsTimer->start();
|
||||
scheduleResortAllItems();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -205,8 +205,6 @@ public:
|
|||
/** set to true to hide application/x-trash files */
|
||||
void setShowTrashMime(bool show);
|
||||
|
||||
void scheduleResortAllItems();
|
||||
|
||||
Q_SIGNALS:
|
||||
/**
|
||||
* Is emitted if the loading of a directory has been started. It is
|
||||
|
@ -464,6 +462,8 @@ private:
|
|||
*/
|
||||
bool isChildItem(int index) const;
|
||||
|
||||
void scheduleResortAllItems();
|
||||
|
||||
/**
|
||||
* Is invoked by KFileItemModelRolesUpdater and results in emitting the
|
||||
* sortProgress signal with a percent-value of the progress.
|
||||
|
|
|
@ -1354,10 +1354,6 @@ void KFileItemModelRolesUpdater::startDirectorySizeCounting(const KFileItem &ite
|
|||
disconnect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged);
|
||||
m_model->setData(index, newData);
|
||||
connect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged);
|
||||
|
||||
if (newData.contains("count") && m_model->sortRole() == "size") {
|
||||
m_model->scheduleResortAllItems();
|
||||
}
|
||||
}
|
||||
});
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue
Block a user