aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/imap/MCIMAPFetchMessagesOperation.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/async/imap/MCIMAPFetchMessagesOperation.cc')
-rw-r--r--src/async/imap/MCIMAPFetchMessagesOperation.cc20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/async/imap/MCIMAPFetchMessagesOperation.cc b/src/async/imap/MCIMAPFetchMessagesOperation.cc
index ece60c66..480f2c1b 100644
--- a/src/async/imap/MCIMAPFetchMessagesOperation.cc
+++ b/src/async/imap/MCIMAPFetchMessagesOperation.cc
@@ -21,6 +21,7 @@ IMAPFetchMessagesOperation::IMAPFetchMessagesOperation()
mMessages = NULL;
mVanishedMessages = NULL;
mModSequenceValue = 0;
+ mExtraHeaders = NULL;
}
IMAPFetchMessagesOperation::~IMAPFetchMessagesOperation()
@@ -28,6 +29,7 @@ IMAPFetchMessagesOperation::~IMAPFetchMessagesOperation()
MC_SAFE_RELEASE(mIndexes);
MC_SAFE_RELEASE(mMessages);
MC_SAFE_RELEASE(mVanishedMessages);
+ MC_SAFE_RELEASE(mExtraHeaders);
}
void IMAPFetchMessagesOperation::setFetchByUidEnabled(bool enabled)
@@ -70,6 +72,14 @@ IMAPMessagesRequestKind IMAPFetchMessagesOperation::kind()
return mKind;
}
+void IMAPFetchMessagesOperation::setExtraHeaders(Array * extraHeaders) {
+ MC_SAFE_REPLACE_COPY(Array, mExtraHeaders, extraHeaders);
+}
+
+Array * IMAPFetchMessagesOperation::extraHeaders() {
+ return mExtraHeaders;
+}
+
Array * IMAPFetchMessagesOperation::messages()
{
return mMessages;
@@ -87,18 +97,22 @@ void IMAPFetchMessagesOperation::main()
if (mModSequenceValue != 0) {
IMAPSyncResult * syncResult;
- syncResult = session()->session()->syncMessagesByUID(folder(), mKind, mIndexes, mModSequenceValue, this, &error);
+ syncResult = session()->session()->syncMessagesByUIDWithExtraHeaders(folder(), mKind, mIndexes,
+ mModSequenceValue, this, mExtraHeaders,
+ &error);
if (syncResult != NULL) {
mMessages = syncResult->modifiedOrAddedMessages();
mVanishedMessages = syncResult->vanishedMessages();
}
}
else {
- mMessages = session()->session()->fetchMessagesByUID(folder(), mKind, mIndexes, this, &error);
+ mMessages = session()->session()->fetchMessagesByUIDWithExtraHeaders(folder(), mKind, mIndexes, this,
+ mExtraHeaders, &error);
}
}
else {
- mMessages = session()->session()->fetchMessagesByNumber(folder(), mKind, mIndexes, this, &error);
+ mMessages = session()->session()->fetchMessagesByNumberWithExtraHeaders(folder(), mKind, mIndexes, this,
+ mExtraHeaders, &error);
}
MC_SAFE_RETAIN(mMessages);
MC_SAFE_RETAIN(mVanishedMessages);