Updated error handling, added error contexts. Fixed fullscreen button
[situare] / src / situareservice / imagefetcher.cpp
index 99bc5e8..b89edaa 100644 (file)
@@ -24,7 +24,8 @@
 #include <QNetworkReply>
 #include <QPixmap>
 #include "imagefetcher.h"
-#include "engine/networkaccessmanager.h"
+#include "network/networkaccessmanager.h"
+#include "common.h"
 
 ImageFetcher::ImageFetcher(NetworkAccessManager *manager, QObject *parent)
     : QObject(parent)
@@ -52,6 +53,7 @@ void ImageFetcher::startNextDownload()
     QUrl url = m_downloadQueue.dequeue();
 
     QNetworkRequest request(url);
+    request.setAttribute(QNetworkRequest::CacheSaveControlAttribute, false);
     request.setRawHeader("User-Agent", "Situare");
     QNetworkReply *reply = m_manager->get(request);
 
@@ -62,22 +64,26 @@ void ImageFetcher::downloadFinished(QNetworkReply *reply)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    if (reply->error() == QNetworkReply::NoError) {
-        QPixmap image;
-        QUrl url = reply->url();
+    //Reply from Facebook
+    if (m_currentDownloads.contains(reply)) {
 
-        if (!image.loadFromData(reply->readAll(), 0))
-            image = QPixmap();
+        if (reply->error() == QNetworkReply::NoError) {
+            QPixmap image;
+            QUrl url = reply->url();
 
-        emit imageReceived(url, image);
-    }
-    else {
-        emit error(reply->errorString());
-    }
+            if (!image.loadFromData(reply->readAll(), 0))
+                image = QPixmap();
 
-    m_currentDownloads.removeAll(reply);
-    reply->deleteLater();
+            emit imageReceived(url, image);
+        }
+        else {
+            emit error(ErrorContext::SITUARE, SituareError::IMAGE_DOWNLOAD_FAILED);
+        }
 
-    if (!m_downloadQueue.isEmpty())
-        startNextDownload();
+        m_currentDownloads.removeAll(reply);
+        reply->deleteLater();
+
+        if (!m_downloadQueue.isEmpty())
+            startNextDownload();
+    }
 }