File bug325580.patch of Package digikam

commit d523a9768ab8276860c76e02b9d9b598a3d607f9
Author: Gilles Caulier <caulier.gilles@gmail.com>
Date:   Thu Sep 11 19:40:30 2014 +0200

    Fix job reset when it's done : do not return directly is an error appera with a job, without to reset job.
    Fix broken signal/slot connection.
    BUGS: 325580
    FIXED-IN: 4.4.0

diff --git a/digikam/album/albumlabelstreeview.cpp b/digikam/album/albumlabelstreeview.cpp
index 2e1ff30..2047cdf 100644
--- a/core/digikam/album/albumlabelstreeview.cpp
+++ b/core/digikam/album/albumlabelstreeview.cpp
@@ -934,7 +934,6 @@ void AlbumLabelsSearchHandler::slotResult(KJob* job)
         // Pop-up a message about the error.
         DNotificationWrapper(QString(), job->errorString(),
                              DigikamApp::instance(), DigikamApp::instance()->windowTitle());
-        return;
     }
 }
 
diff --git a/digikam/album/albummanager.cpp b/digikam/album/albummanager.cpp
index bd05e27..02452b0 100644
--- a/core/digikam/album/albummanager.cpp
+++ b/core/digikam/album/albummanager.cpp
@@ -2969,7 +2969,6 @@ void AlbumManager::slotAlbumsJobResult(KJob* job)
         // Pop-up a message about the error.
         DNotificationWrapper(QString(), job->errorString(),
                              0, i18n("digiKam"));
-        return;
     }
 }
 
@@ -3000,7 +2999,6 @@ void AlbumManager::slotPeopleJobResult(KJob* job)
         // Pop-up a message about the error.
         DNotificationWrapper(QString(), job->errorString(),
                              0, i18n("digiKam"));
-        return;
     }
 }
 
@@ -3044,7 +3042,6 @@ void AlbumManager::slotTagsJobResult(KJob* job)
         // Pop-up a message about the error.
         DNotificationWrapper(QString(), job->errorString(),
                              0, i18n("digiKam"));
-        return;
     }
 }
 
@@ -3075,7 +3072,6 @@ void AlbumManager::slotDatesJobResult(KJob* job)
         // Pop-up a message about the error.
         DNotificationWrapper(QString(), job->errorString(),
                              0, i18n("digiKam"));
-        return;
     }
 
     emit signalAllDAlbumsLoaded();
diff --git a/libs/models/imagealbummodel.cpp b/libs/models/imagealbummodel.cpp
index 7681fa3..5486b55 100644
--- a/core/libs/models/imagealbummodel.cpp
+++ b/core/libs/models/imagealbummodel.cpp
@@ -346,7 +346,6 @@ void ImageAlbumModel::slotResult(KJob* job)
         // Pop-up a message about the error.
         DNotificationWrapper(QString(), job->errorString(),
                              DigikamApp::instance(), DigikamApp::instance()->windowTitle());
-        return;
     }
 }
 
diff --git a/showfoto/main/showfoto.cpp b/showfoto/main/showfoto.cpp
index 4d8ff09..9d407f7 100644
--- a/core/showfoto/main/showfoto.cpp
+++ b/core/showfoto/main/showfoto.cpp
@@ -912,7 +912,7 @@ void ShowFoto::saveAsIsComplete()
 
     // Pop-up a message to bring user when save is done.
     Digikam::DNotificationWrapper("editorsavefilecompleted", i18n("Image saved successfully"),
-                                    this, windowTitle());
+                                  this, windowTitle());
 */
 }
 
diff --git a/utilities/maintenance/duplicatesfinder.cpp b/utilities/maintenance/duplicatesfinder.cpp
index 2636d7d..9ed2f9e 100644
--- a/core/utilities/maintenance/duplicatesfinder.cpp
+++ b/core/utilities/maintenance/duplicatesfinder.cpp
@@ -110,7 +110,7 @@ void DuplicatesFinder::slotStart()
     d->job->addMetaData("threshold",  QString::number(thresh));
 
     connect(d->job, SIGNAL(result(KJob*)),
-            this, SLOT(slotDone(KJob*)));
+            this, SLOT(slotDone()));
 
     connect(d->job, SIGNAL(totalAmount(KJob*,KJob::Unit,qulonglong)),
             this, SLOT(slotDuplicatesSearchTotalAmount(KJob*,KJob::Unit,qulonglong)));
@@ -139,10 +139,9 @@ void DuplicatesFinder::slotDone()
         // Pop-up a message about the error.
         DNotificationWrapper(QString(), d->job->errorString(),
                              DigikamApp::instance(), DigikamApp::instance()->windowTitle());
-        return;
     }
 
-    d->job = NULL;
+    d->job = 0;
     MaintenanceTool::slotDone();
 }
 
@@ -151,7 +150,7 @@ void DuplicatesFinder::slotCancel()
     if (d->job)
     {
         d->job->kill();
-        d->job = NULL;
+        d->job = 0;
     }
 
     MaintenanceTool::slotCancel();
diff --git a/utilities/maintenance/imageinfojob.cpp b/utilities/maintenance/imageinfojob.cpp
index 397601e..9efe80e 100644
--- a/core/utilities/maintenance/imageinfojob.cpp
+++ b/core/utilities/maintenance/imageinfojob.cpp
@@ -110,6 +110,8 @@ bool ImageInfoJob::isRunning() const
 
 void ImageInfoJob::slotResult(KJob* job)
 {
+    d->job = 0;
+
     if (job->error())
     {
         kWarning() << "Failed to list url: " << job->errorString();
@@ -117,11 +119,8 @@ void ImageInfoJob::slotResult(KJob* job)
         // Pop-up a message about the error.
         DNotificationWrapper(QString(), d->job->errorString(),
                              DigikamApp::instance(), DigikamApp::instance()->windowTitle());
-        return;
     }
 
-    d->job = 0;
-
     emit signalCompleted();
 }