2016-10-09 19:44:06 +02:00
|
|
|
#ifndef QTGUI_LYRICSWIKIA_H
|
|
|
|
#define QTGUI_LYRICSWIKIA_H
|
|
|
|
|
|
|
|
#include "./dbquery.h"
|
|
|
|
|
2016-10-09 22:41:34 +02:00
|
|
|
#include <map>
|
2016-10-09 19:44:06 +02:00
|
|
|
|
|
|
|
namespace QtGui {
|
|
|
|
|
2018-03-07 01:18:01 +01:00
|
|
|
class LyricsWikiaResultsModel : public HttpResultsModel {
|
2016-10-09 19:44:06 +02:00
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
2023-08-06 02:25:53 +02:00
|
|
|
explicit LyricsWikiaResultsModel(SongDescription &&initialSongDescription, QNetworkReply *reply);
|
2019-04-21 17:08:24 +02:00
|
|
|
bool fetchCover(const QModelIndex &index) override;
|
|
|
|
bool fetchLyrics(const QModelIndex &index) override;
|
|
|
|
QUrl webUrl(const QModelIndex &index) override;
|
2016-10-09 19:44:06 +02:00
|
|
|
|
|
|
|
protected:
|
2019-04-21 17:08:24 +02:00
|
|
|
void parseInitialResults(const QByteArray &data) override;
|
2016-10-09 19:44:06 +02:00
|
|
|
|
|
|
|
private:
|
2016-10-09 22:41:34 +02:00
|
|
|
QNetworkReply *requestSongDetails(const SongDescription &songDescription);
|
2017-07-30 20:30:50 +02:00
|
|
|
QNetworkReply *requestAlbumDetails(const SongDescription &songDescription);
|
2016-10-09 22:41:34 +02:00
|
|
|
void handleSongDetailsFinished(QNetworkReply *reply, int row);
|
|
|
|
void parseSongDetails(int row, const QByteArray &data);
|
|
|
|
void handleLyricsReplyFinished(QNetworkReply *reply, int row);
|
|
|
|
void parseLyricsResults(int row, const QByteArray &data);
|
2017-07-30 20:30:50 +02:00
|
|
|
void handleAlbumDetailsReplyFinished(QNetworkReply *reply, int row);
|
|
|
|
void parseAlbumDetailsAndFetchCover(int row, const QByteArray &data);
|
2016-10-09 19:44:06 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace QtGui
|
|
|
|
|
|
|
|
#endif // QTGUI_LYRICSWIKIA_H
|