[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/graphics/digikam/utilities/batch
From:       Marcel Wiesweg <marcel.wiesweg () gmx ! de>
Date:       2009-07-31 21:20:14
Message-ID: 1249075214.394302.25269.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1005361 by mwiesweg:

Restructure some parts, with regards to recent changes (ensure progress info message is sent for
list-only parsing as well) and possible loophole for bug 194777.

CCBUG: 194777

 M  +19 -15    batchsyncmetadata.cpp  


--- trunk/extragear/graphics/digikam/utilities/batch/batchsyncmetadata.cpp #1005360:1005361
@@ -119,43 +119,47 @@
 
 void BatchSyncMetadata::slotComplete()
 {
+    if (!d->running)
+        emit startParsingList();
 }
 
 void BatchSyncMetadata::slotAlbumParsed(const ImageInfoList& list)
 {
     d->imageInfoList << list;
 
+    if (!d->running && !d->cancel)
+        emit startParsingList();
+}
+
+void BatchSyncMetadata::parseList()
+{
     if (!d->everStarted)
     {
-        emit signalProgressBarMode(StatusProgressBar::CancelProgressBarMode,
-                                i18n("Synchronizing images' Metadata with database. Please wait..."));
+        QString message;
+        if (d->direction == WriteFromDatabaseToFile)
+            message = i18n("Synchronizing image metadata with database. Please wait...");
+        else
+            message = i18n("Updating database from image metadata. Please wait...");
+        emit signalProgressBarMode(StatusProgressBar::CancelProgressBarMode, message);
 
-        d->imageInfoIndex = 0;
         d->everStarted = true;
     }
-    if (!d->running)
-        emit startParsingList();
-}
 
-void BatchSyncMetadata::parseList()
-{
     d->running = true;
     while (d->imageInfoIndex != d->imageInfoList.size() && !d->cancel)
     {
         parsePicture();
         kapp->processEvents();
     }
+    d->running = false;
 
-    if (d->imageInfoJob && !d->imageInfoJob->isRunning())
+    if (d->cancel ||
+        (d->imageInfoJob && !d->imageInfoJob->isRunning()) ||
+        !d->imageInfoJob
+       )
     {
         complete();
     }
-    else if (d->cancel)
-    {
-        slotAbort();
-        complete();
-    }
-    d->running = false;
 }
 
 void BatchSyncMetadata::parsePicture()
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic