diff options
author | 2014-10-21 15:46:19 -0600 | |
---|---|---|
committer | 2014-10-21 15:46:19 -0600 | |
commit | 53a1610d35f00301d933ea051b37b96fd30b0e93 (patch) | |
tree | bb2b4a0cdcac791365efc306feede072d347a9ba /src/async/imap/MCIMAPStoreLabelsOperation.cc | |
parent | f60b89b388389ee877e907819442b2e366238040 (diff) | |
parent | df800fed1079fb0b9f49681d7b1688c1d3b97539 (diff) |
Merge remote-tracking branch 'upstream/master' into NNTP-Cleanup
Diffstat (limited to 'src/async/imap/MCIMAPStoreLabelsOperation.cc')
-rw-r--r-- | src/async/imap/MCIMAPStoreLabelsOperation.cc | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/async/imap/MCIMAPStoreLabelsOperation.cc b/src/async/imap/MCIMAPStoreLabelsOperation.cc index ed738d11..3ad2212a 100644 --- a/src/async/imap/MCIMAPStoreLabelsOperation.cc +++ b/src/async/imap/MCIMAPStoreLabelsOperation.cc @@ -16,12 +16,14 @@ using namespace mailcore; IMAPStoreLabelsOperation::IMAPStoreLabelsOperation() { mUids = NULL; + mNumbers = NULL; mKind = IMAPStoreFlagsRequestKindAdd; mLabels = NULL; } IMAPStoreLabelsOperation::~IMAPStoreLabelsOperation() { + MC_SAFE_RELEASE(mNumbers); MC_SAFE_RELEASE(mUids); MC_SAFE_RELEASE(mLabels); } @@ -36,6 +38,16 @@ IndexSet * IMAPStoreLabelsOperation::uids() return mUids; } +void IMAPStoreLabelsOperation::setNumbers(IndexSet * numbers) +{ + MC_SAFE_REPLACE_RETAIN(IndexSet, mNumbers, numbers); +} + +IndexSet * IMAPStoreLabelsOperation::numbers() +{ + return mNumbers; +} + void IMAPStoreLabelsOperation::setKind(IMAPStoreFlagsRequestKind kind) { mKind = kind; @@ -59,7 +71,12 @@ Array * IMAPStoreLabelsOperation::labels() void IMAPStoreLabelsOperation::main() { ErrorCode error; - session()->session()->storeLabels(folder(), mUids, mKind, mLabels, &error); + if (mUids != NULL) { + session()->session()->storeLabelsByUID(folder(), mUids, mKind, mLabels, &error); + } + else { + session()->session()->storeLabelsByNumber(folder(), mUids, mKind, mLabels, &error); + } setError(error); } |