- if (itemA.isDir()) {
- // See "if (m_sortFoldersFirst || m_sortRole == SizeRole)" in KFileItemModel::lessThan():
- Q_ASSERT(itemB.isDir());
-
- QVariant valueA, valueB;
- if (DetailsModeSettings::directorySizeCount()) {
- valueA = a->values.value("count");
- valueB = b->values.value("count");
- } else {
- // use dir size then
- valueA = a->values.value("size");
- valueB = b->values.value("size");
- }
- if (valueA.isNull() && valueB.isNull()) {
- result = 0;
- } else if (valueA.isNull()) {
- result = -1;
- } else if (valueB.isNull()) {
- result = +1;
- } else {
- if (valueA.toLongLong() < valueB.toLongLong()) {
- return -1;
- } else {
+ if (DetailsModeSettings::directorySizeCount() && (itemA.isDir() || itemB.isDir())) {
+ // folders first then
+ if (itemA.isDir() && itemB.isDir()) {
+ auto valueA = a->values.value("count");
+ auto valueB = b->values.value("count");
+ if (valueA.isNull()) {
+ if (valueB.isNull()) {
+ return 0;
+ } else {
+ return -1;
+ }
+ } else if (valueB.isNull()) {