X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9b99cefca572a8c8e11fae4178d23706b48d586e..d361e8b9b4e955831909f2beb4fb7b91a3cf3c5f:/src/dolphinmodel.cpp diff --git a/src/dolphinmodel.cpp b/src/dolphinmodel.cpp index 54647d91c..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) { @@ -80,38 +83,40 @@ QVariant DolphinModel::data(const QModelIndex &index, int role) const return retString; } QVariant data = theIndex.model()->data(theIndex, Qt::DisplayRole); - QString name = data.toString(); + QString name = data.toString(); if (!name.isEmpty()) { 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()) + else if (item.isHidden()) { + 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 - { + } + } 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; @@ -216,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 @@ -239,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; } @@ -323,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; @@ -341,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) {