Improve album cover searching and cover manager, use HttpStatusCodeAttribute and QSslError for services

- Improve album cover manager
- Change art_automatic and art_manual to QUrl
- Refresh collection album covers when new album covers are fetched
- Fix automatic album cover searching for local files outside of the collection
- Make all Json services check HttpStatusCodeAttribute
- Show detailed SSL errors for Subsonic, Tidal and Qobuz
This commit is contained in:
Jonas Kvinge
2019-07-07 21:14:24 +02:00
parent c92a7967ea
commit 65780e1672
101 changed files with 1531 additions and 1239 deletions

View File

@@ -29,6 +29,7 @@
#include <QString>
#include <QUrl>
#include <QNetworkReply>
#include <QSslError>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
@@ -71,12 +72,13 @@ class TidalBaseRequest : public QObject {
typedef QList<EncodedParam> EncodedParamList;
QNetworkReply *CreateRequest(const QString &ressource_name, const QList<Param> &params_provided);
QByteArray GetReplyData(QNetworkReply *reply, QString &error, const bool send_login);
QJsonObject ExtractJsonObj(QByteArray &data, QString &error);
QJsonValue ExtractItems(QByteArray &data, QString &error);
QJsonValue ExtractItems(QJsonObject &json_obj, QString &error);
QByteArray GetReplyData(QNetworkReply *reply, const bool send_login);
QJsonObject ExtractJsonObj(QByteArray &data);
QJsonValue ExtractItems(QByteArray &data);
QJsonValue ExtractItems(QJsonObject &json_obj);
virtual QString Error(QString error, QVariant debug = QVariant());
virtual void Error(const QString &error, const QVariant &debug = QVariant()) = 0;
QString ErrorsToHTML(const QStringList &errors);
QString api_url() { return QString(kApiUrl); }
const bool oauth() { return service_->oauth(); }
@@ -100,6 +102,9 @@ class TidalBaseRequest : public QObject {
int login_attempts() { return service_->login_attempts(); }
virtual void NeedLogin() = 0;
private slots:
void HandleSSLErrors(QList<QSslError> ssl_errors);
private: