Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kf6-qqc2-desktop-style for
openSUSE:Factory checked in at 2025-05-12 16:45:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-qqc2-desktop-style (Old)
and /work/SRC/openSUSE:Factory/.kf6-qqc2-desktop-style.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-qqc2-desktop-style"
Mon May 12 16:45:05 2025 rev:16 rq:1276411 version:6.14.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/kf6-qqc2-desktop-style/kf6-qqc2-desktop-style.changes
2025-04-15 16:47:14.222448127 +0200
+++
/work/SRC/openSUSE:Factory/.kf6-qqc2-desktop-style.new.30101/kf6-qqc2-desktop-style.changes
2025-05-12 16:48:05.730697727 +0200
@@ -1,0 +2,13 @@
+Sun May 4 19:05:34 UTC 2025 - Christophe Marin <[email protected]>
+
+- Update to 6.14.0
+ * New feature release
+ * For more details please see:
+ * https://kde.org/announcements/frameworks/6/6.14.0
+- Changes since 6.13.0:
+ * Update dependency version to 6.14.0
+ * Get platform fonts with Qt APIs instead of DBus and KConfig
+ * Support display property for delegates
+ * Update version to 6.14.0
+
+-------------------------------------------------------------------
Old:
----
qqc2-desktop-style-6.13.0.tar.xz
qqc2-desktop-style-6.13.0.tar.xz.sig
New:
----
qqc2-desktop-style-6.14.0.tar.xz
qqc2-desktop-style-6.14.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kf6-qqc2-desktop-style.spec ++++++
--- /var/tmp/diff_new_pack.MpsD3d/_old 2025-05-12 16:48:06.254719699 +0200
+++ /var/tmp/diff_new_pack.MpsD3d/_new 2025-05-12 16:48:06.258719867 +0200
@@ -19,13 +19,13 @@
%define qt6_version 6.7.0
%define rname qqc2-desktop-style
-# Full KF6 version (e.g. 6.13.0)
+# Full KF6 version (e.g. 6.14.0)
%{!?_kf6_version: %global _kf6_version %{version}}
# Last major and minor KF6 version (e.g. 6.0)
%{!?_kf6_bugfix_version: %define _kf6_bugfix_version %(echo %{_kf6_version} |
awk -F. '{print $1"."$2}')}
%bcond_without released
Name: kf6-qqc2-desktop-style
-Version: 6.13.0
+Version: 6.14.0
Release: 0
Summary: A Qt Quick Controls 2 Style for Desktop UIs
License: GPL-2.0-or-later
++++++ qqc2-desktop-style-6.13.0.tar.xz -> qqc2-desktop-style-6.14.0.tar.xz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-6.13.0/CMakeLists.txt
new/qqc2-desktop-style-6.14.0/CMakeLists.txt
--- old/qqc2-desktop-style-6.13.0/CMakeLists.txt 2025-04-04
16:04:17.000000000 +0200
+++ new/qqc2-desktop-style-6.14.0/CMakeLists.txt 2025-05-02
16:26:46.000000000 +0200
@@ -1,13 +1,13 @@
cmake_minimum_required(VERSION 3.16)
-set(KF_VERSION "6.13.0") # handled by release scripts
-set(KF_DEP_VERSION "6.13.0") # handled by release scripts
+set(KF_VERSION "6.14.0") # handled by release scripts
+set(KF_DEP_VERSION "6.14.0") # handled by release scripts
project(qqc2-desktop-style VERSION ${KF_VERSION})
-set(REQUIRED_QT_VERSION 6.6.0)
+set(REQUIRED_QT_VERSION 6.7.0)
-find_package(ECM 6.13.0 REQUIRED NO_MODULE)
+find_package(ECM 6.14.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})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-6.13.0/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
new/qqc2-desktop-style-6.14.0/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
---
old/qqc2-desktop-style-6.13.0/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
2025-04-04 16:04:17.000000000 +0200
+++
new/qqc2-desktop-style-6.14.0/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
2025-05-02 16:26:46.000000000 +0200
@@ -10,6 +10,7 @@
#include <QDBusConnection>
#endif
+#include <QFontDatabase>
#include <QGuiApplication>
#include <QPalette>
#include <QQuickRenderControl>
@@ -59,25 +60,6 @@
} else {
QQuickWindow::setTextRenderType(QQuickWindow::QtTextRendering);
}
- smallFont = loadSmallFont();
- }
-
- QFont loadSmallFont() const
- {
- KSharedConfigPtr ptr = KSharedConfig::openConfig();
- KConfigGroup general(ptr->group(QStringLiteral("General")));
-
- return general.readEntry("smallestReadableFont", []() {
- auto smallFont = qApp->font();
-#ifndef Q_OS_WIN
- if (smallFont.pixelSize() != -1) {
- smallFont.setPixelSize(smallFont.pixelSize() - 2);
- } else {
- smallFont.setPointSize(smallFont.pointSize() - 2);
- }
-#endif
- return smallFont;
- }());
}
void refresh()
@@ -164,16 +146,15 @@
Q_SLOT void notifyWatchersConfigurationChange()
{
- smallFont = loadSmallFont();
for (auto watcher : std::as_const(watchers)) {
- watcher->setSmallFont(smallFont);
watcher->setDefaultFont(qApp->font());
+
watcher->setSmallFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont));
+
watcher->setFixedWidthFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
}
}
KColorScheme buttonScheme;
KColorScheme viewScheme;
- QFont smallFont;
QList<PlasmaDesktopTheme *> watchers;
@@ -214,7 +195,8 @@
s_style->watchers.append(this);
setDefaultFont(qGuiApp->font());
- setSmallFont(s_style->smallFont);
+
setSmallFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont));
+ setFixedWidthFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
syncWindow();
if (!m_window) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-6.13.0/org.kde.desktop/CheckDelegate.qml
new/qqc2-desktop-style-6.14.0/org.kde.desktop/CheckDelegate.qml
--- old/qqc2-desktop-style-6.13.0/org.kde.desktop/CheckDelegate.qml
2025-04-04 16:04:17.000000000 +0200
+++ new/qqc2-desktop-style-6.14.0/org.kde.desktop/CheckDelegate.qml
2025-05-02 16:26:46.000000000 +0200
@@ -2,6 +2,7 @@
SPDX-FileCopyrightText: 2017 Marco Martin <[email protected]>
SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
SPDX-FileCopyrightText: 2023 ivan tkachenko <[email protected]>
+ SPDX-FileCopyrightText: 2025 Nate Graham <[email protected]>
SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later
*/
@@ -27,55 +28,64 @@
spacing: Kirigami.Units.smallSpacing
padding: Kirigami.Settings.tabletMode ? Kirigami.Units.largeSpacing :
Kirigami.Units.mediumSpacing
horizontalPadding: Kirigami.Units.smallSpacing * 2
- leftPadding: !mirrored ? horizontalPadding + implicitIndicatorWidth +
spacing : horizontalPadding
- rightPadding: mirrored ? horizontalPadding + implicitIndicatorWidth +
spacing : horizontalPadding
+ leftPadding: !mirrored ? horizontalPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : implicitIndicatorWidth) + spacing :
horizontalPadding
+ rightPadding: mirrored ? horizontalPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : implicitIndicatorWidth) + spacing :
horizontalPadding
- icon.width: Kirigami.Units.iconSizes.smallMedium
- icon.height: Kirigami.Units.iconSizes.smallMedium
+ readonly property int __iconSize: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Kirigami.Units.iconSizes.medium :
Kirigami.Units.iconSizes.smallMedium
+ icon.width: __iconSize
+ icon.height:__iconSize
- T.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) &&
(contentItem.truncated ?? false)
+ T.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) &&
(textLabel.truncated ?? false)
T.ToolTip.text: text
T.ToolTip.delay: Kirigami.Units.toolTipDelay
leftInset: TableView.view ? 0 : horizontalPadding / 2
rightInset: TableView.view ? 0 : horizontalPadding / 2
+ // We want total spacing between consecutive list items to be
+ // verticalPadding. So use half that as top/bottom margin, separately
+ // ceiling/flooring them so that the total spacing is preserved.
topInset: TableView.view ? 0 : Math.ceil(verticalPadding / 2)
bottomInset: TableView.view ? 0 : Math.ceil(verticalPadding / 2)
- contentItem: RowLayout {
+ contentItem: GridLayout {
LayoutMirroring.enabled: controlRoot.mirrored
- spacing: controlRoot.spacing
+ rows: controlRoot.display === T.AbstractButton.TextUnderIcon ? 2 : 1
+ columns: controlRoot.display === T.AbstractButton.TextBesideIcon ? 2 :
1
+ rowSpacing: controlRoot.spacing
+ columnSpacing: controlRoot.spacing
property alias truncated: textLabel.truncated
Kirigami.Icon {
- Layout.alignment: Qt.AlignVCenter
- visible: controlRoot.icon.name !== "" ||
controlRoot.icon.source.toString() !== ""
- source: controlRoot.icon.name !== "" ? controlRoot.icon.name :
controlRoot.icon.source
Layout.preferredHeight: controlRoot.icon.height
Layout.preferredWidth: controlRoot.icon.width
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+ visible: controlRoot.display !== T.AbstractButton.TextOnly
+ && (controlRoot.icon.name !== "" ||
controlRoot.icon.source.toString() !== "")
+ source: controlRoot.icon.name !== "" ? controlRoot.icon.name :
controlRoot.icon.source
}
Label {
id: textLabel
- Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
+ Layout.fillHeight: true
text: controlRoot.text
font: controlRoot.font
color: (((controlRoot.pressed && !controlRoot.checked) ||
controlRoot.highlighted) && !controlRoot.sectionDelegate) ?
Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor
elide: Text.ElideRight
- visible: controlRoot.text
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
+ visible: controlRoot.display !== T.AbstractButton.IconOnly &&
controlRoot.text
+ wrapMode: controlRoot.display === T.AbstractButton.TextUnderIcon ?
Text.Wrap : Text.NoWrap
+ horizontalAlignment: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Text.AlignHCenter : Text.AlignLeft
+ verticalAlignment: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Text.AlignTop : Text.AlignVCenter
}
}
indicator: Private.CheckIndicator {
elementType: "checkbox"
x: !controlRoot.mirrored ? controlRoot.horizontalPadding :
controlRoot.width - width - controlRoot.horizontalPadding
- y: controlRoot.topPadding + (controlRoot.availableHeight - height) / 2
+ y: controlRoot.topPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : ((controlRoot.availableHeight - height) /
2) )
control: controlRoot
drawIcon: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-6.13.0/org.kde.desktop/ItemDelegate.qml
new/qqc2-desktop-style-6.14.0/org.kde.desktop/ItemDelegate.qml
--- old/qqc2-desktop-style-6.13.0/org.kde.desktop/ItemDelegate.qml
2025-04-04 16:04:17.000000000 +0200
+++ new/qqc2-desktop-style-6.14.0/org.kde.desktop/ItemDelegate.qml
2025-05-02 16:26:46.000000000 +0200
@@ -2,10 +2,12 @@
SPDX-FileCopyrightText: 2017 Marco Martin <[email protected]>
SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
SPDX-FileCopyrightText: 2023 ivan tkachenko <[email protected]>
+ SPDX-FileCopyrightText: 2025 Nate Graham <[email protected]>
SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later
*/
+
import QtQuick
import QtQuick.Layouts
import QtQuick.Templates as T
@@ -26,13 +28,14 @@
spacing: Kirigami.Units.smallSpacing
padding: Kirigami.Settings.tabletMode ? Kirigami.Units.largeSpacing :
Kirigami.Units.mediumSpacing
horizontalPadding: Kirigami.Units.smallSpacing * 2
- leftPadding: !mirrored ? horizontalPadding + (indicator ?
implicitIndicatorWidth + spacing : 0) : horizontalPadding
- rightPadding: mirrored ? horizontalPadding + (indicator ?
implicitIndicatorWidth + spacing : 0) : horizontalPadding
+ leftPadding: !mirrored ? horizontalPadding + (indicator ?
(controlRoot.display === T.AbstractButton.TextUnderIcon ? 0 :
implicitIndicatorWidth) + spacing : 0) : horizontalPadding
+ rightPadding: mirrored ? horizontalPadding + (indicator ?
(controlRoot.display === T.AbstractButton.TextUnderIcon ? 0 :
implicitIndicatorWidth) + spacing : 0) : horizontalPadding
- icon.width: Kirigami.Units.iconSizes.smallMedium
- icon.height: Kirigami.Units.iconSizes.smallMedium
+ readonly property int __iconSize: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Kirigami.Units.iconSizes.medium :
Kirigami.Units.iconSizes.smallMedium
+ icon.width: __iconSize
+ icon.height:__iconSize
- T.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) &&
(contentItem.truncated ?? false)
+ T.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) &&
(textLabel.truncated ?? false)
T.ToolTip.text: text
T.ToolTip.delay: Kirigami.Units.toolTipDelay
@@ -44,26 +47,30 @@
topInset: TableView.view ? 0 : Math.ceil(verticalPadding / 2)
bottomInset: TableView.view ? 0 : Math.ceil(verticalPadding / 2)
- contentItem: RowLayout {
+ contentItem: GridLayout {
LayoutMirroring.enabled: controlRoot.mirrored
- spacing: controlRoot.spacing
+ rows: controlRoot.display === T.AbstractButton.TextUnderIcon ? 2 : 1
+ columns: controlRoot.display === T.AbstractButton.TextBesideIcon ? 2 :
1
+ rowSpacing: controlRoot.spacing
+ columnSpacing: controlRoot.spacing
property alias truncated: textLabel.truncated
Kirigami.Icon {
selected: controlRoot.highlighted || controlRoot.down
- Layout.alignment: Qt.AlignVCenter
- visible: controlRoot.icon.name.length > 0 ||
controlRoot.icon.source.toString().length > 0
- source: controlRoot.icon.name.length > 0 ? controlRoot.icon.name :
controlRoot.icon.source
Layout.preferredHeight: controlRoot.icon.height
Layout.preferredWidth: controlRoot.icon.width
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+ visible: controlRoot.display !== T.AbstractButton.TextOnly
+ && (controlRoot.icon.name.length > 0 ||
controlRoot.icon.source.toString().length > 0)
+ source: controlRoot.icon.name.length > 0 ? controlRoot.icon.name :
controlRoot.icon.source
}
Label {
id: textLabel
- Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
+ Layout.fillHeight: true
text: controlRoot.text
font: controlRoot.font
@@ -72,9 +79,10 @@
: (controlRoot.enabled ? Kirigami.Theme.textColor :
Kirigami.Theme.disabledTextColor)
elide: Text.ElideRight
- visible: controlRoot.text
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
+ visible: controlRoot.display !== T.AbstractButton.IconOnly &&
controlRoot.text
+ wrapMode: controlRoot.display === T.AbstractButton.TextUnderIcon ?
Text.Wrap : Text.NoWrap
+ horizontalAlignment: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Text.AlignHCenter : Text.AlignLeft
+ verticalAlignment: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Text.AlignTop : Text.AlignVCenter
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-6.13.0/org.kde.desktop/RadioDelegate.qml
new/qqc2-desktop-style-6.14.0/org.kde.desktop/RadioDelegate.qml
--- old/qqc2-desktop-style-6.13.0/org.kde.desktop/RadioDelegate.qml
2025-04-04 16:04:17.000000000 +0200
+++ new/qqc2-desktop-style-6.14.0/org.kde.desktop/RadioDelegate.qml
2025-05-02 16:26:46.000000000 +0200
@@ -2,6 +2,7 @@
SPDX-FileCopyrightText: 2017 Marco Martin <[email protected]>
SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
SPDX-FileCopyrightText: 2023 ivan tkachenko <[email protected]>
+ SPDX-FileCopyrightText: 2025 Nate Graham <[email protected]>
SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later
*/
@@ -27,55 +28,65 @@
spacing: Kirigami.Units.smallSpacing
padding: Kirigami.Settings.tabletMode ? Kirigami.Units.largeSpacing :
Kirigami.Units.mediumSpacing
horizontalPadding: Kirigami.Units.smallSpacing * 2
- leftPadding: !mirrored ? horizontalPadding + implicitIndicatorWidth +
spacing : horizontalPadding
- rightPadding: mirrored ? horizontalPadding + implicitIndicatorWidth +
spacing : horizontalPadding
+ leftPadding: !mirrored ? horizontalPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : implicitIndicatorWidth) + spacing :
horizontalPadding
+ rightPadding: mirrored ? horizontalPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : implicitIndicatorWidth) + spacing :
horizontalPadding
- icon.width: Kirigami.Units.iconSizes.smallMedium
- icon.height: Kirigami.Units.iconSizes.smallMedium
+ readonly property int __iconSize: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Kirigami.Units.iconSizes.medium :
Kirigami.Units.iconSizes.smallMedium
+ icon.width: __iconSize
+ icon.height:__iconSize
- T.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) &&
(contentItem.truncated ?? false)
+ T.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) &&
(textLabel.truncated ?? false)
T.ToolTip.text: text
T.ToolTip.delay: Kirigami.Units.toolTipDelay
leftInset: TableView.view ? 0 : horizontalPadding / 2
rightInset: TableView.view ? 0 : horizontalPadding / 2
+ // We want total spacing between consecutive list items to be
+ // verticalPadding. So use half that as top/bottom margin, separately
+ // ceiling/flooring them so that the total spacing is preserved.
topInset: TableView.view ? 0 : Math.ceil(verticalPadding / 2)
bottomInset: TableView.view ? 0 : Math.ceil(verticalPadding / 2)
- contentItem: RowLayout {
+ contentItem: GridLayout {
LayoutMirroring.enabled: controlRoot.mirrored
- spacing: controlRoot.spacing
+ rows: controlRoot.display === T.AbstractButton.TextUnderIcon ? 2 : 1
+ columns: controlRoot.display === T.AbstractButton.TextBesideIcon ? 2 :
1
+ rowSpacing: controlRoot.spacing
+ columnSpacing: controlRoot.spacing
property alias truncated: textLabel.truncated
Kirigami.Icon {
- Layout.alignment: Qt.AlignVCenter
- visible: controlRoot.icon.name !== "" ||
controlRoot.icon.source.toString() !== ""
- source: controlRoot.icon.name !== "" ? controlRoot.icon.name :
controlRoot.icon.source
Layout.preferredHeight: controlRoot.icon.height
Layout.preferredWidth: controlRoot.icon.width
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+ visible: controlRoot.display !== T.AbstractButton.TextOnly
+ && (controlRoot.icon.name !== "" ||
controlRoot.icon.source.toString() !== "")
+ source: controlRoot.icon.name !== "" ? controlRoot.icon.name :
controlRoot.icon.source
}
Label {
id: textLabel
- Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
+ Layout.fillHeight: true
text: controlRoot.text
font: controlRoot.font
color: (controlRoot.pressed && !controlRoot.checked &&
!controlRoot.sectionDelegate) ? Kirigami.Theme.highlightedTextColor :
Kirigami.Theme.textColor
elide: Text.ElideRight
- visible: controlRoot.text
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
+ visible: controlRoot.display !== T.AbstractButton.IconOnly &&
controlRoot.text
+ wrapMode: controlRoot.display === T.AbstractButton.TextUnderIcon ?
Text.Wrap : Text.NoWrap
+ horizontalAlignment: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Text.AlignHCenter : Text.AlignLeft
+ verticalAlignment: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Text.AlignTop : Text.AlignVCenter
}
}
indicator: Private.CheckIndicator {
elementType: "radiobutton"
x: !controlRoot.mirrored ? controlRoot.horizontalPadding :
controlRoot.width - width - controlRoot.horizontalPadding
- y: controlRoot.topPadding + (controlRoot.availableHeight - height) / 2
+ y: controlRoot.topPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : ((controlRoot.availableHeight - height) /
2) )
+
control: controlRoot
drawIcon: false
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qqc2-desktop-style-6.13.0/org.kde.desktop/SwitchDelegate.qml
new/qqc2-desktop-style-6.14.0/org.kde.desktop/SwitchDelegate.qml
--- old/qqc2-desktop-style-6.13.0/org.kde.desktop/SwitchDelegate.qml
2025-04-04 16:04:17.000000000 +0200
+++ new/qqc2-desktop-style-6.14.0/org.kde.desktop/SwitchDelegate.qml
2025-05-02 16:26:46.000000000 +0200
@@ -1,6 +1,7 @@
/*
SPDX-FileCopyrightText: 2017 Marco Martin <[email protected]>
SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
+ SPDX-FileCopyrightText: 2025 Nate Graham <[email protected]>
SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later
*/
@@ -26,33 +27,41 @@
spacing: Kirigami.Units.smallSpacing
padding: Kirigami.Settings.tabletMode ? Kirigami.Units.largeSpacing :
Kirigami.Units.mediumSpacing
horizontalPadding: Kirigami.Units.smallSpacing * 2
- leftPadding: !mirrored ? horizontalPadding + implicitIndicatorWidth +
spacing : horizontalPadding
- rightPadding: mirrored ? horizontalPadding + implicitIndicatorWidth +
spacing : horizontalPadding
+ leftPadding: !mirrored ? horizontalPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : implicitIndicatorWidth) + spacing :
horizontalPadding
+ rightPadding: mirrored ? horizontalPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : implicitIndicatorWidth) + spacing :
horizontalPadding
- icon.width: Kirigami.Units.iconSizes.smallMedium
- icon.height: Kirigami.Units.iconSizes.smallMedium
+ readonly property int __iconSize: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Kirigami.Units.iconSizes.medium :
Kirigami.Units.iconSizes.smallMedium
+ icon.width: __iconSize
+ icon.height:__iconSize
- T.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) &&
(contentItem.truncated ?? false)
+ T.ToolTip.visible: (Kirigami.Settings.tabletMode ? down : hovered) &&
(textLabel.truncated ?? false)
T.ToolTip.text: text
T.ToolTip.delay: Kirigami.Units.toolTipDelay
leftInset: TableView.view ? 0 : horizontalPadding / 2
rightInset: TableView.view ? 0 : horizontalPadding / 2
+ // We want total spacing between consecutive list items to be
+ // verticalPadding. So use half that as top/bottom margin, separately
+ // ceiling/flooring them so that the total spacing is preserved.
topInset: TableView.view ? 0 : Math.ceil(verticalPadding / 2)
bottomInset: TableView.view ? 0 : Math.ceil(verticalPadding / 2)
- contentItem: RowLayout {
+ contentItem: GridLayout {
LayoutMirroring.enabled: controlRoot.mirrored
- spacing: controlRoot.spacing
+ rows: controlRoot.display === T.AbstractButton.TextUnderIcon ? 2 : 1
+ columns: controlRoot.display === T.AbstractButton.TextBesideIcon ? 2 :
1
+ rowSpacing: controlRoot.spacing
+ columnSpacing: controlRoot.spacing
property alias truncated: textLabel.truncated
Kirigami.Icon {
- Layout.alignment: Qt.AlignVCenter
- visible: controlRoot.icon.name !== "" ||
controlRoot.icon.source.toString() !== ""
- source: controlRoot.icon.name !== "" ? controlRoot.icon.name :
controlRoot.icon.source
Layout.preferredHeight: controlRoot.icon.height
Layout.preferredWidth: controlRoot.icon.width
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+ visible: controlRoot.display !== T.AbstractButton.TextOnly
+ && (controlRoot.icon.name !== "" ||
controlRoot.icon.source.toString() !== "")
+ source: controlRoot.icon.name !== "" ? controlRoot.icon.name :
controlRoot.icon.source
}
Label {
@@ -65,15 +74,17 @@
font: controlRoot.font
color: (controlRoot.pressed && !controlRoot.checked &&
!controlRoot.sectionDelegate) ? Kirigami.Theme.highlightedTextColor :
Kirigami.Theme.textColor
elide: Text.ElideRight
- visible: controlRoot.text
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
+ visible: controlRoot.display !== T.AbstractButton.IconOnly &&
controlRoot.text
+ wrapMode: controlRoot.display === T.AbstractButton.TextUnderIcon ?
Text.Wrap : Text.NoWrap
+ horizontalAlignment: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Text.AlignHCenter : Text.AlignLeft
+ verticalAlignment: controlRoot.display ===
T.AbstractButton.TextUnderIcon ? Text.AlignTop : Text.AlignVCenter
}
}
indicator: Private.SwitchIndicator {
x: !controlRoot.mirrored ? controlRoot.horizontalPadding :
controlRoot.width - width - controlRoot.horizontalPadding
- y: controlRoot.topPadding + (controlRoot.availableHeight - height) / 2
+ y: controlRoot.topPadding + (controlRoot.display ===
T.AbstractButton.TextUnderIcon ? 0 : ((controlRoot.availableHeight - height) /
2) )
+
control: controlRoot
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qqc2-desktop-style-6.13.0/tests/testDelegates.qml
new/qqc2-desktop-style-6.14.0/tests/testDelegates.qml
--- old/qqc2-desktop-style-6.13.0/tests/testDelegates.qml 1970-01-01
01:00:00.000000000 +0100
+++ new/qqc2-desktop-style-6.14.0/tests/testDelegates.qml 2025-05-02
16:26:46.000000000 +0200
@@ -0,0 +1,156 @@
+/*
+ SPDX-FileCopyrightText: 2025 Nate Graham <[email protected]>
+
+ SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later
+*/
+
+import QtQuick
+import QtQuick.Layouts
+import QtQuick.Templates as T
+import QtQuick.Controls as QQC
+
+QQC.ApplicationWindow {
+ id: root
+
+ readonly property int spacing: 18
+
+ visible: true
+
+ width: 800
+ height: 600
+
+ // List delegates
+ GridLayout {
+ anchors.fill: parent
+ anchors.margins: root.spacing
+
+ columns: 4
+ rowSpacing: root.spacing
+ columnSpacing: root.spacing
+
+
+ // ItemDelegates
+ Repeater {
+ model: [
+ T.AbstractButton.TextBesideIcon,
+ T.AbstractButton.TextUnderIcon,
+ T.AbstractButton.TextOnly,
+ T.AbstractButton.IconOnly
+ ]
+ delegate: QQC.ScrollView {
+ id: itemDelegateScrollview
+ property int display: modelData
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ contentItem: ListView {
+ clip: true
+ model: 4
+ delegate: QQC.ItemDelegate {
+ display: itemDelegateScrollview.display
+ width: ListView.view.width
+ icon.name: "edit-bomb"
+ text: "Text label"
+ }
+ }
+ Component.onCompleted: {
+ background.visible = true
+ }
+ }
+ }
+
+
+ // CheckDelegates
+ Repeater {
+ model: [
+ T.AbstractButton.TextBesideIcon,
+ T.AbstractButton.TextUnderIcon,
+ T.AbstractButton.TextOnly,
+ T.AbstractButton.IconOnly
+ ]
+ delegate: QQC.ScrollView {
+ id: checkDelegateScrollview
+ property int display: modelData
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ contentItem: ListView {
+ clip: true
+ model: 4
+ delegate: QQC.CheckDelegate {
+ display: checkDelegateScrollview.display
+ width: ListView.view.width
+ icon.name: "edit-bomb"
+ text: "Text label"
+ }
+ }
+ Component.onCompleted: {
+ background.visible = true
+ }
+ }
+ }
+
+
+ // RadioDelegates
+ Repeater {
+ model: [
+ T.AbstractButton.TextBesideIcon,
+ T.AbstractButton.TextUnderIcon,
+ T.AbstractButton.TextOnly,
+ T.AbstractButton.IconOnly
+ ]
+ delegate: QQC.ScrollView {
+ id: radioDelegateScrollview
+ property int display: modelData
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ contentItem: ListView {
+ clip: true
+ model: 4
+ delegate: QQC.RadioDelegate {
+ display: radioDelegateScrollview.display
+ width: ListView.view.width
+ icon.name: "edit-bomb"
+ text: "Text label"
+ }
+ }
+ Component.onCompleted: {
+ background.visible = true
+ }
+ }
+ }
+
+
+ // SwitchDelegates
+ Repeater {
+ model: [
+ T.AbstractButton.TextBesideIcon,
+ T.AbstractButton.TextUnderIcon,
+ T.AbstractButton.TextOnly,
+ T.AbstractButton.IconOnly
+ ]
+ delegate: QQC.ScrollView {
+ id: switchDelegateScrollview
+ property int display: modelData
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ contentItem: ListView {
+ clip: true
+ model: 4
+ delegate: QQC.SwitchDelegate {
+ display: switchDelegateScrollview.display
+ width: ListView.view.width
+ icon.name: "edit-bomb"
+ text: "Text label"
+ }
+ }
+ Component.onCompleted: {
+ background.visible = true
+ }
+ }
+ }
+ }
+}
+