forked from pool/gwenview5
Accepting request 494643 from home:wolfi323:branches:KDE:Applications
- 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 OBS-URL: https://build.opensuse.org/request/show/494643 OBS-URL: https://build.opensuse.org/package/show/KDE:Applications/gwenview5?expand=0&rev=65
This commit is contained in:
parent
01f674c8eb
commit
5a101688fe
78
fix-importer.patch
Normal file
78
fix-importer.patch
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
From 4907c4b14b9152d27897998849c8121d04c440f5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wolfgang Bauer <wbauer@tmo.at>
|
||||||
|
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<QUrl> 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
|
||||||
|
|
@ -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
|
Sun Apr 16 10:44:47 CEST 2017 - lbeltrame@kde.org
|
||||||
|
|
||||||
|
@ -29,6 +29,8 @@ License: GPL-2.0+
|
|||||||
Group: Productivity/Graphics/Viewers
|
Group: Productivity/Graphics/Viewers
|
||||||
Url: http://www.kde.org
|
Url: http://www.kde.org
|
||||||
Source: gwenview-%{version}.tar.xz
|
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: baloo5-devel
|
||||||
BuildRequires: extra-cmake-modules >= %{kf5_version}
|
BuildRequires: extra-cmake-modules >= %{kf5_version}
|
||||||
BuildRequires: kactivities5-devel
|
BuildRequires: kactivities5-devel
|
||||||
@ -55,7 +57,8 @@ BuildRequires: pkgconfig(Qt5Svg) >= 5.2.0
|
|||||||
BuildRequires: pkgconfig(Qt5Test) >= 5.2.0
|
BuildRequires: pkgconfig(Qt5Test) >= 5.2.0
|
||||||
BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0
|
BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0
|
||||||
BuildRequires: pkgconfig(Qt5X11Extras) >= 5.2.0
|
BuildRequires: pkgconfig(Qt5X11Extras) >= 5.2.0
|
||||||
Conflicts: gwenview
|
Provides: gwenview = %{version}
|
||||||
|
Obsoletes: gwenview < %{version}
|
||||||
Recommends: %{name}-lang
|
Recommends: %{name}-lang
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
@ -70,6 +73,7 @@ hierarchy.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n gwenview-%{version}
|
%setup -q -n gwenview-%{version}
|
||||||
|
%patch -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cmake_kf5 -d build -- -DGWENVIEW_SEMANTICINFO_BACKEND="Baloo"
|
%cmake_kf5 -d build -- -DGWENVIEW_SEMANTICINFO_BACKEND="Baloo"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user