diff options
Diffstat (limited to 'common/synchronizer.cpp')
-rw-r--r-- | common/synchronizer.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/common/synchronizer.cpp b/common/synchronizer.cpp index 8010689..5bde597 100644 --- a/common/synchronizer.cpp +++ b/common/synchronizer.cpp | |||
@@ -287,11 +287,15 @@ KAsync::Job<void> Synchronizer::processSyncQueue() | |||
287 | mSyncStore.clear(); | 287 | mSyncStore.clear(); |
288 | mMessageQueue->commit(); | 288 | mMessageQueue->commit(); |
289 | mSyncInProgress = false; | 289 | mSyncInProgress = false; |
290 | if (allChangesReplayed()) { | ||
291 | emit changesReplayed(); | ||
292 | } | ||
290 | if (error) { | 293 | if (error) { |
291 | SinkWarning() << "Error during sync: " << error.errorMessage; | 294 | SinkWarning() << "Error during sync: " << error.errorMessage; |
292 | return KAsync::error(error); | 295 | return KAsync::error(error); |
293 | } | 296 | } |
294 | return KAsync::null<void>(); | 297 | //In case we got more requests meanwhile. |
298 | return processSyncQueue(); | ||
295 | }); | 299 | }); |
296 | } | 300 | } |
297 | 301 | ||
@@ -414,6 +418,15 @@ KAsync::Job<QByteArray> Synchronizer::replay(const ApplicationDomain::Folder &, | |||
414 | return KAsync::null<QByteArray>(); | 418 | return KAsync::null<QByteArray>(); |
415 | } | 419 | } |
416 | 420 | ||
421 | bool Synchronizer::allChangesReplayed() | ||
422 | { | ||
423 | if (!mSyncRequestQueue.isEmpty()) { | ||
424 | SinkTrace() << "Queue is not empty"; | ||
425 | return false; | ||
426 | } | ||
427 | return ChangeReplay::allChangesReplayed(); | ||
428 | } | ||
429 | |||
417 | #define REGISTER_TYPE(T) \ | 430 | #define REGISTER_TYPE(T) \ |
418 | template void Synchronizer::createOrModify(const QByteArray &bufferType, const QByteArray &remoteId, const T &entity, const QHash<QByteArray, Sink::Query::Comparator> &mergeCriteria); \ | 431 | template void Synchronizer::createOrModify(const QByteArray &bufferType, const QByteArray &remoteId, const T &entity, const QHash<QByteArray, Sink::Query::Comparator> &mergeCriteria); \ |
419 | template void Synchronizer::modify(const T &entity); | 432 | template void Synchronizer::modify(const T &entity); |