vlc | branch: master | Prince Gupta <guptaprince8...@gmail.com> | Wed Jun 3 18:18:06 2020 +0530| [a8dc9e1489240b361270e9358d1dead0abd99e5e] | committer: Pierre Lamot
qt: provide durationShort in video and album tracks model > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a8dc9e1489240b361270e9358d1dead0abd99e5e --- modules/gui/qt/medialibrary/mlalbumtrack.cpp | 32 ++++++++++++++++------- modules/gui/qt/medialibrary/mlalbumtrack.hpp | 3 +++ modules/gui/qt/medialibrary/mlalbumtrackmodel.cpp | 5 ++++ modules/gui/qt/medialibrary/mlvideo.cpp | 11 +++++++- modules/gui/qt/medialibrary/mlvideo.hpp | 2 ++ modules/gui/qt/medialibrary/mlvideomodel.cpp | 4 +++ 6 files changed, 47 insertions(+), 10 deletions(-) diff --git a/modules/gui/qt/medialibrary/mlalbumtrack.cpp b/modules/gui/qt/medialibrary/mlalbumtrack.cpp index 56eff2a63a..764a72d708 100644 --- a/modules/gui/qt/medialibrary/mlalbumtrack.cpp +++ b/modules/gui/qt/medialibrary/mlalbumtrack.cpp @@ -35,14 +35,22 @@ MLAlbumTrack::MLAlbumTrack(vlc_medialibrary_t* _ml, const vlc_ml_media_t *_data, 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')); + } for( const vlc_ml_file_t& file: ml_range_iterate<vlc_ml_file_t>( _data->p_files ) ) if( file.i_type == VLC_ML_FILE_TYPE_MAIN ) @@ -76,15 +84,16 @@ MLAlbumTrack::MLAlbumTrack(vlc_medialibrary_t* _ml, const vlc_ml_media_t *_data, MLAlbumTrack::MLAlbumTrack(const MLAlbumTrack &albumtrack, QObject *_parent) : QObject( _parent ) - , m_id ( albumtrack.m_id ) - , m_title ( albumtrack.m_title ) - , m_albumTitle ( albumtrack.m_albumTitle ) - , m_artist ( albumtrack.m_artist ) - , m_cover ( albumtrack.m_cover ) - , m_trackNumber( albumtrack.m_trackNumber ) - , m_discNumber ( albumtrack.m_discNumber ) - , m_duration ( albumtrack.m_duration ) - , m_mrl ( albumtrack.m_mrl ) + , m_id ( albumtrack.m_id ) + , m_title ( albumtrack.m_title ) + , m_albumTitle ( albumtrack.m_albumTitle ) + , m_artist ( albumtrack.m_artist ) + , m_cover ( albumtrack.m_cover ) + , m_trackNumber ( albumtrack.m_trackNumber ) + , m_discNumber ( albumtrack.m_discNumber ) + , m_duration ( albumtrack.m_duration ) + , m_durationShort( albumtrack.m_durationShort ) + , m_mrl ( albumtrack.m_mrl ) { } @@ -128,6 +137,11 @@ QString MLAlbumTrack::getDuration() const return m_duration; } +QString MLAlbumTrack::getDurationShort() const +{ + return m_durationShort; +} + QString MLAlbumTrack::getMRL() const { return m_mrl; diff --git a/modules/gui/qt/medialibrary/mlalbumtrack.hpp b/modules/gui/qt/medialibrary/mlalbumtrack.hpp index 884419173f..c9abbed671 100644 --- a/modules/gui/qt/medialibrary/mlalbumtrack.hpp +++ b/modules/gui/qt/medialibrary/mlalbumtrack.hpp @@ -43,6 +43,7 @@ class MLAlbumTrack : public QObject Q_PROPERTY(unsigned int track_number READ getTrackNumber CONSTANT) Q_PROPERTY(unsigned int disc_number READ getDiscNumber CONSTANT) Q_PROPERTY(QString duration READ getDuration CONSTANT) + Q_PROPERTY(QString durationShort READ getDurationShort CONSTANT) Q_PROPERTY(QString mrl READ getMRL CONSTANT) public: @@ -56,6 +57,7 @@ public: unsigned int getTrackNumber() const; unsigned int getDiscNumber() const; QString getDuration() const; + QString getDurationShort() const; QString getMRL() const; MLAlbumTrack* clone(QObject *parent = nullptr) const; @@ -71,6 +73,7 @@ private: unsigned int m_trackNumber; unsigned int m_discNumber; QString m_duration; + QString m_durationShort; QString m_mrl; ml_unique_ptr<vlc_ml_media_t> m_data; diff --git a/modules/gui/qt/medialibrary/mlalbumtrackmodel.cpp b/modules/gui/qt/medialibrary/mlalbumtrackmodel.cpp index 1107927a76..0d6819ea34 100644 --- a/modules/gui/qt/medialibrary/mlalbumtrackmodel.cpp +++ b/modules/gui/qt/medialibrary/mlalbumtrackmodel.cpp @@ -27,6 +27,7 @@ enum Role { TRACK_NUMBER, TRACK_DISC_NUMBER, TRACK_DURATION, + TRACK_DURATION_SHORT, TRACK_ALBUM, TRACK_ARTIST, @@ -76,6 +77,8 @@ QVariant MLAlbumTrackModel::data(const QModelIndex &index, int role) const return QVariant::fromValue( ml_track->getDiscNumber() ); case TRACK_DURATION : return QVariant::fromValue( ml_track->getDuration() ); + case TRACK_DURATION_SHORT : + return QVariant::fromValue( ml_track->getDurationShort() ); case TRACK_ALBUM: return QVariant::fromValue( ml_track->getAlbumTitle() ); case TRACK_ARTIST: @@ -100,6 +103,7 @@ QHash<int, QByteArray> MLAlbumTrackModel::roleNames() const { TRACK_NUMBER, "track_number" }, { TRACK_DISC_NUMBER, "disc_number" }, { TRACK_DURATION, "duration" }, + { TRACK_DURATION_SHORT, "durationShort" }, { TRACK_ALBUM, "album_title"}, { TRACK_ARTIST, "main_artist"}, { TRACK_TITLE_FIRST_SYMBOL, "title_first_symbol"}, @@ -142,6 +146,7 @@ vlc_ml_sorting_criteria_t MLAlbumTrackModel::roleToCriteria(int role) const case TRACK_NUMBER : return VLC_ML_SORTING_TRACKNUMBER; case TRACK_DURATION : + case TRACK_DURATION_SHORT : return VLC_ML_SORTING_DURATION; default: return VLC_ML_SORTING_DEFAULT; diff --git a/modules/gui/qt/medialibrary/mlvideo.cpp b/modules/gui/qt/medialibrary/mlvideo.cpp index a4452aac51..8dbe58bb74 100644 --- a/modules/gui/qt/medialibrary/mlvideo.cpp +++ b/modules/gui/qt/medialibrary/mlvideo.cpp @@ -24,7 +24,7 @@ namespace { -QString MsToString( int64_t time ) +QString MsToString( int64_t time , bool doShort = false ) { if (time < 0) return "--:--"; @@ -37,6 +37,10 @@ QString MsToString( int64_t time ) return QString("%1:%2") .arg(min, 2, 10, QChar('0')) .arg(sec, 2, 10, QChar('0')); + else if ( doShort ) + return QString("%1h%2") + .arg(hour) + .arg(min, 2, 10, QChar('0')); else return QString("%1:%2:%3") .arg(hour, 2, 10, QChar('0')) @@ -181,6 +185,11 @@ QString MLVideo::getDuration() const return MsToString( m_duration ); } +QString MLVideo::getDurationShort() const +{ + return MsToString( m_duration, true ); +} + QString MLVideo::getMRL() const { return m_mrl.toEncoded(); diff --git a/modules/gui/qt/medialibrary/mlvideo.hpp b/modules/gui/qt/medialibrary/mlvideo.hpp index 4644e3177a..c5f6bbb23b 100644 --- a/modules/gui/qt/medialibrary/mlvideo.hpp +++ b/modules/gui/qt/medialibrary/mlvideo.hpp @@ -40,6 +40,7 @@ class MLVideo : public QObject Q_PROPERTY(QString title READ getTitle CONSTANT); Q_PROPERTY(QString thumbnail READ getThumbnail NOTIFY onThumbnailChanged); Q_PROPERTY(QString duration READ getDuration CONSTANT); + Q_PROPERTY(QString durationShort READ getDurationShort CONSTANT); Q_PROPERTY(QString mrl READ getMRL CONSTANT); Q_PROPERTY(QString displayMrl READ getDisplayMRL CONSTANT) Q_PROPERTY(float progress READ getProgress CONSTANT); @@ -57,6 +58,7 @@ public: QString getTitle() const; QString getThumbnail(); QString getDuration() const; + QString getDurationShort() const; QString getResolutionName() const; QString getChannel() const; QString getMRL() const; diff --git a/modules/gui/qt/medialibrary/mlvideomodel.cpp b/modules/gui/qt/medialibrary/mlvideomodel.cpp index 4f303c6487..a46444e340 100644 --- a/modules/gui/qt/medialibrary/mlvideomodel.cpp +++ b/modules/gui/qt/medialibrary/mlvideomodel.cpp @@ -25,6 +25,7 @@ enum Role { VIDEO_TITLE, VIDEO_THUMBNAIL, VIDEO_DURATION, + VIDEO_DURATION_SHORT, VIDEO_PROGRESS, VIDEO_PLAYCOUNT, VIDEO_RESOLUTION, @@ -66,6 +67,8 @@ QVariant MLVideoModel::data(const QModelIndex& index, int role) const return QVariant::fromValue( video->getThumbnail() ); case VIDEO_DURATION: return QVariant::fromValue( video->getDuration() ); + case VIDEO_DURATION_SHORT: + return QVariant::fromValue( video->getDurationShort() ); case VIDEO_PROGRESS: return QVariant::fromValue( video->getProgress() ); case VIDEO_PLAYCOUNT: @@ -97,6 +100,7 @@ QHash<int, QByteArray> MLVideoModel::roleNames() const { VIDEO_TITLE, "title" }, { VIDEO_THUMBNAIL, "thumbnail" }, { VIDEO_DURATION, "duration" }, + { VIDEO_DURATION_SHORT, "durationShort" }, { VIDEO_PROGRESS, "progress" }, { VIDEO_PLAYCOUNT, "playcount" }, { VIDEO_RESOLUTION, "resolution_name" }, _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits