diff --git a/src/covers/amazoncoverprovider.cpp b/src/covers/amazoncoverprovider.cpp index e7c663144..d7d382e73 100644 --- a/src/covers/amazoncoverprovider.cpp +++ b/src/covers/amazoncoverprovider.cpp @@ -16,6 +16,7 @@ */ #include "amazoncoverprovider.h" +#include "core/closure.h" #include "core/logging.h" #include "core/network.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())); url.setEncodedQueryItems(encoded_args); - // Make the request QNetworkReply* reply = network_->get(QNetworkRequest(url)); - connect(reply, SIGNAL(finished()), SLOT(QueryFinished())); - pending_queries_[reply] = id; + NewClosure(reply, SIGNAL(finished()), + this, SLOT(QueryFinished(QNetworkReply*, int)), + reply, id); return true; } -void AmazonCoverProvider::QueryFinished() { - QNetworkReply* reply = qobject_cast(sender()); - if (!reply || !pending_queries_.contains(reply)) - return; - - int id = pending_queries_.take(reply); +void AmazonCoverProvider::QueryFinished(QNetworkReply* reply, int id) { reply->deleteLater(); CoverSearchResults results; diff --git a/src/covers/amazoncoverprovider.h b/src/covers/amazoncoverprovider.h index 56fa2e775..726aadddb 100644 --- a/src/covers/amazoncoverprovider.h +++ b/src/covers/amazoncoverprovider.h @@ -39,7 +39,7 @@ public: bool StartSearch(const QString& artist, const QString& album, int id); private slots: - void QueryFinished(); + void QueryFinished(QNetworkReply* reply, int id); private: void ReadItem(QXmlStreamReader* reader, CoverSearchResults* results); @@ -47,7 +47,6 @@ private: private: QNetworkAccessManager* network_; - QMap pending_queries_; }; #endif // AMAZONCOVERPROVIDER_H