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
This commit is contained in:
Rafael Fernández López 2007-06-18 17:58:25 +00:00
parent e92bbbe27c
commit 61583adb41
2 changed files with 19 additions and 2 deletions

View file

@ -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;

View file

@ -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