From 6489151578b34b8101e778cc5f533ee67a82b8ed Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Wed, 2 Jul 2014 10:28:26 -0700 Subject: [PATCH] Switch ImageOverlay to NetworkAccessManager --- interface/src/ui/overlays/ImageOverlay.cpp | 16 ++++++---------- interface/src/ui/overlays/ImageOverlay.h | 5 ++--- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/interface/src/ui/overlays/ImageOverlay.cpp b/interface/src/ui/overlays/ImageOverlay.cpp index 79b1b23de5..aeea781eb6 100644 --- a/interface/src/ui/overlays/ImageOverlay.cpp +++ b/interface/src/ui/overlays/ImageOverlay.cpp @@ -19,7 +19,6 @@ #include "ImageOverlay.h" ImageOverlay::ImageOverlay() : - _manager(NULL), _textureID(0), _renderImage(false), _textureBound(false), @@ -36,21 +35,18 @@ ImageOverlay::~ImageOverlay() { // TODO: handle setting image multiple times, how do we manage releasing the bound texture? void ImageOverlay::setImageURL(const QUrl& url) { - // TODO: are we creating too many QNetworkAccessManager() when multiple calls to setImageURL are made? - _manager->deleteLater(); - _manager = new QNetworkAccessManager(); - connect(_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*))); - _manager->get(QNetworkRequest(url)); + NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); + QNetworkReply* reply = networkAccessManager.get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, this, &ImageOverlay::replyFinished); } -void ImageOverlay::replyFinished(QNetworkReply* reply) { - +void ImageOverlay::replyFinished() { + QNetworkReply* reply = static_cast(sender()); + // replace our byte array with the downloaded data QByteArray rawData = reply->readAll(); _textureImage.loadFromData(rawData); _renderImage = true; - _manager->deleteLater(); - _manager = NULL; } void ImageOverlay::render() { diff --git a/interface/src/ui/overlays/ImageOverlay.h b/interface/src/ui/overlays/ImageOverlay.h index 613cd95989..633567287d 100644 --- a/interface/src/ui/overlays/ImageOverlay.h +++ b/interface/src/ui/overlays/ImageOverlay.h @@ -16,13 +16,13 @@ #include #include -#include #include #include #include #include #include +#include #include #include "Overlay.h" @@ -46,13 +46,12 @@ public: virtual void setProperties(const QScriptValue& properties); private slots: - void replyFinished(QNetworkReply* reply); // we actually want to hide this... + void replyFinished(); // we actually want to hide this... private: QUrl _imageURL; QImage _textureImage; - QNetworkAccessManager* _manager; GLuint _textureID; QRect _fromImage; // where from in the image to sample