vlc | branch: master | Pierre Lamot <pie...@videolabs.io> | Wed Dec 9 11:20:07 2020 +0100| [afae92a5d6f745f92fb0dee956af44982c507f31] | committer: Pierre Lamot
qt: no longer filter manually video medias in MLRecentsVideoModel > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=afae92a5d6f745f92fb0dee956af44982c507f31 --- .../gui/qt/medialibrary/mlrecentsvideomodel.cpp | 32 ++++++++++------------ .../gui/qt/medialibrary/mlrecentsvideomodel.hpp | 3 -- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/modules/gui/qt/medialibrary/mlrecentsvideomodel.cpp b/modules/gui/qt/medialibrary/mlrecentsvideomodel.cpp index 7835fae2a7..2085a68d18 100644 --- a/modules/gui/qt/medialibrary/mlrecentsvideomodel.cpp +++ b/modules/gui/qt/medialibrary/mlrecentsvideomodel.cpp @@ -125,15 +125,10 @@ size_t MLRecentsVideoModel::Loader::count() const MLQueryParams params = getParams(); auto queryParams = params.toCQueryParams(); - // FIXME: count() may not depend on load(), since the call to load() - // depends on count() - - (void) queryParams; - - if (m_numberOfItemsToShow == -1) { - return m_video_count; - } - return std::min(m_video_count, m_numberOfItemsToShow); + size_t realCount = vlc_ml_count_history_by_type( m_ml, &queryParams, VLC_ML_MEDIA_TYPE_VIDEO ); + if (m_numberOfItemsToShow >= 0) + return std::min( realCount, static_cast<size_t>(m_numberOfItemsToShow) ); + return realCount; } std::vector<std::unique_ptr<MLItem>> @@ -142,17 +137,20 @@ MLRecentsVideoModel::Loader::load(size_t index, size_t count) const MLQueryParams params = getParams(index, count); auto queryParams = params.toCQueryParams(); - ml_unique_ptr<vlc_ml_media_list_t> media_list{ vlc_ml_list_history( - m_ml, &queryParams ) }; + std::vector<std::unique_ptr<MLItem>> res; + if (m_numberOfItemsToShow >= 0) + { + if (queryParams.i_offset <= static_cast<uint32_t>(m_numberOfItemsToShow)) + queryParams.i_nbResults = static_cast<uint32_t>(m_numberOfItemsToShow) - queryParams.i_offset; + else + return res; + } + + ml_unique_ptr<vlc_ml_media_list_t> media_list{ vlc_ml_list_history_by_type( + m_ml, &queryParams, VLC_ML_MEDIA_TYPE_VIDEO ) }; if ( media_list == nullptr ) return {}; - std::vector<std::unique_ptr<MLItem>> res; - m_video_count = 0; for( vlc_ml_media_t &media: ml_range_iterate<vlc_ml_media_t>( media_list ) ) - if( media.i_type == VLC_ML_MEDIA_TYPE_VIDEO ) - { - m_video_count++; res.emplace_back( std::make_unique<MLVideo>( m_ml, &media ) ); - } return res; } diff --git a/modules/gui/qt/medialibrary/mlrecentsvideomodel.hpp b/modules/gui/qt/medialibrary/mlrecentsvideomodel.hpp index 9eb63a0bbe..4231b6bbdd 100644 --- a/modules/gui/qt/medialibrary/mlrecentsvideomodel.hpp +++ b/modules/gui/qt/medialibrary/mlrecentsvideomodel.hpp @@ -71,9 +71,6 @@ private: private: int m_numberOfItemsToShow; - // FIXME: count() may not depend on load(), since the call to load() - // depends on count() - mutable int m_video_count; }; }; _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits