File indexing completed on 2024-05-19 04:48:26

0001 #pragma once
0002 #include <MauiKit3/Core/mauilist.h>
0003 
0004 class PlaylistsModel : public MauiList
0005 {
0006     Q_OBJECT
0007     Q_PROPERTY(int limit READ limit WRITE setLimit NOTIFY limitChanged)
0008 
0009 public:
0010     explicit PlaylistsModel(QObject *parent = nullptr);
0011     const FMH::MODEL_LIST &items() const override;
0012 
0013     int limit() const;
0014     void setLimit(int newLimit);
0015 
0016     void componentComplete() override;
0017 
0018 public Q_SLOTS:
0019     void insert(const QString &playlist);
0020 
0021     void addTrack(const QString &playlist, const QStringList &urls);
0022     void removeTrack(const QString &playlist, const QString &url);
0023     void removePlaylist(const int &index);
0024 
0025 private:
0026     FMH::MODEL_LIST list;
0027     void setList();
0028 
0029     FMH::MODEL_LIST defaultPlaylists();
0030     FMH::MODEL_LIST tags();
0031     FMH::MODEL packPlaylist(const QString &playlist);
0032     QString playlistArtworkPreviews(const QString &playlist);
0033 
0034     int m_limit = 9999;
0035 
0036 Q_SIGNALS:
0037     void sortByChanged();
0038     void fileTagged(QUrl url, QString playlist);
0039 
0040     void limitChanged();
0041 };
0042