Use Closure in Amazon cover provider.
This commit is contained in:
parent
5a9bd3e8cf
commit
7585236e20
|
@ -16,6 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "amazoncoverprovider.h"
|
#include "amazoncoverprovider.h"
|
||||||
|
#include "core/closure.h"
|
||||||
#include "core/logging.h"
|
#include "core/logging.h"
|
||||||
#include "core/network.h"
|
#include "core/network.h"
|
||||||
#include "core/utilities.h"
|
#include "core/utilities.h"
|
||||||
|
@ -77,20 +78,15 @@ bool AmazonCoverProvider::StartSearch(const QString& artist, const QString& albu
|
||||||
encoded_args << EncodedArg("Signature", QUrl::toPercentEncoding(signature.toBase64()));
|
encoded_args << EncodedArg("Signature", QUrl::toPercentEncoding(signature.toBase64()));
|
||||||
url.setEncodedQueryItems(encoded_args);
|
url.setEncodedQueryItems(encoded_args);
|
||||||
|
|
||||||
// Make the request
|
|
||||||
QNetworkReply* reply = network_->get(QNetworkRequest(url));
|
QNetworkReply* reply = network_->get(QNetworkRequest(url));
|
||||||
connect(reply, SIGNAL(finished()), SLOT(QueryFinished()));
|
NewClosure(reply, SIGNAL(finished()),
|
||||||
pending_queries_[reply] = id;
|
this, SLOT(QueryFinished(QNetworkReply*, int)),
|
||||||
|
reply, id);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AmazonCoverProvider::QueryFinished() {
|
void AmazonCoverProvider::QueryFinished(QNetworkReply* reply, int id) {
|
||||||
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
|
|
||||||
if (!reply || !pending_queries_.contains(reply))
|
|
||||||
return;
|
|
||||||
|
|
||||||
int id = pending_queries_.take(reply);
|
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
|
|
||||||
CoverSearchResults results;
|
CoverSearchResults results;
|
||||||
|
|
|
@ -39,7 +39,7 @@ public:
|
||||||
bool StartSearch(const QString& artist, const QString& album, int id);
|
bool StartSearch(const QString& artist, const QString& album, int id);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void QueryFinished();
|
void QueryFinished(QNetworkReply* reply, int id);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ReadItem(QXmlStreamReader* reader, CoverSearchResults* results);
|
void ReadItem(QXmlStreamReader* reader, CoverSearchResults* results);
|
||||||
|
@ -47,7 +47,6 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QNetworkAccessManager* network_;
|
QNetworkAccessManager* network_;
|
||||||
QMap<QNetworkReply*, int> pending_queries_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AMAZONCOVERPROVIDER_H
|
#endif // AMAZONCOVERPROVIDER_H
|
||||||
|
|
Loading…
Reference in New Issue