- Add patch to fix regression in 5.8.5 (Save dialog appears as Open dialog)
* 0001-Fix-regression-in-which-the-Save-dialog-appears-as-a.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-integration?expand=0&rev=39
This commit is contained in:
parent
49f60259ed
commit
e8fc18a46f
@ -0,0 +1,78 @@
|
|||||||
|
From 87b27476cc8a3865994da066ce06a3e836462719 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Albert Astals Cid <aacid@kde.org>
|
||||||
|
Date: Sat, 31 Dec 2016 11:55:43 +0100
|
||||||
|
Subject: [PATCH] Fix regression in which the Save dialog appears as an Open
|
||||||
|
dialog
|
||||||
|
|
||||||
|
7bbbd93cd3fc0abdffd3fa7f144cb50a33fafad9 makes the save dialog appear as Open dialog.
|
||||||
|
|
||||||
|
Simplify the code in that commit so it does not regress anymore.
|
||||||
|
|
||||||
|
Comes with a unit test
|
||||||
|
|
||||||
|
New test fails without the patch, works with it. Kate Save As dialog no longer shows as Open dialog.
|
||||||
|
|
||||||
|
REVIEW: 129732
|
||||||
|
---
|
||||||
|
autotests/kfiledialog_unittest.cpp | 23 +++++++++++++++++++++++
|
||||||
|
src/platformtheme/kdeplatformfiledialoghelper.cpp | 10 +---------
|
||||||
|
2 files changed, 24 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/autotests/kfiledialog_unittest.cpp b/autotests/kfiledialog_unittest.cpp
|
||||||
|
index 47a5543..d53c7e3 100644
|
||||||
|
--- a/autotests/kfiledialog_unittest.cpp
|
||||||
|
+++ b/autotests/kfiledialog_unittest.cpp
|
||||||
|
@@ -95,6 +95,29 @@ private Q_SLOTS:
|
||||||
|
QCOMPARE(dialog.directoryUrl(), directoryUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ void testGetSaveFileUrl()
|
||||||
|
+ {
|
||||||
|
+ QObject lambdaGuard;
|
||||||
|
+ QTemporaryFile tempFile(QDir::tempPath()+"/kfiledialogtest_XXXXXX");
|
||||||
|
+ tempFile.open();
|
||||||
|
+ const QString tempName = tempFile.fileName();
|
||||||
|
+ const QUrl url = QUrl::fromLocalFile(tempName);
|
||||||
|
+
|
||||||
|
+ // Need to use a lambda and not just QTest::qWaitForWindowExposed();
|
||||||
|
+ // because with the static getSaveFileUrl we do not have access
|
||||||
|
+ // to the QFileDialog object, so instead we hook to a signal
|
||||||
|
+ KFileWidget::OperationMode saveFileOperationMode = KFileWidget::Other;
|
||||||
|
+ connect(qApp, &QGuiApplication::focusWindowChanged, &lambdaGuard, [&saveFileOperationMode] {
|
||||||
|
+ KFileWidget *fileWidget = findFileWidget();
|
||||||
|
+ saveFileOperationMode = fileWidget->operationMode();
|
||||||
|
+ qApp->activeWindow()->close();
|
||||||
|
+ });
|
||||||
|
+
|
||||||
|
+ QFileDialog::getSaveFileUrl(0, QString(), url);
|
||||||
|
+
|
||||||
|
+ QCOMPARE(saveFileOperationMode, KFileWidget::Saving);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
void testViewMode()
|
||||||
|
{
|
||||||
|
// Open a file dialog, and change view mode to tree
|
||||||
|
diff --git a/src/platformtheme/kdeplatformfiledialoghelper.cpp b/src/platformtheme/kdeplatformfiledialoghelper.cpp
|
||||||
|
index 990b983..05cfe35 100644
|
||||||
|
--- a/src/platformtheme/kdeplatformfiledialoghelper.cpp
|
||||||
|
+++ b/src/platformtheme/kdeplatformfiledialoghelper.cpp
|
||||||
|
@@ -365,15 +365,7 @@ void KDEPlatformFileDialogHelper::selectFile(const QUrl &filename)
|
||||||
|
// Qt 5 at least <= 5.8.0 does not derive the directory from the passed url
|
||||||
|
// and set the initialDirectory option accordingly, also not for known schemes
|
||||||
|
// like file://, so we have to do it ourselves
|
||||||
|
-
|
||||||
|
- // Syntax-wise we have to use a copy ctor until Qt 5.7.x and clone() since Qt 5.8.
|
||||||
|
-#if QT_VERSION < QT_VERSION_CHECK(5, 8, 0)
|
||||||
|
- QSharedPointer<QFileDialogOptions> opt(new QFileDialogOptions(*options()));
|
||||||
|
-#else
|
||||||
|
- auto opt = options()->clone();
|
||||||
|
-#endif
|
||||||
|
- opt->setInitialDirectory(m_dialog->directory());
|
||||||
|
- setOptions(opt);
|
||||||
|
+ options()->setInitialDirectory(m_dialog->directory());
|
||||||
|
}
|
||||||
|
|
||||||
|
void KDEPlatformFileDialogHelper::setDirectory(const QUrl &directory)
|
||||||
|
--
|
||||||
|
2.10.2
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jan 5 12:48:09 UTC 2017 - fabian@ritter-vogt.de
|
||||||
|
|
||||||
|
- Add patch to fix regression in 5.8.5 (Save dialog appears as Open dialog)
|
||||||
|
* 0001-Fix-regression-in-which-the-Save-dialog-appears-as-a.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Dec 27 18:31:45 UTC 2016 - fabian@ritter-vogt.de
|
Tue Dec 27 18:31:45 UTC 2016 - fabian@ritter-vogt.de
|
||||||
|
|
||||||
|
@ -29,6 +29,8 @@ License: GPL-2.0+
|
|||||||
Group: System/GUI/KDE
|
Group: System/GUI/KDE
|
||||||
Url: http://www.kde.org
|
Url: http://www.kde.org
|
||||||
Source: http://download.kde.org/stable/plasma/%{version}/plasma-integration-%{version}.tar.xz
|
Source: http://download.kde.org/stable/plasma/%{version}/plasma-integration-%{version}.tar.xz
|
||||||
|
# PATCH-FIX-UPSTREAM 0001-Fix-regression-in-which-the-Save-dialog-appears-as-a.patch aacid@kde.org -- Fix regression in which the Save dialog appears as an Open dialog
|
||||||
|
Patch1: 0001-Fix-regression-in-which-the-Save-dialog-appears-as-a.patch
|
||||||
BuildRequires: extra-cmake-modules >= 5.17.0
|
BuildRequires: extra-cmake-modules >= 5.17.0
|
||||||
BuildRequires: kf5-filesystem
|
BuildRequires: kf5-filesystem
|
||||||
BuildRequires: libQt5Gui-private-headers-devel >= 5.5.0
|
BuildRequires: libQt5Gui-private-headers-devel >= 5.5.0
|
||||||
@ -76,6 +78,7 @@ Applications do not need to link to this directly.
|
|||||||
%lang_package -n plasma5-integration-plugin
|
%lang_package -n plasma5-integration-plugin
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n plasma-integration-%{version}
|
%setup -q -n plasma-integration-%{version}
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cmake_kf5 -d build
|
%cmake_kf5 -d build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user