emailservices/nmclientapi/src/nmapiengine.cpp
changeset 53 bf7eb7911fc5
parent 30 759dc5235cdb
child 48 10eaf342f539
--- a/emailservices/nmclientapi/src/nmapiengine.cpp	Fri Jun 11 13:27:14 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapiengine.cpp	Wed Jun 23 18:00:21 2010 +0300
@@ -110,10 +110,18 @@
     switch (mailboxEvent) {
         case NmMailboxCreated: {
             message.action = ENew;
+            // subscribe all events also for these new mailboxes
+            for(int i=0; i<mailboxIds.count(); i++) {
+                mFactory->interfaceInstance()->subscribeMailboxEvents(mailboxIds[i]);
+            }
         }
             break;
         case NmMailboxDeleted: {
             message.action = EDeleted;
+            // unsubscribe all events from deleted mailboxes
+            for(int i=0; i<mailboxIds.count(); i++) {
+                mFactory->interfaceInstance()->unsubscribeMailboxEvents(mailboxIds[i]);
+            }
         }
             break;
         case NmMailboxChanged: {
@@ -222,7 +230,13 @@
 
     while (mailboxFromPlugin.isEmpty() == false) {
         NmMailbox* tempNmMailbox = mailboxFromPlugin.takeLast();
+
+        // subscribe all events also for these new mailboxes
+        instance->subscribeMailboxEvents(tempNmMailbox->id());
+
+        // construct mailboxlist to platform api
         mailboxList << NmToApiConverter::NmMailbox2NmApiMailbox(*tempNmMailbox);
+
         delete tempNmMailbox;
     }
 }
@@ -333,7 +347,6 @@
             envelope.setTotalSize(message->size());
 
             found = true;
-            delete plainTextPart;
         }
         delete message;
     }