Accepting request 251984 from KDE:Extra

- Added handle_right_libkexiv2_version.diff and handle_right_libkexiv2_version2.diff, kde#339144, bnc#898260

- Add bug325580.patch: Fix job reset when it's done : do not return directly is an error appear with a job, without to reset job. kde#325580, kde#339210

OBS-URL: https://build.opensuse.org/request/show/251984
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/digikam?expand=0&rev=127
This commit is contained in:
Stephan Kulow 2014-10-01 09:22:05 +00:00 committed by Git OBS Bridge
commit d7453e4191
5 changed files with 225 additions and 0 deletions

141
bug325580.patch Normal file
View File

@ -0,0 +1,141 @@
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();
}

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Wed Sep 24 17:47:04 UTC 2014 - hrvoje.senjan@gmail.com
- Added handle_right_libkexiv2_version.diff and
handle_right_libkexiv2_version2.diff, kde#339144, bnc#898260
-------------------------------------------------------------------
Tue Sep 23 15:55:06 UTC 2014 - hrvoje.senjan@gmail.com
- Add bug325580.patch: Fix job reset when it's done : do not return
directly is an error appera with a job, without to reset job.
kde#325580, kde#339210
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Sep 16 22:51:40 UTC 2014 - hrvoje.senjan@gmail.com Tue Sep 16 22:51:40 UTC 2014 - hrvoje.senjan@gmail.com

View File

@ -33,6 +33,12 @@ Patch3: remove-gplv2-only.patch
Patch5: digikam_no_build_vkontakte.diff Patch5: digikam_no_build_vkontakte.diff
# PATCH-FIX-UPSTREAM digikam-3.0.0.no-kdcraw.version-check.patch -- version check for libkdcraw currently broken # PATCH-FIX-UPSTREAM digikam-3.0.0.no-kdcraw.version-check.patch -- version check for libkdcraw currently broken
Patch6: digikam-3.0.0.no-kdcraw.version-check.patch Patch6: digikam-3.0.0.no-kdcraw.version-check.patch
# PATCH-FIX-UPSTREAM bug325580.patch -- Fix job reset when it's done : do not return directly is an error appera with a job, without to reset job.
Patch7: bug325580.patch
# PATCH-FIX-UPSTREAM handle_right_libkexiv2_version.diff
Patch8: handle_right_libkexiv2_version.diff
# PATCH-FIX-UPSTREAM handle_right_libkexiv2_version2.diff
Patch9: handle_right_libkexiv2_version2.diff
BuildRequires: ImageMagick-devel BuildRequires: ImageMagick-devel
BuildRequires: bison BuildRequires: bison
BuildRequires: boost-devel BuildRequires: boost-devel
@ -238,6 +244,9 @@ This package contains the development files for libmediawiki.
%patch3 %patch3
%patch5 %patch5
%patch6 -p1 %patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
# Remove build time references so build-compare can do its work # Remove build time references so build-compare can do its work
FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y') FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y')

View File

@ -0,0 +1,39 @@
commit 573069e8cd3b7155582e0c7be3625c0cc4879619
Author: Gilles Caulier <caulier.gilles@gmail.com>
Date: Tue Sep 23 09:49:20 2014 +0200
Handle right libkexiv2 version to extract preview and prevent crash in Exiv2 preview extractor.
CCBUGS: 339144
diff --git a/core/libs/threadimageio/thumbnailcreator.cpp b/core/libs/threadimageio/thumbnailcreator.cpp
index ed07d0d..9f238a4 100644
--- a/core/libs/threadimageio/thumbnailcreator.cpp
+++ b/core/libs/threadimageio/thumbnailcreator.cpp
@@ -62,6 +62,7 @@
#include <libkexiv2/kexiv2previews.h>
#include <libkexiv2/rotationmatrix.h>
+#include <libkexiv2/version.h>
// Local includes
@@ -519,6 +520,9 @@ ThumbnailImage ThumbnailCreator::createT
KDcraw::loadHalfPreview(qimage, path);
}
+ // See bug #339144 : only handle preview if right libkexiv2 version is used.
+#if KEXIV2_VERSION >= 0x020302
+
// Special case with DNG file. See B.K.O #338081
if (qimage.isNull())
{
@@ -528,6 +532,9 @@ ThumbnailImage ThumbnailCreator::createT
qimage = preview.image();
}
+
+#endif
+
// DImg-dependent loading methods: TIFF, PNG, everything supported by QImage
if (qimage.isNull() && !failedAtDImg)
{

View File

@ -0,0 +1,23 @@
commit e2eeb730d02aad858f15c6f35f2a6b6beb38acf5
Author: Gilles Caulier <caulier.gilles@gmail.com>
Date: Tue Sep 23 10:28:39 2014 +0200
Another place where we need to handle right libkexiv2 version to extract preview and prevent crash in Exiv2 preview extractor.
CCBUGS: 339144
diff --git a/core/libs/threadimageio/previewtask.cpp b/core/libs/threadimageio/previewtask.cpp
index 3c3b72a..99bb4d6 100644
--- a/core/libs/threadimageio/previewtask.cpp
+++ b/core/libs/threadimageio/previewtask.cpp
@@ -254,7 +254,11 @@ void PreviewLoadingTask::execute()
// require at least half preview size
if (qMax(previews.width(), previews.height()) >= sizeLimit)
{
+
+ // See bug #339144 : only handle preview if right libkexiv2 version is used.
+#if KEXIV2_VERSION >= 0x020302
qimage = previews.image();
+#endif
if (!qimage.isNull())
{