emailservices/nmclientapi/src/nmapieventnotifier_p.cpp
changeset 76 38bf5461e270
parent 68 83cc6bae1de8
--- a/emailservices/nmclientapi/src/nmapieventnotifier_p.cpp	Thu Sep 30 11:43:07 2010 +0300
+++ b/emailservices/nmclientapi/src/nmapieventnotifier_p.cpp	Thu Oct 14 17:33:43 2010 +0300
@@ -30,6 +30,7 @@
     NM_FUNCTION;
     mEmitSignals = new QTimer(this);
     mEmitSignals->setInterval(IntervalEmitingSignals);
+    mEmitSignals->setSingleShot(true);
     connect(mEmitSignals, SIGNAL(timeout()), this, SIGNAL(
         timedOut()));
     mEngine = NmApiEngine::instance();
@@ -69,14 +70,13 @@
     }
     else {
         qRegisterMetaType<QList<quint64> > ("QList<quint64>");
-        qRegisterMetaType<NmApiEvent> ("NmApiEvent");
+        qRegisterMetaType<EmailClientApi::NmApiEvent> ("EmailClientApi::NmApiEvent");
 
-        connect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this,
-                SLOT(emailStoreEvent(NmApiEvent)));
+        connect(mEngine, SIGNAL(emailStoreEvent(EmailClientApi::NmApiEvent)), this,
+                SLOT(emailStoreEvent(EmailClientApi::NmApiEvent)));
             
         mEngine->startCollectingEvents();
             
-        mEmitSignals->start();
         mIsRunning = true;
         result = true;
     }
@@ -89,8 +89,8 @@
 {
     mIsRunning = false;
     mEmitSignals->stop();
-    disconnect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this,
-            SLOT(emailStoreEvent(NmApiEvent)));
+    disconnect(mEngine, SIGNAL(emailStoreEvent(EmailClientApi::NmApiEvent)), this,
+            SLOT(emailStoreEvent(EmailClientApi::NmApiEvent)));
 }
 
 /*!
@@ -110,10 +110,13 @@
    \sa NmApiEvent
    \param events It contains full info about object and it event.
  */
-void NmApiEventNotifierPrivate::emailStoreEvent(const NmApiEvent &events)
+void NmApiEventNotifierPrivate::emailStoreEvent(const EmailClientApi::NmApiEvent event)
 {
     NM_FUNCTION;
-    mBufferOfEvents << events;
+    mBufferOfEvents << event;
+    if (!mEmitSignals->isActive()) {
+        mEmitSignals->start();
+    }
 }
 
 void NmApiEventNotifierPrivate::cancel()
@@ -127,8 +130,8 @@
     mIsRunning = false;
     mEmitSignals->stop();
 
-    disconnect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this,
-            SLOT(emailStoreEvent(NmApiEvent)));
+    disconnect(mEngine, SIGNAL(emailStoreEvent(EmailClientApi::NmApiEvent)), this,
+            SLOT(emailStoreEvent(EmailClientApi::NmApiEvent)));
 
     mBufferOfEvents.clear();
 }