From 8fc2cc1ffec09dd3902b4f1f5fe89ff3c9d8b1db2d1b2a078189b432a063c721 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Sat, 6 Feb 2016 18:20:33 +0000 Subject: [PATCH 1/6] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kdelibs4support?expand=0&rev=80 --- kdelibs4support-5.18.0.tar.xz | 3 --- kdelibs4support-5.19.0.tar.xz | 3 +++ kdelibs4support.changes | 7 +++++++ kdelibs4support.spec | 4 ++-- 4 files changed, 12 insertions(+), 5 deletions(-) delete mode 100644 kdelibs4support-5.18.0.tar.xz create mode 100644 kdelibs4support-5.19.0.tar.xz diff --git a/kdelibs4support-5.18.0.tar.xz b/kdelibs4support-5.18.0.tar.xz deleted file mode 100644 index 81e3a86..0000000 --- a/kdelibs4support-5.18.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a821dafa24ea74bc3bc59f4edad331005fca0b99fd219c0c32908b6aad84903a -size 3222800 diff --git a/kdelibs4support-5.19.0.tar.xz b/kdelibs4support-5.19.0.tar.xz new file mode 100644 index 0000000..a12f2d1 --- /dev/null +++ b/kdelibs4support-5.19.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f60a9b9a950191f5ecbd1fa8a8ccb4ad4327e92e66f3ac0c00c8bb67a4581647 +size 3225356 diff --git a/kdelibs4support.changes b/kdelibs4support.changes index 2644d93..c03606b 100644 --- a/kdelibs4support.changes +++ b/kdelibs4support.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sat Feb 6 18:00:48 UTC 2016 - hrvoje.senjan@gmail.com + +- Update to 5.19.0 + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.19.0.php + ------------------------------------------------------------------- Sat Jan 2 17:42:38 UTC 2016 - hrvoje.senjan@gmail.com diff --git a/kdelibs4support.spec b/kdelibs4support.spec index 18ca9e9..4742730 100644 --- a/kdelibs4support.spec +++ b/kdelibs4support.spec @@ -18,9 +18,9 @@ %bcond_without lang %define lname libKF5KDELibs4Support5 -%define _tar_path 5.18 +%define _tar_path 5.19 Name: kdelibs4support -Version: 5.18.0 +Version: 5.19.0 Release: 0 %define kf5_version %{version} BuildRequires: NetworkManager-devel From aa685deb3687e6c1f07c3d95e8c8052f48f49ffce2a6d4a6aaa874969073c068 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Wed, 17 Feb 2016 22:12:20 +0000 Subject: [PATCH 2/6] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kdelibs4support?expand=0&rev=81 --- fix-session-saving.patch | 112 +++++++++++++++++++++++++++++++++++++++ kdelibs4support.changes | 5 ++ kdelibs4support.spec | 3 ++ 3 files changed, 120 insertions(+) create mode 100644 fix-session-saving.patch diff --git a/fix-session-saving.patch b/fix-session-saving.patch new file mode 100644 index 0000000..5a75956 --- /dev/null +++ b/fix-session-saving.patch @@ -0,0 +1,112 @@ +diff --git a/src/kdeui/kapplication.cpp b/src/kdeui/kapplication.cpp +index 6ffaf6e..dc73b12 100644 +--- a/src/kdeui/kapplication.cpp ++++ b/src/kdeui/kapplication.cpp +@@ -472,6 +472,12 @@ void KApplicationPrivate::init(bool GUIenabled) + q->connect(KToolInvocation::self(), SIGNAL(kapplication_hook(QStringList&,QByteArray&)), + q, SLOT(_k_slot_KToolInvocation_hook(QStringList&,QByteArray&))); + ++ q->connect(q, SIGNAL(commitDataRequest(QSessionManager&)), ++ q, SLOT(commitData(QSessionManager&))); ++ q->connect(q, SIGNAL(saveStateRequest(QSessionManager&)), ++ q, SLOT(saveState(QSessionManager&))); ++ ++ + #ifdef Q_OS_MAC + // This is a QSystemTrayIcon instead of K* because we can't be sure q is a QWidget + QSystemTrayIcon *trayIcon; //krazy:exclude=qclasses +@@ -550,6 +556,8 @@ void KApplication::commitData(QSessionManager &sm) + d->session_save = true; + bool canceled = false; + ++ sm.setAutoCloseWindowsEnabled(false); ++ + foreach (KSessionManager *it, KSessionManager::sessionClients()) { + if ((canceled = !it->commitData(sm))) { + break; +@@ -577,11 +585,13 @@ void KApplication::commitData(QSessionManager &sm) + continue; + } + ++ // leave KMainWindows alone because they are handled by KMWSessionManager + if (!w->isHidden() && !w->inherits("KMainWindow")) { + QCloseEvent e; + sendEvent(w, &e); + if (!e.isAccepted()) { +- break; //canceled ++ canceled = true; ++ break; + } + + donelist.append(w); +@@ -597,6 +607,10 @@ void KApplication::commitData(QSessionManager &sm) + } else { + sm.setRestartHint(QSessionManager::RestartIfRunning); + } ++ ++ if (canceled) { ++ sm.cancel(); ++ } + d->session_save = false; + } + +@@ -638,6 +652,7 @@ static void checkRestartVersion(QSessionManager &sm) + void KApplication::saveState(QSessionManager &sm) + { + d->session_save = true; ++ sm.setAutoCloseWindowsEnabled(false); + #ifdef __GNUC__ + #warning TODO: QSessionManager::handle() is gone in Qt5! + #endif +@@ -988,4 +1003,3 @@ void KApplicationPrivate::_k_slot_KToolInvocation_hook(QStringList &envs, QByteA + } + + #include "moc_kapplication.cpp" +- +diff --git a/src/kdeui/kapplication.h b/src/kdeui/kapplication.h +index 2231084..c9b1cb6 100644 +--- a/src/kdeui/kapplication.h ++++ b/src/kdeui/kapplication.h +@@ -155,20 +155,6 @@ public: + void enableSessionManagement(); + + /** +- * Reimplemented for internal purposes, mainly the highlevel +- * handling of session management with KSessionManager. +- * @internal +- */ +- void commitData(QSessionManager &sm); +- +- /** +- * Reimplemented for internal purposes, mainly the highlevel +- * handling of session management with KSessionManager. +- * @internal +- */ +- void saveState(QSessionManager &sm); +- +- /** + * @deprecated since 5.0, use QGuiApplication::isSavingSession() + * + * Returns true if the application is currently saving its session +@@ -359,6 +345,21 @@ public Q_SLOTS: + */ + Q_SCRIPTABLE void updateUserTimestamp(int time = 0); + ++ /** ++ * Slot connected to QGuiApplication::commitDataRequest() to implement highlevel ++ * handling of session management with KSessionManager. ++ * @internal ++ */ ++ void commitData(QSessionManager &sm); ++ ++ /** ++ * Slot connected to QGuiApplication::saveStateRequest() to implement highlevel ++ * handling of session management with KSessionManager. ++ * @internal ++ */ ++ void saveState(QSessionManager &sm); ++ ++ + // D-Bus Q_SLOTS: + Q_SCRIPTABLE void reparseConfiguration(); + Q_SCRIPTABLE void quit(); diff --git a/kdelibs4support.changes b/kdelibs4support.changes index c03606b..9e8933d 100644 --- a/kdelibs4support.changes +++ b/kdelibs4support.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Feb 17 22:07:24 UTC 2016 - hrvoje.senjan@gmail.com + +- Added fix-session-saving.patch (kde#354724, boo#955280) + ------------------------------------------------------------------- Sat Feb 6 18:00:48 UTC 2016 - hrvoje.senjan@gmail.com diff --git a/kdelibs4support.spec b/kdelibs4support.spec index 4742730..f3a1b7e 100644 --- a/kdelibs4support.spec +++ b/kdelibs4support.spec @@ -76,6 +76,8 @@ Group: System/GUI/KDE Url: http://www.kde.org Source: http://download.kde.org/stable/frameworks/%{_tar_path}/portingAids/%{name}-%{version}.tar.xz Source1: baselibs.conf +# PATCH-FIX-UPSTREAM fix-session-saving.patch -- kde#354724, boo#955280 +Patch0: fix-session-saving.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -188,6 +190,7 @@ KDEDIRS environment variable correctly. Development files. %lang_package %prep %setup -q +%patch0 -p1 %build %cmake_kf5 -d build From 3195a77bd34aa81f2822307f105d6cd71a65340bb24b00961b6bc204e457079f Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Sat, 20 Feb 2016 17:26:40 +0000 Subject: [PATCH 3/6] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kdelibs4support?expand=0&rev=82 --- fix-session-saving.patch | 63 +++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/fix-session-saving.patch b/fix-session-saving.patch index 5a75956..2b0a524 100644 --- a/fix-session-saving.patch +++ b/fix-session-saving.patch @@ -1,8 +1,38 @@ +From 58e49487aece3de19aae90bbb9b80cd5aab94d04 Mon Sep 17 00:00:00 2001 +From: Andreas Hartmetz +Date: Fri, 19 Feb 2016 19:49:01 +0100 +Subject: [PATCH 2/2] Fix session management for KApplication based + applications. + +- Call QGuiApplication::setFallbackSessionManagementEnabled(false) + to prevent premature application exit +- Wire up the saveStateRequest() and commitDataRequest() signals + to the appropriate methods that had to be turned into slots first. + Those methods were never even called, they were not ported properly. +- Cancel logout when the user decides to do that. A comment in the + code was not sufficient to do that. (?!?!) + +CCBUG: 354724 +--- + src/kdeui/kapplication.cpp | 17 ++++++++++++++++- + src/kdeui/kapplication.h | 29 +++++++++++++++-------------- + 2 files changed, 31 insertions(+), 15 deletions(-) + diff --git a/src/kdeui/kapplication.cpp b/src/kdeui/kapplication.cpp -index 6ffaf6e..dc73b12 100644 +index d78212a..54fd1de 100644 --- a/src/kdeui/kapplication.cpp +++ b/src/kdeui/kapplication.cpp -@@ -472,6 +472,12 @@ void KApplicationPrivate::init(bool GUIenabled) +@@ -380,6 +380,9 @@ void KApplicationPrivate::init(bool GUIenabled) + parseCommandLine(); + + QGuiApplication::setDesktopSettingsAware(false); ++#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) ++ QGuiApplication::setFallbackSessionManagementEnabled(false); ++#endif + + #if HAVE_X11 + isX11 = (QGuiApplication::platformName() == QStringLiteral("xcb")); +@@ -472,6 +475,12 @@ void KApplicationPrivate::init(bool GUIenabled) q->connect(KToolInvocation::self(), SIGNAL(kapplication_hook(QStringList&,QByteArray&)), q, SLOT(_k_slot_KToolInvocation_hook(QStringList&,QByteArray&))); @@ -15,16 +45,7 @@ index 6ffaf6e..dc73b12 100644 #ifdef Q_OS_MAC // This is a QSystemTrayIcon instead of K* because we can't be sure q is a QWidget QSystemTrayIcon *trayIcon; //krazy:exclude=qclasses -@@ -550,6 +556,8 @@ void KApplication::commitData(QSessionManager &sm) - d->session_save = true; - bool canceled = false; - -+ sm.setAutoCloseWindowsEnabled(false); -+ - foreach (KSessionManager *it, KSessionManager::sessionClients()) { - if ((canceled = !it->commitData(sm))) { - break; -@@ -577,11 +585,13 @@ void KApplication::commitData(QSessionManager &sm) +@@ -577,11 +586,13 @@ void KApplication::commitData(QSessionManager &sm) continue; } @@ -39,7 +60,7 @@ index 6ffaf6e..dc73b12 100644 } donelist.append(w); -@@ -597,6 +607,10 @@ void KApplication::commitData(QSessionManager &sm) +@@ -597,6 +608,10 @@ void KApplication::commitData(QSessionManager &sm) } else { sm.setRestartHint(QSessionManager::RestartIfRunning); } @@ -50,19 +71,6 @@ index 6ffaf6e..dc73b12 100644 d->session_save = false; } -@@ -638,6 +652,7 @@ static void checkRestartVersion(QSessionManager &sm) - void KApplication::saveState(QSessionManager &sm) - { - d->session_save = true; -+ sm.setAutoCloseWindowsEnabled(false); - #ifdef __GNUC__ - #warning TODO: QSessionManager::handle() is gone in Qt5! - #endif -@@ -988,4 +1003,3 @@ void KApplicationPrivate::_k_slot_KToolInvocation_hook(QStringList &envs, QByteA - } - - #include "moc_kapplication.cpp" -- diff --git a/src/kdeui/kapplication.h b/src/kdeui/kapplication.h index 2231084..c9b1cb6 100644 --- a/src/kdeui/kapplication.h @@ -110,3 +118,6 @@ index 2231084..c9b1cb6 100644 // D-Bus Q_SLOTS: Q_SCRIPTABLE void reparseConfiguration(); Q_SCRIPTABLE void quit(); +-- +2.6.2 + From 5771116c3c200a6e7293cef44e08a0b7e31b2173285e7a974b485adb49cc38c4 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Sat, 20 Feb 2016 17:35:24 +0000 Subject: [PATCH 4/6] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kdelibs4support?expand=0&rev=83 --- fix-session-saving.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fix-session-saving.patch b/fix-session-saving.patch index 2b0a524..b8d24e9 100644 --- a/fix-session-saving.patch +++ b/fix-session-saving.patch @@ -25,7 +25,7 @@ index d78212a..54fd1de 100644 @@ -380,6 +380,9 @@ void KApplicationPrivate::init(bool GUIenabled) parseCommandLine(); - QGuiApplication::setDesktopSettingsAware(false); + QApplication::setDesktopSettingsAware(false); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + QGuiApplication::setFallbackSessionManagementEnabled(false); +#endif From 5f6d3353c60764b6d748c32cd5af75bb22d728b03530a1bb90d00a033570ec2a Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Mon, 22 Feb 2016 16:19:50 +0000 Subject: [PATCH 5/6] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kdelibs4support?expand=0&rev=84 --- kdelibs4support.changes | 6 ++++++ kdelibs4support.spec | 6 ++++++ ...ackSessionManagementEnabled-API-with-5.5.1.patch | 13 +++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch diff --git a/kdelibs4support.changes b/kdelibs4support.changes index 9e8933d..6559579 100644 --- a/kdelibs4support.changes +++ b/kdelibs4support.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Feb 22 16:16:03 UTC 2016 - hrvoje.senjan@gmail.com + +- Add and enable use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch + on 42.1 Leap only, for now (kde#354724, boo#955280) + ------------------------------------------------------------------- Wed Feb 17 22:07:24 UTC 2016 - hrvoje.senjan@gmail.com diff --git a/kdelibs4support.spec b/kdelibs4support.spec index f3a1b7e..d7b8cf4 100644 --- a/kdelibs4support.spec +++ b/kdelibs4support.spec @@ -78,6 +78,9 @@ Source: http://download.kde.org/stable/frameworks/%{_tar_path}/portingAi Source1: baselibs.conf # PATCH-FIX-UPSTREAM fix-session-saving.patch -- kde#354724, boo#955280 Patch0: fix-session-saving.patch +# PATCH-FIX-UPSTREAM use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch -- We can enable usage of setFallbackSessionManagementEnabled function +# with Qt 5.5.1, as we have the qtbase patch backported. For now only apppy patch on 42.1 Leap, as TW doesn't have that patch yet -- #354724, boo#955280 +Patch1: use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -191,6 +194,9 @@ KDEDIRS environment variable correctly. Development files. %prep %setup -q %patch0 -p1 +%if 0%{?suse_version} == 1315 && 0%{?is_opensuse} +%patch1 -p1 +%endif %build %cmake_kf5 -d build diff --git a/use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch b/use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch new file mode 100644 index 0000000..8eadb43 --- /dev/null +++ b/use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch @@ -0,0 +1,13 @@ +diff --git a/src/kdeui/kapplication.cpp b/src/kdeui/kapplication.cpp +index 54fd1de..631dc2b 100644 +--- a/src/kdeui/kapplication.cpp ++++ b/src/kdeui/kapplication.cpp +@@ -380,7 +380,7 @@ void KApplicationPrivate::init(bool GUIenabled) + parseCommandLine(); + + QApplication::setDesktopSettingsAware(false); +-#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) ++#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 1) + QGuiApplication::setFallbackSessionManagementEnabled(false); + #endif + From 90488cccd61de6e2769a649a49cbe6b853a8604d0ee7d8f742842e1142f7ff73 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Mon, 22 Feb 2016 16:40:51 +0000 Subject: [PATCH 6/6] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kdelibs4support?expand=0&rev=85 --- kdelibs4support.changes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kdelibs4support.changes b/kdelibs4support.changes index 6559579..31fb9ac 100644 --- a/kdelibs4support.changes +++ b/kdelibs4support.changes @@ -12,7 +12,7 @@ Wed Feb 17 22:07:24 UTC 2016 - hrvoje.senjan@gmail.com ------------------------------------------------------------------- Sat Feb 6 18:00:48 UTC 2016 - hrvoje.senjan@gmail.com -- Update to 5.19.0 +- Update to 5.19.0 (boo#967668) * For more details please see: https://www.kde.org/announcements/kde-frameworks-5.19.0.php