mirror of
https://invent.kde.org/system/dolphin
synced 2024-07-04 17:30:55 +00:00
Fix for necessary roles not being fetched before grouping. Visual polish
This commit is contained in:
parent
187933a7a6
commit
8d30497f71
|
@ -1690,7 +1690,7 @@ void KFileItemModel::removeItems(const KItemRangeList &itemRanges, RemoveItemsBe
|
||||||
|
|
||||||
QList<KFileItemModel::ItemData *> KFileItemModel::createItemDataList(const QUrl &parentUrl, const KFileItemList &items) const
|
QList<KFileItemModel::ItemData *> KFileItemModel::createItemDataList(const QUrl &parentUrl, const KFileItemList &items) const
|
||||||
{
|
{
|
||||||
if (m_sortRole == TypeRole) {
|
if (m_sortRole == TypeRole || m_groupRole == TypeRole) {
|
||||||
// Try to resolve the MIME-types synchronously to prevent a reordering of
|
// Try to resolve the MIME-types synchronously to prevent a reordering of
|
||||||
// the items when sorting by type (per default MIME-types are resolved
|
// the items when sorting by type (per default MIME-types are resolved
|
||||||
// asynchronously by KFileItemModelRolesUpdater).
|
// asynchronously by KFileItemModelRolesUpdater).
|
||||||
|
@ -1753,6 +1753,35 @@ void KFileItemModel::prepareItemsForSorting(QList<ItemData *> &itemDataList)
|
||||||
// DateRole).
|
// DateRole).
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
switch (m_groupRole) {
|
||||||
|
case ExtensionRole:
|
||||||
|
case PermissionsRole:
|
||||||
|
case OwnerRole:
|
||||||
|
case GroupRole:
|
||||||
|
case DestinationRole:
|
||||||
|
case PathRole:
|
||||||
|
case DeletionTimeRole:
|
||||||
|
for (ItemData *itemData : std::as_const(itemDataList)) {
|
||||||
|
if (itemData->values.isEmpty()) {
|
||||||
|
itemData->values = retrieveData(itemData->item, itemData->parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TypeRole:
|
||||||
|
for (ItemData *itemData : std::as_const(itemDataList)) {
|
||||||
|
if (itemData->values.isEmpty()) {
|
||||||
|
const KFileItem item = itemData->item;
|
||||||
|
if (item.isDir() || item.isMimeTypeKnown()) {
|
||||||
|
itemData->values = retrieveData(itemData->item, itemData->parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int KFileItemModel::expandedParentsCount(const ItemData *data)
|
int KFileItemModel::expandedParentsCount(const ItemData *data)
|
||||||
|
|
|
@ -796,6 +796,15 @@ void DolphinViewActionHandler::slotGroupRoleChanged(const QByteArray &role)
|
||||||
ascending->setText(i18nc("Group ascending", "Ascending"));
|
ascending->setText(i18nc("Group ascending", "Ascending"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Disable group order selector if grouping behavior does not support it
|
||||||
|
if (role == "none" || role == "followSort") {
|
||||||
|
descending->setEnabled(false);
|
||||||
|
ascending->setEnabled(false);
|
||||||
|
} else {
|
||||||
|
descending->setEnabled(true);
|
||||||
|
ascending->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
slotGroupOrderChanged(m_currentView->groupOrder());
|
slotGroupOrderChanged(m_currentView->groupOrder());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user