]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Add Bitrate to Dolphin's Additional Information
authorNate Graham <pointedstick@zoho.com>
Fri, 22 Sep 2017 04:55:41 +0000 (22:55 -0600)
committerNate Graham <pointedstick@zoho.com>
Fri, 22 Sep 2017 04:56:39 +0000 (22:56 -0600)
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

src/kitemviews/kfileitemmodel.cpp
src/kitemviews/kfileitemmodel.h
src/kitemviews/private/kbaloorolesprovider.cpp
src/kitemviews/private/kbaloorolesprovider.h

index 86b010f620c95343fd9b97b6f1b30759ced7457b..8f89b89df620fa7cff8d3f36a85f525cbdc21418 100644 (file)
@@ -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 },
index 87c3cd131e66c7beebea8e2f3afd8419e626a85f..5dbeb32b2e2a7e416f8f143d595fe2264081a3b1 100644 (file)
@@ -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:
index 808a9ba7c563eaa0f9e6add7d80a24743174b603..314c2f06bcd23c48a050466063fb7d812073aefc 100644 (file)
@@ -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;
+}
+
index 65b59793cdca051c8acb45fd36a1c37fb4157f90..6fef98edee635884619d16df8008aacf3f1f20c4 100644 (file)
@@ -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;