[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: Re: KDE/kdelibs/kfile
From: André_Wöbbeking <Woebbeking () kde ! org>
Date: 2011-01-10 17:52:58
Message-ID: 201101101852.59597.Woebbeking () kde ! org
[Download RAW message or body]
On Monday 10 January 2011, Sebastian Trueg wrote:
> 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;
Why do you call name() with sortCaseSensitivity() == Qt::CaseInsensitive when
you already have the case sensitivity in compare()?
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic