]> cloud.milkyroute.net Git - dolphin.git/commitdiff
If we are sorting by rating, we won't apply the general rule: folders before regular...
authorRafael Fernández López <ereslibre@kde.org>
Fri, 22 Jun 2007 13:58:21 +0000 (13:58 +0000)
committerRafael Fernández López <ereslibre@kde.org>
Fri, 22 Jun 2007 13:58:21 +0000 (13:58 +0000)
decision. In this case folders and files are citizens of the same class.

CCMAIL: peter.penz@gmx.at

svn path=/trunk/KDE/kdebase/apps/; revision=678894

src/dolphinsortfilterproxymodel.cpp

index 21194f66ebfd32da1898136b36f998873fbafc8b..648b6133b66b8a5b103c3912334e10e0690e504c 100644 (file)
@@ -188,11 +188,16 @@ bool DolphinSortFilterProxyModel::lessThan(const QModelIndex& left,
     const KFileItem* leftFileItem  = dirModel->itemForIndex(left);
     const KFileItem* rightFileItem = dirModel->itemForIndex(right);
 
-    // On our priority, folders go above regular files.
-    if (leftFileItem->isDir() && !rightFileItem->isDir()) {
-        return true;
-    } else if (!leftFileItem->isDir() && rightFileItem->isDir()) {
-        return false;
+    // If we are sorting by rating, folders and files are citizens of the same
+    // class
+    if (sortRole() != DolphinView::SortByRating)
+    {
+        // On our priority, folders go above regular files.
+        if (leftFileItem->isDir() && !rightFileItem->isDir()) {
+            return true;
+        } else if (!leftFileItem->isDir() && rightFileItem->isDir()) {
+            return false;
+        }
     }
 
     // Hidden elements go before visible ones, if they both are
@@ -312,6 +317,13 @@ bool DolphinSortFilterProxyModel::lessThan(const QModelIndex& left,
         const quint32 rightRating = ratingForIndex(right);
 
         if (leftRating == rightRating) {
+            // On our priority, folders go above regular files.
+            if (leftFileItem->isDir() && !rightFileItem->isDir()) {
+                return true;
+            } else if (!leftFileItem->isDir() && rightFileItem->isDir()) {
+                return false;
+            }
+
             return sortCaseSensitivity() ?
                    (naturalCompare(leftFileItem->name(), rightFileItem->name()) < 0) :
                    (naturalCompare(leftFileItem->name().toLower(), rightFileItem->name().toLower()) < 0);