diff --git a/fix-importer.patch b/fix-importer.patch new file mode 100644 index 0000000..2dadb72 --- /dev/null +++ b/fix-importer.patch @@ -0,0 +1,78 @@ +From 4907c4b14b9152d27897998849c8121d04c440f5 Mon Sep 17 00:00:00 2001 +From: Wolfgang Bauer +Date: Thu, 11 May 2017 16:17:48 +0200 +Subject: [PATCH] Avoid data loss when importing pictures + +Fix porting regressions, which left users of Gwenview Importer with: +* failed import (import destination still empty) +* additionally (when choosing "Delete" instead of "Keep" after import): +pictures also removed from import source, with no way to recover + +Correct additional problems remaining after fixing the import failure: +* hang on duplicate filenames +* identically named files with different content are never imported +* error dialog when deleting pictures from import source + +BUG: 379615 + +Differential Revision: https://phabricator.kde.org/D5749 +--- + importer/fileutils.cpp | 5 ++++- + importer/importdialog.cpp | 2 +- + importer/importer.cpp | 4 ++-- + 3 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/importer/fileutils.cpp b/importer/fileutils.cpp +index 5293d561..a51a18cf 100644 +--- a/importer/fileutils.cpp ++++ b/importer/fileutils.cpp +@@ -128,7 +128,10 @@ RenameResult rename(const QUrl& src, const QUrl& dst_, QWidget* authWindow) + } + result = RenamedUnderNewName; + +- dst.setPath(dst.path() + '/' + prefix + QString::number(count) + suffix); ++ dst.setPath(dst.adjusted(QUrl::RemoveFilename).path() + prefix + QString::number(count) + suffix); ++ statJob = KIO::stat(dst); ++ KJobWidgets::setWindow(statJob, authWindow); ++ + ++count; + } + +diff --git a/importer/importdialog.cpp b/importer/importdialog.cpp +index ee6f7cd6..5e9e847c 100644 +--- a/importer/importdialog.cpp ++++ b/importer/importdialog.cpp +@@ -121,7 +121,7 @@ public: + QList urls = importedUrls + skippedUrls; + while (true) { + KIO::Job* job = KIO::del(urls); +- if (!job->exec()) { ++ if (job->exec()) { + break; + } + // Deleting failed +diff --git a/importer/importer.cpp b/importer/importer.cpp +index 51c4b964..a7e1d4ea 100644 +--- a/importer/importer.cpp ++++ b/importer/importer.cpp +@@ -98,7 +98,7 @@ struct ImporterPrivate + } + mCurrentUrl = mUrlList.takeFirst(); + QUrl dst = mTempImportDirUrl; +- dst.setPath(dst.path() + '/' + mCurrentUrl.fileName()); ++ dst.setPath(dst.path() + mCurrentUrl.fileName()); + KIO::Job* job = KIO::copy(mCurrentUrl, dst, KIO::HideProgressInfo); + KJobWidgets::setWindow(job, mAuthWindow); + QObject::connect(job, SIGNAL(result(KJob*)), +@@ -122,7 +122,7 @@ struct ImporterPrivate + } else { + fileName = src.fileName(); + } +- dst.setPath(dst.path() + '/' + fileName); ++ dst.setPath(dst.path() + fileName); + + FileUtils::RenameResult result = FileUtils::rename(src, dst, mAuthWindow); + switch (result) { +-- +2.12.0 + diff --git a/gwenview5.changes b/gwenview5.changes index be21581..0bb7e00 100644 --- a/gwenview5.changes +++ b/gwenview5.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu May 11 13:34:26 UTC 2017 - wbauer@tmo.at + +- Add fix-importer.patch to make the importer work and not cause + data loss if "Delete" is chosen after the import (kde#379615) +- Provides/Obsoletes gwenview instead of Conflicts + ------------------------------------------------------------------- Sun Apr 16 10:44:47 CEST 2017 - lbeltrame@kde.org diff --git a/gwenview5.spec b/gwenview5.spec index 6ded34b..93d90b3 100644 --- a/gwenview5.spec +++ b/gwenview5.spec @@ -29,6 +29,8 @@ License: GPL-2.0+ Group: Productivity/Graphics/Viewers Url: http://www.kde.org Source: gwenview-%{version}.tar.xz +# PATCH-FIX-UPSTREAM fix-importer.patch kde#379615 -- fix problems with the importer that may even cause data loss +Patch: fix-importer.patch BuildRequires: baloo5-devel BuildRequires: extra-cmake-modules >= %{kf5_version} BuildRequires: kactivities5-devel @@ -55,7 +57,8 @@ BuildRequires: pkgconfig(Qt5Svg) >= 5.2.0 BuildRequires: pkgconfig(Qt5Test) >= 5.2.0 BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0 BuildRequires: pkgconfig(Qt5X11Extras) >= 5.2.0 -Conflicts: gwenview +Provides: gwenview = %{version} +Obsoletes: gwenview < %{version} Recommends: %{name}-lang BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -70,6 +73,7 @@ hierarchy. %prep %setup -q -n gwenview-%{version} +%patch -p1 %build %cmake_kf5 -d build -- -DGWENVIEW_SEMANTICINFO_BACKEND="Baloo"