26 |
26 |
27 |
27 |
28 /*! |
28 /*! |
29 Constructor |
29 Constructor |
30 */ |
30 */ |
31 NmViewerViewNetManager::NmViewerViewNetManager() |
31 NmViewerViewNetManager::NmViewerViewNetManager(NmUiEngine &uiEngine) |
32 : QNetworkAccessManager(), |
32 : QNetworkAccessManager(), |
|
33 mUiEngine(uiEngine), |
33 mMessageView(NULL) |
34 mMessageView(NULL) |
34 { |
35 { |
|
36 NM_FUNCTION; |
35 } |
37 } |
36 |
38 |
37 /*! |
39 /*! |
38 Destructor |
40 Destructor |
39 */ |
41 */ |
40 NmViewerViewNetManager::~NmViewerViewNetManager() |
42 NmViewerViewNetManager::~NmViewerViewNetManager() |
41 { |
43 { |
|
44 NM_FUNCTION; |
42 } |
45 } |
43 |
46 |
44 /*! |
47 /*! |
45 Setter for view. |
48 Setter for view. |
46 */ |
49 */ |
47 void NmViewerViewNetManager::setView(NmViewerView *viewerView) |
50 void NmViewerViewNetManager::setView(NmViewerView *viewerView) |
48 { |
51 { |
|
52 NM_FUNCTION; |
|
53 |
49 mMessageView=viewerView; |
54 mMessageView=viewerView; |
50 } |
55 } |
51 |
56 |
52 /*! |
57 /*! |
53 createRequest |
58 createRequest |
54 */ |
59 */ |
55 QNetworkReply *NmViewerViewNetManager::createRequest( |
60 QNetworkReply *NmViewerViewNetManager::createRequest( |
56 Operation op, const QNetworkRequest &request, QIODevice *outgoingData) |
61 Operation op, const QNetworkRequest &request, QIODevice *outgoingData) |
57 { |
62 { |
|
63 NM_FUNCTION; |
|
64 |
58 QNetworkRequest myRequest(request); |
65 QNetworkRequest myRequest(request); |
59 // Set request attribute to prefer cachevar |
66 // Set request attribute to prefer cachevar |
60 const QVariant cacheControl((int)QNetworkRequest::PreferCache); |
67 const QVariant cacheControl((int)QNetworkRequest::PreferCache); |
61 myRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, |
68 myRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, |
62 cacheControl); |
69 cacheControl); |
63 const QUrl requestUrl = myRequest.url(); |
70 const QUrl requestUrl = myRequest.url(); |
64 // Check whether request is for embedded image |
71 // Check whether request is for embedded image |
65 if (mMessageView&&mMessageView->webView()&&op==QNetworkAccessManager::GetOperation |
72 if (mMessageView&&mMessageView->webView()&&op==QNetworkAccessManager::GetOperation |
66 && requestUrl.scheme()==NmViewerViewNetManagerScheme) { |
73 && requestUrl.scheme()==NmViewerViewNetManagerScheme) { |
67 NmViewerViewNetReply* reply = new NmViewerViewNetReply( |
74 QString id = requestUrl.path(); |
68 mMessageView->webView()->loadResource(QTextDocument::ImageResource, requestUrl)); |
75 NmId partId; |
69 reply->setOriginalRequest(myRequest); |
76 bool isFetched = false; |
70 return reply; |
77 NmMessage *message = mMessageView->message(); |
|
78 if (message) { |
|
79 QVariant data = mMessageView->webView()->loadResource( |
|
80 QTextDocument::ImageResource, requestUrl, partId, isFetched); |
|
81 NmViewerViewNetReply* reply = NULL; |
|
82 if (isFetched) { |
|
83 reply = new NmViewerViewNetReply(data, mUiEngine); |
|
84 } |
|
85 else { |
|
86 reply = new NmViewerViewNetReply(data, mUiEngine, |
|
87 message->envelope().mailboxId(), message->envelope().folderId(), |
|
88 message->envelope().messageId(), partId); |
|
89 } |
|
90 reply->setOriginalRequest(myRequest); |
|
91 return reply; |
71 } |
92 } |
|
93 } |
72 // If request is not for embedded image, forward to base class |
94 // If request is not for embedded image, forward to base class |
73 return QNetworkAccessManager::createRequest(op, myRequest, outgoingData); |
95 return QNetworkAccessManager::createRequest(op, myRequest, outgoingData); |
74 } |
96 } |