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

List:       kde-commits
Subject:    Re: KDE/kdelibs/kfile
From:       David Faure <faure () kde ! org>
Date:       2011-01-10 18:21:35
Message-ID: 201101101921.36367.faure () kde ! org
[Download RAW message or body]

On Monday 10 January 2011, André Wöbbeking wrote:
> 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()?

To benefit from the lowercase-name caching done inside KFileItem::name(bool), I 
suppose.

Although then the last argument to compare() might not be necessary. Currently 
there is no benefit indeed, since a case-insensitive comparison will be done 
anyway.

-- 
David Faure, faure@kde.org, http://www.davidfaure.fr
Sponsored by Nokia to work on KDE, incl. Konqueror (http://www.konqueror.org).

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

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