aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/imap/MCIMAPStoreLabelsOperation.cc
diff options
context:
space:
mode:
authorGravatar Robert Widmann <devteam.codafi@gmail.com>2014-10-21 15:46:19 -0600
committerGravatar Robert Widmann <devteam.codafi@gmail.com>2014-10-21 15:46:19 -0600
commit53a1610d35f00301d933ea051b37b96fd30b0e93 (patch)
treebb2b4a0cdcac791365efc306feede072d347a9ba /src/async/imap/MCIMAPStoreLabelsOperation.cc
parentf60b89b388389ee877e907819442b2e366238040 (diff)
parentdf800fed1079fb0b9f49681d7b1688c1d3b97539 (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.cc19
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);
}