#include "kbaloorolesprovider.h"
-#include <KDebug>
-#include <KGlobal>
-#include <KLocale>
+#include <QDebug>
+#include <KLocalizedString>
#include <Baloo/File>
#include <KFileMetaData/PropertyInfo>
#include <KFileMetaData/UserMetaData>
+#include <KFormat>
#include <QTime>
#include <QMap>
+#include <QCollator>
struct KBalooRolesProviderSingleton
{
KBalooRolesProvider instance;
};
-K_GLOBAL_STATIC(KBalooRolesProviderSingleton, s_balooRolesProvider)
+Q_GLOBAL_STATIC(KBalooRolesProviderSingleton, s_balooRolesProvider)
KBalooRolesProvider& KBalooRolesProvider::instance()
} else if (role == "duration") {
const QString duration = durationFromValue(value.toInt());
values.insert(role, duration);
+ } else if (role == "bitrate") {
+ const QString bitrate = bitrateFromValue(value.toInt());
+ values.insert(role, bitrate);
} else {
values.insert(role, value.toString());
}
if (roles.contains("comment")) {
values.insert("comment", md.userComment());
}
+ if (roles.contains("originUrl")) {
+ values.insert("originUrl", md.originUrl());
+ }
return values;
}
{ "rating", "rating" },
{ "tag", "tags" },
{ "comment", "comment" },
+ { "title", "title" },
{ "wordCount", "wordCount" },
{ "lineCount", "lineCount" },
{ "width", "imageSize" },
{ "height", "imageSize" },
+ { "imageDateTime", "imageDateTime"},
{ "nexif.orientation", "orientation", },
{ "artist", "artist" },
+ { "genre", "genre" },
{ "album", "album" },
{ "duration", "duration" },
- { "trackNumber", "track" }
- // { "http://www.semanticdesktop.org/ontologies/2010/04/30/ndo#copiedFrom", "copiedFrom" }
+ { "bitRate", "bitrate" },
+ { "releaseYear", "releaseYear" },
+ { "trackNumber", "track" },
+ { "originUrl", "originUrl" }
};
for (unsigned int i = 0; i < sizeof(propertyInfoList) / sizeof(PropertyInfo); ++i) {
QString KBalooRolesProvider::tagsFromValues(const QStringList& values) const
{
- return values.join(", ");
+ QStringList alphabeticalOrderTags = values;
+ QCollator coll;
+ coll.setNumericMode(true);
+ std::sort(alphabeticalOrderTags.begin(), alphabeticalOrderTags.end(), [&](const QString& s1, const QString& s2){ return coll.compare(s1, s2) < 0; });
+ return alphabeticalOrderTags.join(QStringLiteral(", "));
}
QString KBalooRolesProvider::orientationFromValue(int value) const
QString KBalooRolesProvider::durationFromValue(int value) const
{
- QTime duration;
+ QTime duration(0, 0, 0);
duration = duration.addSecs(value);
- return duration.toString("hh:mm:ss");
+ return duration.toString(QStringLiteral("hh:mm:ss"));
+}
+
+
+QString KBalooRolesProvider::bitrateFromValue(int value) const
+{
+ KFormat form;
+ QString bitrate = i18nc("@label bitrate (per second)", "%1/s", form.formatByteSize(value, 1, KFormat::MetricBinaryDialect));
+ return bitrate;
}