[vlc-devel] [PATCH 11/17] qt: add property durationShort to album model

Prince Gupta guptaprince8832 at gmail.com
Fri Jun 19 16:06:24 CEST 2020


---
 modules/gui/qt/medialibrary/mlalbum.cpp      | 13 +++++++++++++
 modules/gui/qt/medialibrary/mlalbum.hpp      |  3 +++
 modules/gui/qt/medialibrary/mlalbummodel.cpp |  4 ++++
 modules/gui/qt/medialibrary/mlalbummodel.hpp |  1 +
 4 files changed, 21 insertions(+)

diff --git a/modules/gui/qt/medialibrary/mlalbum.cpp b/modules/gui/qt/medialibrary/mlalbum.cpp
index 2c4a1e9bb8..5fa09b5ba0 100644
--- a/modules/gui/qt/medialibrary/mlalbum.cpp
+++ b/modules/gui/qt/medialibrary/mlalbum.cpp
@@ -37,14 +37,22 @@ MLAlbum::MLAlbum(vlc_medialibrary_t* _ml, const vlc_ml_album_t *_data, QObject *
     int min = (t_sec / 60) % 60;
     int hour = t_sec / 3600;
     if (hour == 0)
+    {
         m_duration = QString("%1:%2")
                 .arg(min, 2, 10, QChar('0'))
                 .arg(sec, 2, 10, QChar('0'));
+        m_durationShort = m_duration;
+    }
     else
+    {
         m_duration = QString("%1:%2:%3")
                 .arg(hour, 2, 10, QChar('0'))
                 .arg(min, 2, 10, QChar('0'))
                 .arg(sec, 2, 10, QChar('0'));
+        m_durationShort = QString("%1h%2")
+                .arg(hour)
+                .arg(min, 2, 10, QChar('0'));
+    }
 }
 
 //private ctor for cloning
@@ -103,6 +111,11 @@ QString MLAlbum::getDuration() const
     return m_duration;
 }
 
+QString MLAlbum::getDurationShort() const
+{
+    return m_durationShort;
+}
+
 MLAlbum *MLAlbum::clone(QObject *parent) const
 {
     return new MLAlbum(*this, parent);
diff --git a/modules/gui/qt/medialibrary/mlalbum.hpp b/modules/gui/qt/medialibrary/mlalbum.hpp
index b907e441b0..95ca6088a5 100644
--- a/modules/gui/qt/medialibrary/mlalbum.hpp
+++ b/modules/gui/qt/medialibrary/mlalbum.hpp
@@ -43,6 +43,7 @@ class MLAlbum : public QObject
     Q_PROPERTY(QString artist READ getArtist CONSTANT)
     Q_PROPERTY(unsigned int nbtracks READ getNbTracks CONSTANT)
     Q_PROPERTY(QString duration READ getDuration CONSTANT)
+    Q_PROPERTY(QString durationShort READ getDuration CONSTANT)
 
 public:
     MLAlbum(vlc_medialibrary_t* _ml, const vlc_ml_album_t *_data, QObject *_parent = nullptr);
@@ -55,6 +56,7 @@ public:
     QString getArtist() const;
     unsigned int getNbTracks() const;
     QString getDuration() const;
+    QString getDurationShort() const;
 
     MLAlbum* clone(QObject *parent = nullptr) const;
 
@@ -77,4 +79,5 @@ private:
     QList<QString> m_otherArtists;
     unsigned int m_nbTracks;
     QString m_duration;
+    QString m_durationShort;
 };
diff --git a/modules/gui/qt/medialibrary/mlalbummodel.cpp b/modules/gui/qt/medialibrary/mlalbummodel.cpp
index b4a62b9de0..d8a686eeda 100644
--- a/modules/gui/qt/medialibrary/mlalbummodel.cpp
+++ b/modules/gui/qt/medialibrary/mlalbummodel.cpp
@@ -59,6 +59,8 @@ QVariant MLAlbumModel::data(const QModelIndex &index, int role) const
         return QVariant::fromValue( ml_item->getNbTracks() );
     case ALBUM_DURATION:
         return QVariant::fromValue( ml_item->getDuration() );
+    case ALBUM_DURATION_SHORT:
+        return QVariant::fromValue( ml_item->getDurationShort() );
     case ALBUM_TITLE_FIRST_SYMBOL:
         return QVariant::fromValue( getFirstSymbol( ml_item->getTitle() ) );
     case ALBUM_MAIN_ARTIST_FIRST_SYMBOL:
@@ -79,6 +81,7 @@ QHash<int, QByteArray> MLAlbumModel::roleNames() const
         {ALBUM_MAIN_ARTIST, "main_artist"},
         {ALBUM_NB_TRACKS, "nb_tracks"},
         {ALBUM_DURATION, "duration"},
+        {ALBUM_DURATION_SHORT, "durationShort"},
         {ALBUM_TITLE_FIRST_SYMBOL, "title_first_symbol"},
         {ALBUM_MAIN_ARTIST_FIRST_SYMBOL, "main_artist_first_symbol"}
     };
@@ -150,6 +153,7 @@ vlc_ml_sorting_criteria_t MLAlbumModel::roleToCriteria(int role) const
     case ALBUM_MAIN_ARTIST :
         return VLC_ML_SORTING_ARTIST;
     case ALBUM_DURATION:
+    case ALBUM_DURATION_SHORT:
         return VLC_ML_SORTING_DURATION;
     default:
         return VLC_ML_SORTING_DEFAULT;
diff --git a/modules/gui/qt/medialibrary/mlalbummodel.hpp b/modules/gui/qt/medialibrary/mlalbummodel.hpp
index f531851d00..972fbc64a7 100644
--- a/modules/gui/qt/medialibrary/mlalbummodel.hpp
+++ b/modules/gui/qt/medialibrary/mlalbummodel.hpp
@@ -43,6 +43,7 @@ public:
         ALBUM_MAIN_ARTIST,
         ALBUM_NB_TRACKS,
         ALBUM_DURATION,
+        ALBUM_DURATION_SHORT,
 
         ALBUM_TITLE_FIRST_SYMBOL,
         ALBUM_MAIN_ARTIST_FIRST_SYMBOL
-- 
2.25.1



More information about the vlc-devel mailing list