┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNate Graham <[email protected]>2017-09-21 22:55:41 -0600
committerNate Graham <[email protected]>2017-09-21 22:56:39 -0600
commit76698ff82cf5e88c1ea2e0686ce7450cf558af97 (patch)
tree0481596b76041519356583177d6a273cfcd12684 /src
parent3749b5552729b434655ddc950b120bb14fe888c7 (diff)
Add Bitrate to Dolphin's Additional Information
Summary: Adds Bitrate to Dolphin's Additional information columns. BUG: 368418 Test Plan: Tested in KDE Neon. A bitrate column can be added and shows the bitrate in kb/s: {F3907210} Works for audio as well as video files! Reviewers: #dolphin, #kde_applications, broulik, aacid, dfaure, emmanuelp Reviewed By: #dolphin, #kde_applications, emmanuelp Subscribers: rkflx, alexeymin, anthonyfieroni Tags: #dolphin Differential Revision: https://phabricator.kde.org/D7763
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp1
-rw-r--r--src/kitemviews/kfileitemmodel.h2
-rw-r--r--src/kitemviews/private/kbaloorolesprovider.cpp13
-rw-r--r--src/kitemviews/private/kbaloorolesprovider.h6
4 files changed, 21 insertions, 1 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp
index 86b010f62..8f89b89df 100644
--- a/src/kitemviews/kfileitemmodel.cpp
+++ b/src/kitemviews/kfileitemmodel.cpp
@@ -2314,6 +2314,7 @@ const KFileItemModel::RoleInfoMap* KFileItemModel::rolesInfoMap(int& count)
{ "genre", GenreRole, I18N_NOOP2_NOSTRIP("@label", "Genre"), I18N_NOOP2_NOSTRIP("@label", "Audio"), true, true },
{ "album", AlbumRole, I18N_NOOP2_NOSTRIP("@label", "Album"), I18N_NOOP2_NOSTRIP("@label", "Audio"), true, true },
{ "duration", DurationRole, I18N_NOOP2_NOSTRIP("@label", "Duration"), I18N_NOOP2_NOSTRIP("@label", "Audio"), true, true },
+ { "bitrate", BitrateRole, I18N_NOOP2_NOSTRIP("@label", "Bitrate"), I18N_NOOP2_NOSTRIP("@label", "Audio"), true, true },
{ "track", TrackRole, I18N_NOOP2_NOSTRIP("@label", "Track"), I18N_NOOP2_NOSTRIP("@label", "Audio"), true, true },
{ "releaseYear", ReleaseYearRole, I18N_NOOP2_NOSTRIP("@label", "Release Year"), I18N_NOOP2_NOSTRIP("@label", "Audio"), true, true },
{ "path", PathRole, I18N_NOOP2_NOSTRIP("@label", "Path"), I18N_NOOP2_NOSTRIP("@label", "Other"), false, false },
diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h
index 87c3cd131..5dbeb32b2 100644
--- a/src/kitemviews/kfileitemmodel.h
+++ b/src/kitemviews/kfileitemmodel.h
@@ -287,7 +287,7 @@ private:
// User visible roles available with Baloo:
CommentRole, TagsRole, RatingRole, ImageSizeRole, OrientationRole,
WordCountRole, TitleRole, LineCountRole, ArtistRole, GenreRole, AlbumRole, DurationRole, TrackRole, ReleaseYearRole,
- OriginUrlRole,
+ BitrateRole, OriginUrlRole,
// Non-visible roles:
IsDirRole, IsLinkRole, IsHiddenRole, IsExpandedRole, IsExpandableRole, ExpandedParentsCountRole,
// Mandatory last entry:
diff --git a/src/kitemviews/private/kbaloorolesprovider.cpp b/src/kitemviews/private/kbaloorolesprovider.cpp
index 808a9ba7c..314c2f06b 100644
--- a/src/kitemviews/private/kbaloorolesprovider.cpp
+++ b/src/kitemviews/private/kbaloorolesprovider.cpp
@@ -26,6 +26,7 @@
#include <Baloo/File>
#include <KFileMetaData/PropertyInfo>
#include <KFileMetaData/UserMetaData>
+#include <KFormat>
#include <QTime>
#include <QMap>
@@ -95,6 +96,9 @@ QHash<QByteArray, QVariant> KBalooRolesProvider::roleValues(const Baloo::File& f
} 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());
}
@@ -149,6 +153,7 @@ KBalooRolesProvider::KBalooRolesProvider() :
{ "genre", "genre" },
{ "album", "album" },
{ "duration", "duration" },
+ { "bitRate", "bitrate" },
{ "releaseYear", "releaseYear" },
{ "trackNumber", "track" },
{ "originUrl", "originUrl" }
@@ -194,3 +199,11 @@ QString KBalooRolesProvider::durationFromValue(int value) const
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;
+}
+
diff --git a/src/kitemviews/private/kbaloorolesprovider.h b/src/kitemviews/private/kbaloorolesprovider.h
index 65b59793c..6fef98ede 100644
--- a/src/kitemviews/private/kbaloorolesprovider.h
+++ b/src/kitemviews/private/kbaloorolesprovider.h
@@ -79,6 +79,12 @@ private:
*/
QString durationFromValue(int value) const;
+ /**
+ * @return Bitrate in the format N kB/s for the value given
+ * in b/s.
+ */
+ QString bitrateFromValue(int value) const;
+
private:
QSet<QByteArray> m_roles;
QHash<QString, QByteArray> m_roleForProperty;