File indexing completed on 2024-05-12 04:45:58
0001 #pragma once 0002 0003 #include <MauiKit3/Core/mauilist.h> 0004 #include <QObject> 0005 0006 class YouTube; 0007 0008 class YouTubeModel : public MauiList 0009 { 0010 Q_OBJECT 0011 Q_PROPERTY(QString query READ query WRITE setQuery NOTIFY queryChanged) 0012 Q_PROPERTY(int limit READ limit WRITE setLimit NOTIFY limitChanged) 0013 Q_PROPERTY(QString key READ key WRITE setKey NOTIFY keyChanged) 0014 0015 public: 0016 YouTubeModel(QObject * parent = nullptr); 0017 void componentComplete() override final; 0018 0019 const FMH::MODEL_LIST &items() const override final; 0020 0021 QString query() const; 0022 0023 QString key() const; 0024 0025 int limit() const; 0026 0027 public slots: 0028 void setQuery(QString query); 0029 0030 void setKey(QString key); 0031 0032 void setLimit(int limit); 0033 0034 Q_SIGNALS: 0035 void queryChanged(QString query); 0036 0037 void keyChanged(QString key); 0038 0039 void limitChanged(int limit); 0040 0041 private: 0042 YouTube *m_yt; 0043 0044 FMH::MODEL_LIST m_list; 0045 0046 void setList(const FMH::MODEL_LIST &data); 0047 void request(const QString &query); 0048 QString m_query; 0049 QString m_key; 0050 int m_limit = 10; 0051 };