diff options
| author | Nate Graham <[email protected]> | 2017-09-21 22:55:41 -0600 |
|---|---|---|
| committer | Nate Graham <[email protected]> | 2017-09-21 22:56:39 -0600 |
| commit | 76698ff82cf5e88c1ea2e0686ce7450cf558af97 (patch) | |
| tree | 0481596b76041519356583177d6a273cfcd12684 /src/kitemviews | |
| parent | 3749b5552729b434655ddc950b120bb14fe888c7 (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/kitemviews')
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 1 | ||||
| -rw-r--r-- | src/kitemviews/kfileitemmodel.h | 2 | ||||
| -rw-r--r-- | src/kitemviews/private/kbaloorolesprovider.cpp | 13 | ||||
| -rw-r--r-- | src/kitemviews/private/kbaloorolesprovider.h | 6 |
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; |
