Hello community,
here is the log from the commit of package frameworkintegration for
openSUSE:Factory checked in at 2015-01-30 15:08:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/frameworkintegration (Old)
and /work/SRC/openSUSE:Factory/.frameworkintegration.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "frameworkintegration"
Changes:
--------
---
/work/SRC/openSUSE:Factory/frameworkintegration/frameworkintegration.changes
2015-01-29 12:50:51.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.frameworkintegration.new/frameworkintegration.changes
2015-01-30 15:08:15.000000000 +0100
@@ -1,0 +2,13 @@
+Fri Jan 30 02:06:30 UTC 2015 - [email protected]
+
+- Added patches from upstream:
+ 0001-Update-XCursor-settings.patch,
+ 0005-Properly-check-for-systray-being-available.patch (kde#339707),
+ 0004-Only-install-color-scheme-on-toplevel-widgets.patch,
+ 0007-Use-activate-on-single-click-setting-from-QPlatformT.patch
+ (kde#343418) and
+ 0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch
+- Added pkgconfig(x11) and pkgconfig(xcursor) BuildRequires, needed
+ for 0001-Update-XCursor-settings.patch
+
+-------------------------------------------------------------------
New:
----
0001-Update-XCursor-settings.patch
0004-Only-install-color-scheme-on-toplevel-widgets.patch
0005-Properly-check-for-systray-being-available.patch
0007-Use-activate-on-single-click-setting-from-QPlatformT.patch
0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ frameworkintegration.spec ++++++
--- /var/tmp/diff_new_pack.Wl3lnj/_old 2015-01-30 15:08:16.000000000 +0100
+++ /var/tmp/diff_new_pack.Wl3lnj/_new 2015-01-30 15:08:16.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package frameworkintegration
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -36,7 +36,9 @@
BuildRequires: pkgconfig(Qt5DBus) >= 5.2.0
BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0
BuildRequires: pkgconfig(Qt5X11Extras) >= 5.2.0
+BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcb)
+BuildRequires: pkgconfig(xcursor)
Requires: kde-oxygen-fonts
Summary: Plugins responsible for better integration of Qt applications
in KDE Workspace
License: LGPL-2.1+
@@ -44,6 +46,16 @@
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
@@ -97,6 +109,11 @@
%lang_package -n %lname
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
%build
%cmake_kf5 -d build
++++++ 0001-Update-XCursor-settings.patch ++++++
>From 0e949d2b5b54ae7cc44ba21a43cecbde5ddaacc2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <[email protected]>
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 <QApplication>
#include <QGuiApplication>
#include <QDialogButtonBox>
+#include <QScreen>
#include <QDBusConnection>
#include <QDBusInterface>
@@ -42,6 +43,16 @@
#include <ksharedconfig.h>
#include <kcolorscheme.h>
+#ifndef UNIT_TEST
+#include <config-platformtheme.h>
+#else
+#define HAVE_X11 0
+#endif
+#if HAVE_X11
+#include <QX11Info>
+#include <X11/Xcursor/Xcursor.h>
+#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<QApplication
*>(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<QPlatformTheme::Palette, QPalette *> m_palettes;
--
2.2.2
++++++ 0004-Only-install-color-scheme-on-toplevel-widgets.patch ++++++
>From 52e25019011ef856809fd4317b197d5d37f56454 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= <[email protected]>
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
++++++ 0005-Properly-check-for-systray-being-available.patch ++++++
>From 072679bd7044021b08a3ef04909719b5b3479f58 Mon Sep 17 00:00:00 2001
From: Martin Klapetek <[email protected]>
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 <QMenu>
#include <QRect>
#include <QApplication>
-#include <QDBusConnection>
-#include <QDBusConnectionInterface>
-#include <QDBusReply>
+#include <QDBusInterface>
#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<bool> 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
++++++ 0007-Use-activate-on-single-click-setting-from-QPlatformT.patch ++++++
>From 2211793a69115cb5d0e61c40e9333d43a80fc0af Mon Sep 17 00:00:00 2001
From: David Edmundson <[email protected]>
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
++++++ 0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch ++++++
>From a09034c57ee00e7c16c2db4fd43f1993ee2e686d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= <[email protected]>
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<SystemTrayMenu *>(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
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]