From 7f5dc290add09591f8013f768b883327c60c14904c8a36280c795fce77dedcb8 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Sun, 8 Feb 2015 19:08:41 +0000 Subject: [PATCH] 5.7.0 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/frameworkintegration?expand=0&rev=55 --- 0001-Update-XCursor-settings.patch | 141 ------------------ ...all-color-scheme-on-toplevel-widgets.patch | 36 ----- ...ly-check-for-systray-being-available.patch | 58 ------- ...single-click-setting-from-QPlatformT.patch | 38 ----- ...SystemTrayMenuItem-setMenu-correctly.patch | 49 ------ frameworkintegration-5.6.0.tar.xz | 3 - frameworkintegration-5.7.0.tar.xz | 3 + frameworkintegration.changes | 18 +++ frameworkintegration.spec | 19 +-- 9 files changed, 23 insertions(+), 342 deletions(-) delete mode 100644 0001-Update-XCursor-settings.patch delete mode 100644 0004-Only-install-color-scheme-on-toplevel-widgets.patch delete mode 100644 0005-Properly-check-for-systray-being-available.patch delete mode 100644 0007-Use-activate-on-single-click-setting-from-QPlatformT.patch delete mode 100644 0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch delete mode 100644 frameworkintegration-5.6.0.tar.xz create mode 100644 frameworkintegration-5.7.0.tar.xz diff --git a/0001-Update-XCursor-settings.patch b/0001-Update-XCursor-settings.patch deleted file mode 100644 index 985f3d7..0000000 --- a/0001-Update-XCursor-settings.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 0e949d2b5b54ae7cc44ba21a43cecbde5ddaacc2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= -Date: Thu, 8 Jan 2015 16:31:40 +0100 -Subject: [PATCH 1/8] Update XCursor settings - -Code taken and adjusted from KGlobalSettings. - -REVIEW: 121927 -CHANGELOG: Update XCursor settings on X11 platform. ---- - autotests/CMakeLists.txt | 1 + - src/platformtheme/CMakeLists.txt | 7 +++++- - src/platformtheme/khintssettings.cpp | 44 ++++++++++++++++++++++++++++++++++++ - src/platformtheme/khintssettings.h | 1 + - 4 files changed, 52 insertions(+), 1 deletion(-) - -diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt -index 00337e775e4e2d3e2d1bb583f4102323f0e5973b..e8ed6a99bb45969231ba21b8c5588e093bbbe3ee 100644 ---- a/autotests/CMakeLists.txt -+++ b/autotests/CMakeLists.txt -@@ -17,6 +17,7 @@ remove_definitions(-DQT_NO_CAST_FROM_ASCII) - - macro(FRAMEWORKINTEGRATION_TESTS _testname) - add_executable(${_testname} ${_testname}.cpp ${ARGN}) -+ set_target_properties(${_testname} PROPERTIES COMPILE_FLAGS "-DUNIT_TEST") - add_test(frameworkintegration-${_testname} ${_testname}) - ecm_mark_as_test(${_testname}) - target_link_libraries(${_testname} Qt5::Test Qt5::DBus KF5::ConfigWidgets KF5::ConfigCore KF5::IconThemes KF5::Style KF5::KIOFileWidgets KF5::I18n KF5::Notifications) -diff --git a/src/platformtheme/CMakeLists.txt b/src/platformtheme/CMakeLists.txt -index 8a3b1b43d617083730517fe8db0a1e2f543913ab..b0d804904b5df2996893046b2b942be6ad952860 100644 ---- a/src/platformtheme/CMakeLists.txt -+++ b/src/platformtheme/CMakeLists.txt -@@ -7,6 +7,11 @@ if(NOT APPLE) - set(HAVE_X11 ${XCB_XCB_FOUND}) - if (XCB_XCB_FOUND) - find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED X11Extras) -+ find_package(X11) -+ set_package_properties(X11 PROPERTIES DESCRIPTION "Required for updating the Cursor theme on X11" -+ URL "http://www.x.org" -+ TYPE REQUIRED -+ ) - endif() - else() - set(HAVE_X11 FALSE) -@@ -46,7 +51,7 @@ target_link_libraries(KDEPlatformTheme - ) - - if(HAVE_X11) -- target_link_libraries(KDEPlatformTheme PRIVATE Qt5::X11Extras XCB::XCB) -+ target_link_libraries(KDEPlatformTheme PRIVATE Qt5::X11Extras XCB::XCB ${X11_Xcursor_LIB}) - endif() - - install(TARGETS KDEPlatformTheme DESTINATION ${QT_PLUGIN_INSTALL_DIR}/platformthemes) -diff --git a/src/platformtheme/khintssettings.cpp b/src/platformtheme/khintssettings.cpp -index a477a1078f7d62294abfffc92a77889832b1e0db..6e8313d02f5392802a4c8155c2b7341b84a4bd39 100644 ---- a/src/platformtheme/khintssettings.cpp -+++ b/src/platformtheme/khintssettings.cpp -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -42,6 +43,16 @@ - #include - #include - -+#ifndef UNIT_TEST -+#include -+#else -+#define HAVE_X11 0 -+#endif -+#if HAVE_X11 -+#include -+#include -+#endif -+ - static const QString defaultLookAndFeelPackage = "org.kde.breeze.desktop"; - - KHintsSettings::KHintsSettings() : QObject(0) -@@ -234,6 +245,9 @@ void KHintsSettings::slotNotifyChange(int type, int arg) - case IconChanged: - iconChanged(arg); //Once the KCM is ported to use IconChanged, this should not be needed - break; -+ case CursorChanged: -+ updateCursorTheme(); -+ break; - case StyleChanged: { - QApplication *app = qobject_cast(QCoreApplication::instance()); - if (!app) { -@@ -363,3 +377,33 @@ void KHintsSettings::loadPalettes() - } - } - } -+ -+void KHintsSettings::updateCursorTheme() -+{ -+ KConfig config("kcminputrc"); -+ KConfigGroup g(&config, "Mouse"); -+ -+ QString theme = g.readEntry("cursorTheme", QString()); -+ int size = g.readEntry("cursorSize", -1); -+ -+ // Default cursor size is 16 points -+ if (size == -1) { -+ if (QScreen *s = QGuiApplication::primaryScreen()) { -+ size = s->logicalDotsPerInchY() * 16 / 72; -+ } else { -+ size = 0; -+ } -+ } -+ -+#if HAVE_X11 -+ if (QX11Info::isPlatformX11()) { -+ // Note that in X11R7.1 and earlier, calling XcursorSetTheme() -+ // with a NULL theme would cause Xcursor to use "default", but -+ // in 7.2 and later it will cause it to revert to the theme that -+ // was configured when the application was started. -+ XcursorSetTheme(QX11Info::display(), theme.isNull() ? -+ "default" : QFile::encodeName(theme).constData()); -+ XcursorSetDefaultSize(QX11Info::display(), size); -+ } -+#endif -+} -diff --git a/src/platformtheme/khintssettings.h b/src/platformtheme/khintssettings.h -index 281e24037b63706ca6af2843e3d38fb2dd10e73c..ec064d32c8516e3647b7731e643bc90d03e7a833 100644 ---- a/src/platformtheme/khintssettings.h -+++ b/src/platformtheme/khintssettings.h -@@ -76,6 +76,7 @@ private: - void iconChanged(int group); - void updateQtSettings(KConfigGroup &cg); - Qt::ToolButtonStyle toolButtonStyle(const KConfigGroup &cg) const; -+ void updateCursorTheme(); - - QStringList xdgIconThemePaths() const; - QHash m_palettes; --- -2.2.2 - diff --git a/0004-Only-install-color-scheme-on-toplevel-widgets.patch b/0004-Only-install-color-scheme-on-toplevel-widgets.patch deleted file mode 100644 index 110e6ac..0000000 --- a/0004-Only-install-color-scheme-on-toplevel-widgets.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 52e25019011ef856809fd4317b197d5d37f56454 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= -Date: Tue, 13 Jan 2015 10:45:38 +0100 -Subject: [PATCH 4/8] Only install color scheme on toplevel widgets - -ColorSchemeFilter::installColorScheme sets/deletes an xproperty on the -QWidget to be read by the window manager. The window manager is only -interested in toplevel widgets and doesn't monitor child windows at -all. Thus it is not required to perform this method on non toplevel -windows. - -The method so far created a native window for each QWidget it operated -on by calling winId. This broke QQuickWidgets when changing the color -scheme as it's not allowed to call QWindow::create on a QQuickWidget. - -REVIEW: 122024 ---- - src/kstyle/kstyle.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/kstyle/kstyle.cpp b/src/kstyle/kstyle.cpp -index b5f7363a27337d706beb73363dc0cffa38762ef4..a6c898a49b4f7597493ee31ef9381b8a8f8887df 100644 ---- a/src/kstyle/kstyle.cpp -+++ b/src/kstyle/kstyle.cpp -@@ -103,7 +103,7 @@ bool ColorSchemeFilter::eventFilter(QObject *object, QEvent *event) - - void ColorSchemeFilter::installColorScheme(QWidget *w) - { -- if (!w) { -+ if (!w || !w->isTopLevel()) { - return; - } - #if HAVE_X11 --- -2.2.2 - diff --git a/0005-Properly-check-for-systray-being-available.patch b/0005-Properly-check-for-systray-being-available.patch deleted file mode 100644 index 0b1583b..0000000 --- a/0005-Properly-check-for-systray-being-available.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 072679bd7044021b08a3ef04909719b5b3479f58 Mon Sep 17 00:00:00 2001 -From: Martin Klapetek -Date: Wed, 14 Jan 2015 16:13:10 +0100 -Subject: [PATCH 5/8] Properly check for systray being available - -The "org.kde.StatusNotifierWatcher" is just a watcher/helper, not the -actual systray object, that's "org.kde.StatusNotifierHost-$PID". Because -Plasma appends the PID (as per the specification), we cannot check -directly for it being present on the bus, so we check the -org.kde.StatusNotifierWatcher.IsStatusNotifierHostRegistered property -that's meant to be used for this. - -Plus QSystemTrayIcon::isSystemTrayAvailable() is actually returning -always true, because the Watcher is in kded and is /always/ present. - -This also fixes many apps with KSNI crashing on plasma exit, bug 339707 -(though I believe this is not the direct cause for that bug) - -REVIEW: 121885 -BUG: 339707 -CHANGELOG ---- - src/platformtheme/kdeplatformsystemtrayicon.cpp | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/src/platformtheme/kdeplatformsystemtrayicon.cpp b/src/platformtheme/kdeplatformsystemtrayicon.cpp -index b5e207cbff0cf302ef142bb424d6dfbfcad9bbd3..d3a1d4fe2f135ea241e97598a2589558656c1099 100644 ---- a/src/platformtheme/kdeplatformsystemtrayicon.cpp -+++ b/src/platformtheme/kdeplatformsystemtrayicon.cpp -@@ -24,9 +24,7 @@ - #include - #include - #include --#include --#include --#include -+#include - - #if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)) - SystemTrayMenu::SystemTrayMenu() -@@ -327,8 +325,12 @@ void KDEPlatformSystemTrayIcon::showMessage(const QString &msg, const QString &t - - bool KDEPlatformSystemTrayIcon::isSystemTrayAvailable() const - { -- QDBusReply reply = QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.StatusNotifierWatcher"); -- return reply.value(); -+ QDBusInterface systrayHost("org.kde.StatusNotifierWatcher", "/StatusNotifierWatcher", "org.kde.StatusNotifierWatcher"); -+ if (systrayHost.isValid()) { -+ return systrayHost.property("IsStatusNotifierHostRegistered").toBool(); -+ } -+ -+ return false; - } - - bool KDEPlatformSystemTrayIcon::supportsMessages() const --- -2.2.2 - diff --git a/0007-Use-activate-on-single-click-setting-from-QPlatformT.patch b/0007-Use-activate-on-single-click-setting-from-QPlatformT.patch deleted file mode 100644 index a163a67..0000000 --- a/0007-Use-activate-on-single-click-setting-from-QPlatformT.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 2211793a69115cb5d0e61c40e9333d43a80fc0af Mon Sep 17 00:00:00 2001 -From: David Edmundson -Date: Wed, 28 Jan 2015 18:25:17 +0100 -Subject: [PATCH 7/8] Use activate on single click setting from QPlatformTheme - -Our QPlatformTheme already provide a hint as to whether items should -activate on single click and it updates when the setting changes - -QCommonStyle by default uses the QPlatformTheme - -This removes duplicating the lookup and also means we now update the -setting if it changes at runtime - -REVIEW: 122293 -BUG: 343418 ---- - src/kstyle/kstyle.cpp | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/src/kstyle/kstyle.cpp b/src/kstyle/kstyle.cpp -index a6c898a49b4f7597493ee31ef9381b8a8f8887df..3b8c8f314224a8240ff50a48164e81d2ba315554 100644 ---- a/src/kstyle/kstyle.cpp -+++ b/src/kstyle/kstyle.cpp -@@ -416,11 +416,6 @@ QIcon KStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption */*op - int KStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const - { - switch (hint) { -- case SH_ItemView_ActivateItemOnSingleClick: { -- KConfigGroup g(KSharedConfig::openConfig(), "KDE"); -- return g.readEntry("SingleClick", true); -- } -- - case SH_DialogButtonBox_ButtonsHaveIcons: { - // was KGlobalSettings::showIconsOnPushButtons() : - KConfigGroup g(KSharedConfig::openConfig(), "KDE"); --- -2.2.2 - diff --git a/0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch b/0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch deleted file mode 100644 index caac9f5..0000000 --- a/0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch +++ /dev/null @@ -1,49 +0,0 @@ -From a09034c57ee00e7c16c2db4fd43f1993ee2e686d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= -Date: Fri, 30 Jan 2015 00:05:43 +0100 -Subject: [PATCH 8/8] Implement SystemTrayMenuItem::setMenu() correctly - -REVIEW: 122171 ---- - src/platformtheme/kdeplatformsystemtrayicon.cpp | 5 +++-- - src/platformtheme/kdeplatformsystemtrayicon.h | 1 - - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/platformtheme/kdeplatformsystemtrayicon.cpp b/src/platformtheme/kdeplatformsystemtrayicon.cpp -index d3a1d4fe2f135ea241e97598a2589558656c1099..84dc6c06aa5d076990229edc00b500b26e41258b 100644 ---- a/src/platformtheme/kdeplatformsystemtrayicon.cpp -+++ b/src/platformtheme/kdeplatformsystemtrayicon.cpp -@@ -144,7 +144,6 @@ QMenu *SystemTrayMenu::menu() const - SystemTrayMenuItem::SystemTrayMenuItem() - : QPlatformMenuItem() - , m_tag(0) -- , m_menu(Q_NULLPTR) - , m_action(new QAction(this)) - { - connect(m_action, &QAction::triggered, this, &QPlatformMenuItem::activated); -@@ -187,7 +186,9 @@ void SystemTrayMenuItem::setIsSeparator(bool isSeparator) - - void SystemTrayMenuItem::setMenu(QPlatformMenu *menu) - { -- m_menu = menu; -+ if (SystemTrayMenu *ourMenu = qobject_cast(menu)) { -+ m_action->setMenu(ourMenu->menu()); -+ } - } - - void SystemTrayMenuItem::setRole(QPlatformMenuItem::MenuRole role) -diff --git a/src/platformtheme/kdeplatformsystemtrayicon.h b/src/platformtheme/kdeplatformsystemtrayicon.h -index 3c1bbf71bc1e730754504a123c7bdfd8e1f19a24..e9e872e39e253b7cfbab6cb58cfbc7272e5046f5 100644 ---- a/src/platformtheme/kdeplatformsystemtrayicon.h -+++ b/src/platformtheme/kdeplatformsystemtrayicon.h -@@ -82,7 +82,6 @@ public: - - private: - quintptr m_tag; -- QPlatformMenu *m_menu; - QAction *m_action; - }; - #endif --- -2.2.2 - diff --git a/frameworkintegration-5.6.0.tar.xz b/frameworkintegration-5.6.0.tar.xz deleted file mode 100644 index 592a10f..0000000 --- a/frameworkintegration-5.6.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:106b19dead862eb5e16da194f19ab30828dd6147bd97c583afe8dfae053c054e -size 1774020 diff --git a/frameworkintegration-5.7.0.tar.xz b/frameworkintegration-5.7.0.tar.xz new file mode 100644 index 0000000..060e33f --- /dev/null +++ b/frameworkintegration-5.7.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2fc33afc69c7dc8329b8f97340a6d052f035ad88593af2d6668da94fc001a34 +size 1775068 diff --git a/frameworkintegration.changes b/frameworkintegration.changes index aa48660..5267f74 100644 --- a/frameworkintegration.changes +++ b/frameworkintegration.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Sun Feb 8 18:15:14 UTC 2015 - hrvoje.senjan@gmail.com + +- Update to 5.7.0 + * Fix updating of single click setting at runtime + * Multiple fixes to the systemtray integration + * Only install color scheme on toplevel widgets + (to fix QQuickWidgets) + * Update XCursor settings on X11 platform + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.7.0.php +- Drop patches merged upstream: + 0005-Properly-check-for-systray-being-available.patch, + 0007-Use-activate-on-single-click-setting-from-QPlatformT.patch, + 0001-Update-XCursor-settings.patch, + 0004-Only-install-color-scheme-on-toplevel-widgets.patch and + 0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch + ------------------------------------------------------------------- Fri Jan 30 02:06:30 UTC 2015 - hrvoje.senjan@gmail.com diff --git a/frameworkintegration.spec b/frameworkintegration.spec index 949d73b..31eb620 100644 --- a/frameworkintegration.spec +++ b/frameworkintegration.spec @@ -18,11 +18,11 @@ %define lname libKF5Style5 Name: frameworkintegration -Version: 5.6.0 +Version: 5.7.0 Release: 0 %define kf5_version %{version} BuildRequires: cmake >= 2.8.12 -BuildRequires: extra-cmake-modules >= 1.6.0 +BuildRequires: extra-cmake-modules >= 1.7.0 BuildRequires: fdupes BuildRequires: kconfig-devel >= %{kf5_version} BuildRequires: kconfigwidgets-devel >= %{kf5_version} @@ -46,16 +46,6 @@ Group: System/GUI/KDE Url: http://www.kde.org Source: http://download.kde.org/stable/frameworks/5.6/%{name}-%{version}.tar.xz Source1: baselibs.conf -# PATCH-FIX-UPSTREAM 0001-Update-XCursor-settings.patch -Patch0: 0001-Update-XCursor-settings.patch -# PATCH-FIX-UPSTREAM 0004-Only-install-color-scheme-on-toplevel-widgets.patch -Patch1: 0004-Only-install-color-scheme-on-toplevel-widgets.patch -# PATCH-FIX-UPSTREAM 0005-Properly-check-for-systray-being-available.patch -Patch2: 0005-Properly-check-for-systray-being-available.patch -# PATCH-FIX-UPSTREAM 0007-Use-activate-on-single-click-setting-from-QPlatformT.patch -Patch3: 0007-Use-activate-on-single-click-setting-from-QPlatformT.patch -# PATCH-FIX-UPSTREAM 0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch -Patch4: 0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -109,11 +99,6 @@ Applications do not need to link to this directly. Development files %lang_package -n %lname %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 %build %cmake_kf5 -d build