From kde-commits Mon Jan 10 13:08:00 2011 From: Sebastian Trueg Date: Mon, 10 Jan 2011 13:08:00 +0000 To: kde-commits Subject: branches/KDE/4.6/kdelibs/kfile Message-Id: <20110110130800.6C7F6AC8B2 () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=129466491029698 SVN commit 1213465 by trueg: Backport: Fixed sorting if two items have the same UDS_DISPLAY_NAME. M +10 -1 kdirsortfilterproxymodel.cpp --- branches/KDE/4.6/kdelibs/kfile/kdirsortfilterproxymodel.cpp #1213464:1213465 @@ -168,8 +168,17 @@ switch (left.column()) { case KDirModel::Name: { - return d->compare(leftFileItem.text(), rightFileItem.text(), sortCaseSensitivity()) < 0; + // KFileItem::text() may not be unique (in case UDS_DISPLAY_NAME is used). In that case we + // fall back to the name which is always unique + const int result = d->compare(leftFileItem.text(), rightFileItem.text(), sortCaseSensitivity()); + if (result == 0) { + return d->compare(leftFileItem.name(sortCaseSensitivity() == Qt::CaseInsensitive), + rightFileItem.name(sortCaseSensitivity() == Qt::CaseInsensitive), + sortCaseSensitivity()) < 0; + } else { + return result < 0; } + } case KDirModel::Size: { // If we have two folders, what we have to measure is the number of