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

0001 #pragma once
0002 
0003 #include <QObject>
0004 #include <QVariantMap>
0005 #include <QString>
0006 
0007 class TrackInfo : public QObject
0008 {
0009     Q_OBJECT
0010     Q_PROPERTY(QString albumWiki READ albumWiki NOTIFY albumWikiChanged)
0011     Q_PROPERTY(QString artistWiki READ artistWiki NOTIFY artistWikiChanged)
0012     Q_PROPERTY(QString trackWiki READ trackWiki NOTIFY trackWikiChanged)
0013     Q_PROPERTY(QString lyrics READ lyrics NOTIFY lyricsChanged)
0014 
0015     Q_PROPERTY(QVariantMap track READ track WRITE setTrack NOTIFY trackChanged)
0016 
0017 public:
0018     explicit TrackInfo(QObject *parent = nullptr);
0019 
0020     QString albumWiki() const;
0021 
0022     QString artistWiki() const;
0023 
0024     QString trackWiki() const;
0025 
0026     QString lyrics() const;
0027 
0028     QVariantMap track() const;
0029 
0030 public Q_SLOTS:
0031     void setTrack(QVariantMap track);
0032 
0033 private:
0034     QString m_albumWiki;
0035 
0036     QString m_artistWiki;
0037 
0038     QString m_trackWiki;
0039 
0040     QString m_lyrics;
0041 
0042     QVariantMap m_track;
0043 
0044     void getInfo();
0045 
0046     void getAlbumInfo();
0047     void getArtistInfo();
0048     void getTrackInfo();
0049 
0050     QString m_artist;
0051     QString m_album;
0052     QString m_title;
0053 
0054 Q_SIGNALS:
0055     void albumWikiChanged(QString albumWiki);
0056     void artistWikiChanged(QString artistWiki);
0057     void trackWikiChanged(QString trackWiki);
0058     void lyricsChanged(QString lyrics);
0059     void trackChanged(QVariantMap track);
0060 };