Hello community,
here is the log from the commit of package qqc2-desktop-style for
openSUSE:Factory checked in at 2018-04-20 17:28:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qqc2-desktop-style (Old)
and /work/SRC/openSUSE:Factory/.qqc2-desktop-style.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qqc2-desktop-style"
Fri Apr 20 17:28:29 2018 rev:8 rq:597241 version:5.45.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/qqc2-desktop-style/qqc2-desktop-style.changes
2018-03-22 12:08:17.682839850 +0100
+++
/work/SRC/openSUSE:Factory/.qqc2-desktop-style.new/qqc2-desktop-style.changes
2018-04-20 17:30:09.789030771 +0200
@@ -1,0 +2,24 @@
+Mon Apr 16 09:40:37 UTC 2018 - [email protected]
+
+- Add fix-build-with-gcc48.patch to make it compile with gcc 4.8 on
+ Leap 42.3
+
+-------------------------------------------------------------------
+Sat Apr 14 13:19:09 CEST 2018 - [email protected]
+
+- Update to 5.45.0
+ * New feature release
+ * For more details please see:
+ * https://www.kde.org/announcements/kde-frameworks-5.45.0.php
+- Changes since 5.44.0:
+ * fix rendering when disabled
+ * better layout
+ * experimental support for auto mnemonics
+ * We depend against 5.8.0
+ * Make sure we are taking into account hte size of the element when styling
+ * Fix font rendering for non-HiDPI and integer scale factors (kde#391780)
+ * e our way to handle shortcuts
+ * fix icons colors with colorsets
+ * fix icon colors for toolbuttons
+
+-------------------------------------------------------------------
Old:
----
qqc2-desktop-style-5.44.0.tar.xz
New:
----
fix-build-with-gcc48.patch
qqc2-desktop-style-5.45.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qqc2-desktop-style.spec ++++++
--- /var/tmp/diff_new_pack.L9tSxD/_old 2018-04-20 17:30:10.680998422 +0200
+++ /var/tmp/diff_new_pack.L9tSxD/_new 2018-04-20 17:30:10.684998277 +0200
@@ -16,15 +16,17 @@
#
-%define _tar_path 5.44
+%define _tar_path 5.45
Name: qqc2-desktop-style
-Version: 5.44.0
+Version: 5.45.0
Release: 0
Summary: A Qt Quick Controls 2 Style for Desktop UIs
License: GPL-2.0-or-later
Group: Development/Libraries/KDE
Url: http://www.kde.org/
Source:
https://download.kde.org/stable/frameworks/%{_tar_path}/qqc2-desktop-style-%{version}.tar.xz
+# PATCH-FIX-OPENSUSE
+Patch: fix-build-with-gcc48.patch
BuildRequires: extra-cmake-modules >= 0.0.8
BuildRequires: kf5-filesystem
# For dir ownership
@@ -65,6 +67,9 @@
%prep
%setup -q
+%if 0%{?suse_version} < 1500
+%patch -p1
+%endif
%build
%cmake_kf5 -d build
++++++ fix-build-with-gcc48.patch ++++++
>From 12755f964b745b60f7a503bcd8a1a532ae87418a Mon Sep 17 00:00:00 2001
From: Wolfgang Bauer <[email protected]>
Date: Mon, 16 Apr 2018 11:40:32 +0200
Subject: [PATCH] Fix build with gcc 4.8
See https://bugreports.qt.io/browse/QTBUG-48988
---
plugin/kquickstyleitem.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugin/kquickstyleitem.cpp b/plugin/kquickstyleitem.cpp
index 02fd313..ef56ed8 100644
--- a/plugin/kquickstyleitem.cpp
+++ b/plugin/kquickstyleitem.cpp
@@ -1564,7 +1564,7 @@ void KQuickStyleItem::setControl(QQuickItem *control)
m_window = m_control->window();
m_window->installEventFilter(this);
}
- connect(m_control, &QQuickItem::windowChanged, this,
+ connect(m_control.data(), &QQuickItem::windowChanged, this,
[this](QQuickWindow *window) {
if (m_window) {
m_window->removeEventFilter(this);
--
2.13.6
++++++ qqc2-desktop-style-5.44.0.tar.xz -> qqc2-desktop-style-5.45.0.tar.xz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-5.44.0/CMakeLists.txt
new/qqc2-desktop-style-5.45.0/CMakeLists.txt
--- old/qqc2-desktop-style-5.44.0/CMakeLists.txt 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/CMakeLists.txt 2018-04-07
09:49:08.000000000 +0200
@@ -1,11 +1,11 @@
cmake_minimum_required(VERSION 3.0)
-set(KF5_VERSION "5.44.0") # handled by release scripts
-set(KF5_DEP_VERSION "5.44.0") # handled by release scripts
+set(KF5_VERSION "5.45.0") # handled by release scripts
+set(KF5_DEP_VERSION "5.45.0") # handled by release scripts
project(qqc2-desktop-style VERSION ${KF5_VERSION})
-set(REQUIRED_QT_VERSION "5.7.0")
+set(REQUIRED_QT_VERSION 5.8.0)
################# Disallow in-source build #################
@@ -21,7 +21,7 @@
################# set KDE specific information #################
-find_package(ECM 5.44.0 REQUIRED NO_MODULE)
+find_package(ECM 5.45.0 REQUIRED NO_MODULE)
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is
checked
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}
${ECM_KDE_MODULE_DIR})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-5.44.0/org.kde.desktop/Button.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/Button.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/Button.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/Button.qml 2018-04-07
09:49:08.000000000 +0200
@@ -22,7 +22,7 @@
import QtQuick 2.6
import QtQuick.Templates @QQC2_VERSION@ as T
import org.kde.qqc2desktopstyle.private 1.0 as StylePrivate
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
T.Button {
id: controlRoot
@@ -35,6 +35,15 @@
hoverEnabled: true //Qt.styleHints.useHoverEffects TODO: how to make this
work in 5.7?
contentItem: Item {}
+ Kirigami.MnemonicData.enabled: controlRoot.enabled && controlRoot.visible
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.ActionElement
+ Kirigami.MnemonicData.label: controlRoot.text
+ Shortcut {
+ //in case of explicit & the button manages it by itself
+ enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
+ sequence: controlRoot.Kirigami.MnemonicData.sequence
+ onActivated: controlRoot.clicked()
+ }
background: StylePrivate.StyleItem {
id: styleitem
control: controlRoot
@@ -42,12 +51,12 @@
sunken: controlRoot.pressed || (controlRoot.checkable &&
controlRoot.checked)
raised: !(controlRoot.pressed || (controlRoot.checkable &&
controlRoot.checked))
hover: controlRoot.hovered
- text: controlRoot.text
+ text: controlRoot.Kirigami.MnemonicData.mnemonicLabel
hasFocus: controlRoot.activeFocus
activeControl: controlRoot.isDefault ? "default" : "f"
properties: {
"icon": controlRoot.icon ? (controlRoot.icon.name ||
controlRoot.icon.source) : "",
- "iconColor": controlRoot.icon ? controlRoot.icon.color :
"transparent"
+ "iconColor": controlRoot.icon && controlRoot.icon.color.a > 0?
controlRoot.icon.color : Kirigami.Theme.textColor
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/CheckBox.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/CheckBox.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/CheckBox.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/CheckBox.qml 2018-04-07
09:49:08.000000000 +0200
@@ -23,7 +23,7 @@
import QtQuick 2.6
import QtQuick.Templates @QQC2_VERSION@ as T
import QtQuick.Controls @QQC2_VERSION@
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
T.CheckBox {
id: controlRoot
@@ -50,11 +50,21 @@
control: controlRoot
}
+ Kirigami.MnemonicData.enabled: controlRoot.enabled && controlRoot.visible
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.ActionElement
+ Kirigami.MnemonicData.label: controlRoot.text
+ Shortcut {
+ //in case of explicit & the button manages it by itself
+ enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
+ sequence: controlRoot.Kirigami.MnemonicData.sequence
+ onActivated: controlRoot.toggle();
+ }
+
contentItem: Label {
leftPadding: controlRoot.indicator && !controlRoot.mirrored ?
controlRoot.indicator.width + controlRoot.spacing : 0
rightPadding: controlRoot.indicator && controlRoot.mirrored ?
controlRoot.indicator.width + controlRoot.spacing : 0
opacity: controlRoot.enabled ? 1 : 0.6
- text: controlRoot.text
+ text: controlRoot.Kirigami.MnemonicData.richTextLabel
font: controlRoot.font
elide: Text.ElideRight
visible: controlRoot.text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/ComboBox.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/ComboBox.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/ComboBox.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/ComboBox.qml 2018-04-07
09:49:08.000000000 +0200
@@ -76,7 +76,10 @@
readOnly: controlRoot.popup.visible
inputMethodHints: controlRoot.inputMethodHints
validator: controlRoot.validator
- renderType: Window.devicePixelRatio % 1 !== 0 ? Text.QtRendering :
Text.NativeRendering
+
+ // Work around Qt bug where NativeRendering breaks for non-integer
scale factors
+ // https://bugreports.qt.io/browse/QTBUG-67007
+ renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering :
Text.NativeRendering
color: controlRoot.enabled ? Kirigami.Theme.textColor :
Kirigami.Theme.disabledTextColor
selectionColor: Kirigami.Theme.highlightColor
selectedTextColor: Kirigami.Theme.highlightedTextColor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/DialogButtonBox.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/DialogButtonBox.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/DialogButtonBox.qml
2018-03-03 10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/DialogButtonBox.qml
2018-04-07 09:49:08.000000000 +0200
@@ -22,7 +22,7 @@
import QtQuick 2.6
import QtQuick.Templates @QQC2_VERSION@ as T
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
T.DialogButtonBox {
id: control
@@ -36,6 +36,7 @@
delegate: Button {
width: Math.min(implicitWidth, control.width / control.count -
control.padding - control.spacing * control.count)
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.DialogButton
}
contentItem: ListView {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-5.44.0/org.kde.desktop/Label.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/Label.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/Label.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/Label.qml 2018-04-07
09:49:08.000000000 +0200
@@ -32,8 +32,10 @@
verticalAlignment: lineCount > 1 ? Text.AlignTop : Text.AlignVCenter
activeFocusOnTab: false
- //Text.NativeRendering is broken on non integer pixel ratios
- renderType: Window.devicePixelRatio % 1 !== 0 ? Text.QtRendering :
Text.NativeRendering
+
+ // Work around Qt bug where NativeRendering breaks for non-integer scale
factors
+ // https://bugreports.qt.io/browse/QTBUG-67007
+ renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering :
Text.NativeRendering
font.capitalization: Kirigami.Theme.defaultFont.capitalization
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/MenuBarItem.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/MenuBarItem.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/MenuBarItem.qml
2018-03-03 10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/MenuBarItem.qml
2018-04-07 09:49:08.000000000 +0200
@@ -23,28 +23,40 @@
import QtQuick 2.6
import QtQuick.Layouts 1.2
import QtQuick.Templates @QQC2_VERSION@ as T
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
T.MenuBarItem {
id: controlRoot
- implicitWidth: Math.max(background ? background.implicitWidth : 0,
- contentItem.implicitWidth + leftPadding +
rightPadding)
- implicitHeight: Math.max(background ? background.implicitHeight : 0,
- contentItem.implicitHeight + topPadding +
bottomPadding)
+ implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding
+ implicitHeight: contentItem.implicitHeight + topPadding + bottomPadding
baselineOffset: contentItem.y + contentItem.baselineOffset
Layout.fillWidth: true
- padding: 3
+ leftPadding: Kirigami.Units.largeSpacing
+ rightPadding: Kirigami.Units.largeSpacing
+ topPadding: Kirigami.Units.smallSpacing
+ bottomPadding: Kirigami.Units.smallSpacing
hoverEnabled: true
+ Kirigami.MnemonicData.enabled: controlRoot.enabled && controlRoot.visible
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.MenuItem
+ Kirigami.MnemonicData.label: controlRoot.text
+
+ Shortcut {
+ //in case of explicit & the button manages it by itself
+ enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
+ sequence: controlRoot.Kirigami.MnemonicData.sequence
+ onActivated: controlRoot.clicked();
+ }
+
contentItem: Label {
- text: controlRoot.text
+ text: controlRoot.Kirigami.MnemonicData.richTextLabel
font: controlRoot.font
color: controlRoot.hovered && !controlRoot.pressed ?
Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor
elide: Text.ElideRight
visible: controlRoot.text
- horizontalAlignment: Text.AlignLeft
+ horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
@@ -55,7 +67,7 @@
Rectangle {
anchors.fill: parent
color: Kirigami.Theme.highlightColor
- opacity: controlRoot.hovered && !controlRoot.pressed ? 1 : 0
+ opacity: controlRoot.down || controlRoot.highlighted ? 0.7 : 0
Behavior on opacity { NumberAnimation { duration: 150 } }
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/MenuItem.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/MenuItem.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/MenuItem.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/MenuItem.qml 2018-04-07
09:49:08.000000000 +0200
@@ -23,25 +23,41 @@
import QtQuick 2.6
import QtQuick.Layouts 1.2
import QtQuick.Templates @QQC2_VERSION@ as T
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
T.MenuItem {
id: controlRoot
implicitWidth: Math.max(background ? background.implicitWidth : 0,
contentItem.implicitWidth + leftPadding +
rightPadding)
- implicitHeight: Math.max(background ? background.implicitHeight : 0,
+ implicitHeight: visible ? Math.max(background ? background.implicitHeight
: 0,
Math.max(contentItem.implicitHeight,
- indicator ? indicator.implicitHeight :
0) + topPadding + bottomPadding)
+ indicator ? indicator.implicitHeight :
0) + topPadding + bottomPadding) : 0
baselineOffset: contentItem.y + contentItem.baselineOffset
Layout.fillWidth: true
padding: 1
hoverEnabled: !Kirigami.Settings.isMobile
+ Kirigami.MnemonicData.enabled: controlRoot.enabled && controlRoot.visible
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.MenuItem
+ Kirigami.MnemonicData.label: controlRoot.text
+ Shortcut {
+ //in case of explicit & the button manages it by itself
+ enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
+ sequence: controlRoot.Kirigami.MnemonicData.sequence
+ onActivated: {
+ if (controlRoot.checkable) {
+ controlRoot.toggle();
+ } else {
+ controlRoot.clicked();
+ }
+ }
+ }
+
contentItem: RowLayout {
Item {
- Layout.preferredWidth: controlRoot.ListView.view.hasCheckables ||
controlRoot.checkable ? controlRoot.indicator.width : 0
+ Layout.preferredWidth: controlRoot.ListView.view.hasCheckables ||
controlRoot.checkable ? controlRoot.indicator.width :
Kirigami.Units.smallSpacing
}
Kirigami.Icon {
Layout.alignment: Qt.AlignVCenter
@@ -58,7 +74,7 @@
Layout.alignment: Qt.AlignVCenter
Layout.fillWidth: true
- text: controlRoot.text
+ text: controlRoot.Kirigami.MnemonicData.richTextLabel
font: controlRoot.font
color: (controlRoot.highlighted || controlRoot.hovered) ?
Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor
elide: Text.ElideRight
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/RadioButton.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/RadioButton.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/RadioButton.qml
2018-03-03 10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/RadioButton.qml
2018-04-07 09:49:08.000000000 +0200
@@ -23,7 +23,7 @@
import QtQuick 2.6
import QtQuick.Templates @QQC2_VERSION@ as T
import QtQuick.Controls @QQC2_VERSION@
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
T.RadioButton {
id: control
@@ -50,11 +50,20 @@
control: control
}
+ Kirigami.MnemonicData.enabled: control.enabled && control.visible
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.ActionElement
+ Kirigami.MnemonicData.label: control.text
+ Shortcut {
+ //in case of explicit & the button manages it by itself
+ enabled: !(RegExp(/\&[^\&]/).test(control.text))
+ sequence: control.Kirigami.MnemonicData.sequence
+ onActivated: control.checked = true
+ }
contentItem: Label {
leftPadding: control.indicator && !control.mirrored ?
control.indicator.width + control.spacing : 0
rightPadding: control.indicator && control.mirrored ?
control.indicator.width + control.spacing : 0
opacity: control.enabled ? 1 : 0.6
- text: control.text
+ text: control.Kirigami.MnemonicData.richTextLabel
font: control.font
color: Kirigami.Theme.textColor
elide: Text.ElideRight
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-5.44.0/org.kde.desktop/Switch.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/Switch.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/Switch.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/Switch.qml 2018-04-07
09:49:08.000000000 +0200
@@ -22,7 +22,7 @@
import QtQuick 2.6
import QtQuick.Templates @QQC2_VERSION@ as T
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
T.CheckBox {
id: control
@@ -48,11 +48,21 @@
control: control
}
+ Kirigami.MnemonicData.enabled: control.enabled && control.visible
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.ActionElement
+ Kirigami.MnemonicData.label: control.text
+ Shortcut {
+ //in case of explicit & the button manages it by itself
+ enabled: !(RegExp(/\&[^\&]/).test(control.text))
+ sequence: control.Kirigami.MnemonicData.sequence
+ onActivated: control.toggle();
+ }
+
contentItem: Label {
leftPadding: control.indicator && !control.mirrored ?
control.indicator.width + control.spacing : 0
rightPadding: control.indicator && control.mirrored ?
control.indicator.width + control.spacing : 0
opacity: control.enabled ? 1 : 0.6
- text: control.text
+ text: control.Kirigami.MnemonicData.richTextLabel
font: control.font
color: Kirigami.Theme.textColor
elide: Text.ElideRight
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/TabButton.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/TabButton.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/TabButton.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/TabButton.qml 2018-04-07
09:49:08.000000000 +0200
@@ -26,7 +26,7 @@
import QtQuick.Controls @QQC2_VERSION@
import org.kde.qqc2desktopstyle.private 1.0 as StylePrivate
import QtQuick.Templates @QQC2_VERSION@ as T
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
T.TabButton {
id: controlRoot
@@ -45,6 +45,15 @@
contentItem: Item {}
+ Kirigami.MnemonicData.enabled: controlRoot.enabled && controlRoot.visible
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.SecondaryControl
+ Kirigami.MnemonicData.label: controlRoot.text
+ Shortcut {
+ //in case of explicit & the button manages it by itself
+ enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
+ sequence: controlRoot.Kirigami.MnemonicData.sequence
+ onActivated: controlRoot.checked = true;
+ }
background: StylePrivate.StyleItem {
id: styleitem
@@ -78,12 +87,13 @@
"orientation": orientation,
"tabpos": tabpos,
"selectedpos": selectedpos,
- "icon": control.icon ? (control.icon.name || control.icon.source)
: ""
+ "icon": control.icon ? (control.icon.name || control.icon.source)
: "",
+ "iconColor": controlRoot.icon && controlRoot.icon.color.a > 0?
controlRoot.icon.color : Kirigami.Theme.textColor
}
enabled: controlRoot.enabled
selected: controlRoot.checked
- text: controlRoot.text
+ text: controlRoot.Kirigami.MnemonicData.mnemonicLabel
hover: controlRoot.hovered
hasFocus: controlRoot.activeFocus
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/TextArea.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/TextArea.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/TextArea.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/TextArea.qml 2018-04-07
09:49:08.000000000 +0200
@@ -45,8 +45,10 @@
selectedTextColor: Kirigami.Theme.highlightedTextColor
wrapMode: Text.WordWrap
verticalAlignment: TextEdit.AlignTop
- //Text.NativeRendering is broken on non integer pixel ratios
- renderType: Window.devicePixelRatio % 1 !== 0 ? Text.QtRendering :
Text.NativeRendering
+
+ // Work around Qt bug where NativeRendering breaks for non-integer scale
factors
+ // https://bugreports.qt.io/browse/QTBUG-67007
+ renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering :
Text.NativeRendering
selectByMouse: true
Label {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/TextField.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/TextField.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/TextField.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/TextField.qml 2018-04-07
09:49:08.000000000 +0200
@@ -45,8 +45,10 @@
selectionColor: Kirigami.Theme.highlightColor
selectedTextColor: Kirigami.Theme.highlightedTextColor
verticalAlignment: TextInput.AlignVCenter
- //Text.NativeRendering is broken on non integer pixel ratios
- renderType: Window.devicePixelRatio % 1 !== 0 ? Text.QtRendering :
Text.NativeRendering
+
+ // Work around Qt bug where NativeRendering breaks for non-integer scale
factors
+ // https://bugreports.qt.io/browse/QTBUG-67007
+ renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering :
Text.NativeRendering
selectByMouse: true
Controls.Label {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-5.44.0/org.kde.desktop/ToolButton.qml
new/qqc2-desktop-style-5.45.0/org.kde.desktop/ToolButton.qml
--- old/qqc2-desktop-style-5.44.0/org.kde.desktop/ToolButton.qml
2018-03-03 10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/org.kde.desktop/ToolButton.qml
2018-04-07 09:49:08.000000000 +0200
@@ -22,7 +22,7 @@
import QtQuick 2.6
import QtQuick.Templates @QQC2_VERSION@ as T
-import org.kde.kirigami 2.2 as Kirigami
+import org.kde.kirigami 2.3 as Kirigami
import org.kde.qqc2desktopstyle.private 1.0 as StylePrivate
T.ToolButton {
@@ -30,25 +30,36 @@
Kirigami.Theme.colorSet: flat ? Kirigami.Theme.Window :
Kirigami.Theme.Button
Kirigami.Theme.inherit: flat
- implicitWidth: background.implicitWidth
+ implicitWidth: text.length > 0 ? background.implicitWidth : implicitHeight
implicitHeight: background.implicitHeight
hoverEnabled: true //Qt.styleHints.useHoverEffects TODO: how to make this
work in 5.7?
flat: true
contentItem: Item {}
+ Kirigami.MnemonicData.enabled: controlRoot.enabled && controlRoot.visible
+ Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.SecondaryControl
+ Kirigami.MnemonicData.label: controlRoot.text
+ Shortcut {
+ //in case of explicit & the button manages it by itself
+ enabled: !(RegExp(/\&[^\&]/).test(controlRoot.text))
+ sequence: controlRoot.Kirigami.MnemonicData.sequence
+ onActivated: controlRoot.clicked()
+ }
background: StylePrivate.StyleItem {
id: styleitem
+ anchors.fill:parent
control: controlRoot
elementType: controlRoot.flat ? "toolbutton" : "button"
sunken: controlRoot.pressed || (controlRoot.checkable &&
controlRoot.checked)
raised: !(controlRoot.pressed || (controlRoot.checkable &&
controlRoot.checked))
hover: controlRoot.hovered
- text: controlRoot.text
+ text: controlRoot.Kirigami.MnemonicData.mnemonicLabel
hasFocus: false
activeControl: controlRoot.isDefault ? "default" : "f"
properties: {
- "icon": controlRoot.icon ? (controlRoot.icon.name ||
controlRoot.icon.source) : ""
+ "icon": controlRoot.icon ? (controlRoot.icon.name ||
controlRoot.icon.source) : "",
+ "iconColor": controlRoot.icon && controlRoot.icon.color.a > 0?
controlRoot.icon.color : Kirigami.Theme.textColor
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-5.44.0/plugin/kquickstyleitem.cpp
new/qqc2-desktop-style-5.45.0/plugin/kquickstyleitem.cpp
--- old/qqc2-desktop-style-5.44.0/plugin/kquickstyleitem.cpp 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/plugin/kquickstyleitem.cpp 2018-04-07
09:49:08.000000000 +0200
@@ -48,11 +48,7 @@
#include <qstyleoption.h>
#include <qapplication.h>
#include <qquickwindow.h>
-#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
#include <QtQuick/qsgninepatchnode.h>
-#else
-#include "qsgdefaultninepatchnode_p.h"
-#endif
#include <Kirigami2/PlatformTheme>
@@ -923,7 +919,8 @@
break;
default:
break;
- } return size;
+ }
+ return size.expandedTo(QSize(m_contentWidth, m_contentHeight));
}
qreal KQuickStyleItem::baselineOffset()
@@ -1555,10 +1552,29 @@
if (m_control) {
m_control->removeEventFilter(this);
+ disconnect(m_control, 0, this, 0);
}
m_control = control;
- m_control->installEventFilter(this);
+
+ if (m_control) {
+ m_control->installEventFilter(this);
+
+ if (m_control->window()) {
+ m_window = m_control->window();
+ m_window->installEventFilter(this);
+ }
+ connect(m_control, &QQuickItem::windowChanged, this,
+ [this](QQuickWindow *window) {
+ if (m_window) {
+ m_window->removeEventFilter(this);
+ }
+ m_window = window;
+ if (m_window) {
+ m_window->installEventFilter(this);
+ }
+ });
+ }
emit controlChanged();
}
@@ -1572,11 +1588,7 @@
QSGNinePatchNode *styleNode = static_cast<QSGNinePatchNode *>(node);
if (!styleNode)
-#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
styleNode = window()->createNinePatchNode();
-#else
- styleNode = new QSGDefaultNinePatchNode;
-#endif
#ifdef QSG_RUNTIME_DESCRIPTION
qsgnode_set_description(styleNode,
@@ -1616,9 +1628,19 @@
bool KQuickStyleItem::eventFilter(QObject *watched, QEvent *event)
{
- if (event->type() == QEvent::FocusIn || event->type() == QEvent::FocusOut)
{
- QFocusEvent *fe = static_cast<QFocusEvent *>(event);
- m_lastFocusReason = fe->reason();
+ if (watched == m_control) {
+ if (event->type() == QEvent::FocusIn || event->type() ==
QEvent::FocusOut) {
+ QFocusEvent *fe = static_cast<QFocusEvent *>(event);
+ m_lastFocusReason = fe->reason();
+ }
+ } else if (watched == m_window.data()) {
+ if (event->type() == QEvent::KeyPress || event->type() ==
QEvent::KeyRelease) {
+ QKeyEvent *ke = static_cast<QKeyEvent *>(event);
+ if (ke->key() == Qt::Key_Alt) {
+ updateItem();
+ }
+
+ }
}
return QQuickItem::eventFilter(watched, event);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-5.44.0/plugin/kquickstyleitem_p.h
new/qqc2-desktop-style-5.45.0/plugin/kquickstyleitem_p.h
--- old/qqc2-desktop-style-5.44.0/plugin/kquickstyleitem_p.h 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/plugin/kquickstyleitem_p.h 2018-04-07
09:49:08.000000000 +0200
@@ -277,6 +277,7 @@
Kirigami::PlatformTheme *m_theme = nullptr;
QStyleOption *m_styleoption;
QPointer<QQuickItem> m_control;
+ QPointer<QWindow> m_window;
Type m_itemType;
QString m_type;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-5.44.0/tests/buttonIcons.qml
new/qqc2-desktop-style-5.45.0/tests/buttonIcons.qml
--- old/qqc2-desktop-style-5.44.0/tests/buttonIcons.qml 2018-03-03
10:54:13.000000000 +0100
+++ new/qqc2-desktop-style-5.45.0/tests/buttonIcons.qml 2018-04-07
09:49:08.000000000 +0200
@@ -24,8 +24,11 @@
import org.kde.kirigami 2.2 as Kirigami
Kirigami.ApplicationWindow {
+ id: root
width: 600
height: 600
+ Kirigami.Theme.inherit: false
+ Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
header: Controls.MenuBar {
Controls.Menu {
title: "&File"
@@ -64,7 +67,7 @@
}
}
Controls.Menu {
- title: "&Edit"
+ title: "Edit"
Controls.MenuItem {
text: "Item1"
@@ -76,48 +79,72 @@
}
}
}
- ColumnLayout {
+ Rectangle {
+ id: background
anchors.centerIn: parent
- Controls.Button {
- id: coloredIconButton
- text: "text"
- icon.name: "go-previous"
- }
- RowLayout {
- Controls.Label {
- text: "RGB color for icon:"
- }
- Controls.SpinBox{
- id: red
- editable: true
- from: 0
- to: 255
- onValueModified: {
- coloredIconButton.icon.color = Qt.rgba(red.value/255,
green.value/255, blue.value/255, 1);
- }
- }
- Controls.SpinBox{
- id: green
- editable: true
- from: 0
- to: 255
- onValueModified: {
- coloredIconButton.icon.color = Qt.rgba(red.value/255,
green.value/255, blue.value/255, 1);
- }
- }
- Controls.SpinBox{
- id: blue
- editable: true
- from: 0
- to: 255
- onValueModified: {
- coloredIconButton.icon.color = Qt.rgba(red.value/255,
green.value/255, blue.value/255, 1);
- }
+ Kirigami.Theme.inherit: false
+ Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
+
+ width: childrenRect.width
+ height: childrenRect.height
+ color: Kirigami.Theme.backgroundColor
+
+ ColumnLayout {
+
+ Controls.ComboBox {
+ Kirigami.Theme.inherit: true
+ currentIndex: 1
+ model: ["View", "Window", "Button", "Selection", "Tooltip",
"Complementary"]
+ onCurrentTextChanged: background.Kirigami.Theme.colorSet =
currentText
+ }
+ Controls.Button {
+
+ Kirigami.Theme.inherit: true
+ text: "text"
+ icon.name: "go-previous"
+ }
+ Controls.Button {
+ id: coloredIconButton
+ text: "text"
+ icon.name: "go-previous"
+ }
+ RowLayout {
+ Controls.Label {
+ text: "RGB color for icon:"
+ }
+ Controls.SpinBox{
+ id: red
+ editable: true
+ from: 0
+ to: 255
+ onValueModified: {
+ coloredIconButton.icon.color = Qt.rgba(red.value/255,
green.value/255, blue.value/255, 1);
+ }
+ }
+ Controls.SpinBox{
+ id: green
+ Kirigami.Theme.inherit: true
+ editable: true
+ from: 0
+ to: 255
+ onValueModified: {
+ coloredIconButton.icon.color = Qt.rgba(red.value/255,
green.value/255, blue.value/255, 1);
+ }
+ }
+ Controls.SpinBox{
+ id: blue
+ editable: true
+ from: 0
+ to: 255
+ onValueModified: {
+ coloredIconButton.icon.color = Qt.rgba(red.value/255,
green.value/255, blue.value/255, 1);
+ }
+ }
+ }
+ Controls.ToolButton {
+ text: "text"
+ icon.name: "go-previous"
}
}
- Controls.ToolButton {
- text: "text"
- icon.name: "go-previous"
- }
}
}