[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kfile
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2011-01-10 13:07:10
Message-ID: 20110110130710.46B44AC8B2 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1213464 by trueg:

When sorting by name KDirSortFilterProxyModel uses UDS_DISPLAY_NAME.
The latter, however, is not unique. This results in strange GUI behaviour
like swapping items. This patch makes the model fall back to UDS_NAME to
ensure a fixed sort order.

See also review request http://reviewboard.kde.org/r/6322/

 M  +10 -1     kdirsortfilterproxymodel.cpp  


--- trunk/KDE/kdelibs/kfile/kdirsortfilterproxymodel.cpp #1213463:1213464
@@ -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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic