diff options
Diffstat (limited to 'src/async/imap/MCIMAPFetchMessagesOperation.cc')
-rw-r--r-- | src/async/imap/MCIMAPFetchMessagesOperation.cc | 20 |
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); |