From 61583adb4122db83309dd1120b4c6cd2722d1a68 Mon Sep 17 00:00:00 2001 From: Rafael Fernández López Date: Mon, 18 Jun 2007 17:58:25 +0000 Subject: Dolphin has to react as Konqueror on KDE3. If we find files containing symbols, we wait for the first letter to categorize it. "((a.txt" goes on category "A", ")2.txt" goes on category "Others". svn path=/trunk/KDE/kdebase/apps/; revision=677225 --- src/dolphinitemcategorizer.cpp | 19 ++++++++++++++++++- src/dolphinsortfilterproxymodel.cpp | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/dolphinitemcategorizer.cpp b/src/dolphinitemcategorizer.cpp index 8d9405dda..88e6733c9 100644 --- a/src/dolphinitemcategorizer.cpp +++ b/src/dolphinitemcategorizer.cpp @@ -111,7 +111,24 @@ QString DolphinItemCategorizer::categoryForItem(const QModelIndex& index, else if (item->isHidden()) retString = data.toString().toUpper().at(0); else - retString = i18n("Others"); + { + bool validCategory = false; + + const QChar* currA = data.toString().toUpper().unicode(); // iterator over a + while (!currA->isNull() && !validCategory) { + if (currA->isLetter()) + validCategory = true; + else if (currA->isDigit()) + return i18n("Others"); + else + ++currA; + } + + if (!validCategory) + retString = i18n("Others"); + else + retString = *currA; + } } break; diff --git a/src/dolphinsortfilterproxymodel.cpp b/src/dolphinsortfilterproxymodel.cpp index 17880e5a8..aec5cd86e 100644 --- a/src/dolphinsortfilterproxymodel.cpp +++ b/src/dolphinsortfilterproxymodel.cpp @@ -133,7 +133,7 @@ bool DolphinSortFilterProxyModel::lessThanGeneralPurpose(const QModelIndex &left // We don't care about case for building categories. We also don't // want here to compare by a natural comparation - return QString::compare(leftFileName, rightFileName, Qt::CaseInsensitive) < 0; + return naturalCompare(leftFileName, rightFileName) < 0; } else if (sortRole() == DolphinView::SortBySize) { // If we are sorting by size // If we are sorting by size, show folders first. We will sort them -- cgit v1.3