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