From: Rafael Fernández López Date: Mon, 18 Jun 2007 17:58:25 +0000 (+0000) Subject: Dolphin has to react as Konqueror on KDE3. If we find files containing symbols, we... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/61583adb4122db83309dd1120b4c6cd2722d1a68 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 --- 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