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 <christo...@krop.fr>
+
+- 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 <m...@kde.org>
     SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
     SPDX-FileCopyrightText: 2023 ivan tkachenko <m...@ratijas.tk>
+    SPDX-FileCopyrightText: 2025 Nate Graham <n...@kde.org>
 
     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 <m...@kde.org>
     SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
     SPDX-FileCopyrightText: 2023 ivan tkachenko <m...@ratijas.tk>
+    SPDX-FileCopyrightText: 2025 Nate Graham <n...@kde.org>
 
     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 <m...@kde.org>
     SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
     SPDX-FileCopyrightText: 2023 ivan tkachenko <m...@ratijas.tk>
+    SPDX-FileCopyrightText: 2025 Nate Graham <n...@kde.org>
 
     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 <m...@kde.org>
     SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
+    SPDX-FileCopyrightText: 2025 Nate Graham <n...@kde.org>
 
     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 <n...@kde.org>
+
+    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
+                }
+            }
+        }
+    }
+}
+

Reply via email to