emailuis/nmailui/src/nmviewerviewnetmanager.cpp
changeset 30 759dc5235cdb
parent 23 2dc6caa42ec3
child 47 f83bd4ae1fe3
child 54 997a02608b3a
--- a/emailuis/nmailui/src/nmviewerviewnetmanager.cpp	Thu May 27 12:43:55 2010 +0300
+++ b/emailuis/nmailui/src/nmviewerviewnetmanager.cpp	Fri Jun 11 13:27:14 2010 +0300
@@ -28,10 +28,12 @@
 /*!
     Constructor
 */
-NmViewerViewNetManager::NmViewerViewNetManager()
+NmViewerViewNetManager::NmViewerViewNetManager(NmUiEngine &uiEngine)
     : QNetworkAccessManager(),
+      mUiEngine(uiEngine),
       mMessageView(NULL)
 {
+    NM_FUNCTION;
 }
 
 /*!
@@ -39,6 +41,7 @@
 */
 NmViewerViewNetManager::~NmViewerViewNetManager()
 {
+    NM_FUNCTION;
 }
 
 /*!
@@ -46,6 +49,8 @@
 */
 void NmViewerViewNetManager::setView(NmViewerView *viewerView)
 {
+    NM_FUNCTION;
+    
     mMessageView=viewerView;
 }
 
@@ -55,6 +60,8 @@
 QNetworkReply *NmViewerViewNetManager::createRequest(
     Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
 {
+    NM_FUNCTION;
+    
     QNetworkRequest myRequest(request);
     // Set request attribute to prefer cachevar  
     const QVariant cacheControl((int)QNetworkRequest::PreferCache);
@@ -64,11 +71,26 @@
     // Check whether request is for embedded image
     if (mMessageView&&mMessageView->webView()&&op==QNetworkAccessManager::GetOperation
         && requestUrl.scheme()==NmViewerViewNetManagerScheme) {
-        NmViewerViewNetReply* reply = new NmViewerViewNetReply(
-            mMessageView->webView()->loadResource(QTextDocument::ImageResource, requestUrl));
-        reply->setOriginalRequest(myRequest);
-        return reply;
+        QString id = requestUrl.path();
+        NmId partId;
+        bool isFetched = false;
+        NmMessage *message = mMessageView->message();
+        if (message) {
+            QVariant data = mMessageView->webView()->loadResource(
+                    QTextDocument::ImageResource, requestUrl, partId, isFetched);
+            NmViewerViewNetReply* reply = NULL;
+            if (isFetched) {
+                reply = new NmViewerViewNetReply(data, mUiEngine);
+            }
+            else  {
+                reply = new NmViewerViewNetReply(data, mUiEngine,
+                        message->envelope().mailboxId(), message->envelope().folderId(),
+                        message->envelope().messageId(), partId);
+            }
+            reply->setOriginalRequest(myRequest);
+            return reply;
         }
+    }
     // If request is not for embedded image, forward to base class
     return QNetworkAccessManager::createRequest(op, myRequest, outgoingData);
 }