X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/7cdaa3f5bff507812e3e68f14c52aa0782887886..ac73af7bedeebe2afa451249e8a6500651a6ec00:/src/dolphinmodel.cpp diff --git a/src/dolphinmodel.cpp b/src/dolphinmodel.cpp index d56890251..1b94e0339 100644 --- a/src/dolphinmodel.cpp +++ b/src/dolphinmodel.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #endif #include @@ -47,6 +48,8 @@ #include #include +static const char *others = I18N_NOOP2("@title:group Name", "Others"); + DolphinModel::DolphinModel(QObject *parent) : KDirModel(parent) { @@ -85,31 +88,35 @@ QVariant DolphinModel::data(const QModelIndex &index, int role) const if (!item.isHidden() && name.at(0).isLetter()) retString = name.at(0).toUpper(); else if (item.isHidden()) { - if(name.at(0) == '.') { - if(name.size() > 1 && name.at(1).isLetter()) + if (name.at(0) == '.') { + if (name.size() > 1 && name.at(1).isLetter()) { retString = name.at(1).toUpper(); - else - retString = i18nc("@title:group Name", "Others"); - } else + } else { + retString = i18nc("@title:group Name", others); + } + } else { retString = name.at(0).toUpper(); + } } else { bool validCategory = false; const QString str(name.toUpper()); const QChar* currA = str.unicode(); while (!currA->isNull() && !validCategory) { - if (currA->isLetter()) + if (currA->isLetter()) { validCategory = true; - else if (currA->isDigit()) - return i18nc("@title:group", "Others"); - else + } else if (currA->isDigit()) { + return i18nc("@title:group Name", others); + } else { ++currA; + } } - if (!validCategory) - retString = i18nc("@title:group Name", "Others"); - else + if (!validCategory) { + retString = validCategory ? *currA : i18nc("@title:group Name", others); + } else { retString = *currA; + } } } break; @@ -214,9 +221,9 @@ QVariant DolphinModel::data(const QModelIndex &index, int role) const case DolphinModel::Tags: { retString = tagsForIndex(index); - if (retString.isEmpty()) + if (retString.isEmpty()) { retString = i18nc("@title:group Tags", "Not yet tagged"); - + } break; } #endif @@ -237,6 +244,10 @@ QVariant DolphinModel::data(const QModelIndex &index, int role) const switch (index.column()) { case KDirModel::Name: { retVariant = data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole); + + if (retVariant == i18nc("@title:group Name", others)) + retVariant = QString(QChar(QChar::ReplacementCharacter)); + break; } @@ -321,7 +332,7 @@ quint32 DolphinModel::ratingForIndex(const QModelIndex& index) const DolphinModel* dolphinModel = static_cast(index.model()); KFileItem item = dolphinModel->itemForIndex(index); if (!item.isNull()) { - const Nepomuk::Resource resource(item.url().url(), Nepomuk::NFO::File()); + const Nepomuk::Resource resource(item.url().url(), Soprano::Vocabulary::Xesam::File()); rating = resource.rating(); } return rating; @@ -339,7 +350,7 @@ QString DolphinModel::tagsForIndex(const QModelIndex& index) const DolphinModel* dolphinModel = static_cast(index.model()); KFileItem item = dolphinModel->itemForIndex(index); if (!item.isNull()) { - const Nepomuk::Resource resource(item.url().url(), Nepomuk::NFO::File()); + const Nepomuk::Resource resource(item.url().url(), Soprano::Vocabulary::Xesam::File()); const QList tags = resource.tags(); QStringList stringList; foreach (const Nepomuk::Tag& tag, tags) {