1
mirror of https://code.videolan.org/videolan/vlc synced 2024-10-03 01:31:53 +02:00

qml: update default placeholder of generated covers

This commit is contained in:
Pierre Lamot 2022-03-31 13:47:53 +02:00 committed by Rémi Denis-Courmont
parent e669d03e17
commit d054bae9a1
6 changed files with 34 additions and 5 deletions

View File

@ -82,6 +82,20 @@ QHash<int, QByteArray> MLGenreModel::roleNames() const
};
}
QString MLGenreModel::getCoverDefault() const
{
return m_coverDefault;
}
void MLGenreModel::setCoverDefault(const QString& defaultCover)
{
if (m_coverDefault == defaultCover)
return;
m_coverDefault = defaultCover;
emit coverDefaultChanged();
}
void MLGenreModel::onVlcMlEvent(const MLEvent &event)
{
switch (event.i_type)
@ -137,7 +151,7 @@ QString MLGenreModel::getCover(MLGenre * genre) const
genre->setGenerator(true);
m_mediaLib->runOnMLThread<Context>(this,
//ML thread
[genreId]
[genreId, coverDefault = m_coverDefault]
(vlc_medialibrary_t* ml, Context& ctx)
{
CoverGenerator generator{ml, genreId};
@ -152,7 +166,8 @@ QString MLGenreModel::getCover(MLGenre * genre) const
generator.setBlur(MLGENREMODEL_COVER_BLUR);
generator.setDefaultThumbnail(":/noart_album.svg");
if (!coverDefault.isEmpty())
generator.setDefaultThumbnail(coverDefault);
if (generator.cachedFileAvailable())
ctx.cover = generator.cachedFileURL();

View File

@ -31,6 +31,9 @@ class MLGenreModel : public MLBaseModel
{
Q_OBJECT
Q_PROPERTY(QString coverDefault READ getCoverDefault WRITE setCoverDefault
NOTIFY coverDefaultChanged FINAL)
public:
enum Roles
{
@ -49,6 +52,12 @@ public:
QHash<int, QByteArray> roleNames() const override;
QString getCoverDefault() const;
void setCoverDefault(const QString& defaultCover);
signals:
void coverDefaultChanged() const;
protected:
QVariant itemRoleData(MLItem *item, int role) const override;
@ -61,6 +70,8 @@ private:
QString getCover(MLGenre * genre) const;
QString m_coverDefault;
private:
struct Loader : public BaseLoader
{

View File

@ -316,7 +316,8 @@ QString MLPlaylistListModel::getCover(MLPlaylist * playlist) const
generator.setSize(coverSize);
generator.setDefaultThumbnail(coverDefault);
if (!coverDefault.isEmpty())
generator.setDefaultThumbnail(coverDefault);
generator.setPrefix(coverPrefix);

View File

@ -74,6 +74,8 @@ FocusScope {
id: genreModel
ml: MediaLib
coverDefault: VLCStyle.noArtAlbumCover
onCountChanged: {
if (genreModel.count > 0 && !selectionModel.hasSelection) {
root.resetFocus()

View File

@ -176,7 +176,7 @@ FocusScope {
coverSize: (isMusic) ? Qt.size(512, 512)
: Qt.size(1024, 640)
coverDefault: (isMusic) ? ":/noart_album.svg" : ":/noart_videoCover.svg"
coverDefault: (isMusic) ? VLCStyle.noArtAlbumCover : VLCStyle.noArtVideoCover
coverPrefix: (isMusic) ? "playlist-music" : "playlist-video"

View File

@ -47,7 +47,7 @@ static const QString COVERGENERATOR_STORAGE = "/art/qt-covers";
static const int COVERGENERATOR_COUNT = 2;
static const QString COVERGENERATOR_DEFAULT = ":/noart.png";
static const QString COVERGENERATOR_DEFAULT = ":/noart_albumCover.svg";
//-------------------------------------------------------------------------------------------------
// Ctor / dtor