Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qqc2-desktop-style for openSUSE:Factory checked in at 2022-07-11 19:09:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qqc2-desktop-style (Old) and /work/SRC/openSUSE:Factory/.qqc2-desktop-style.new.1523 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qqc2-desktop-style" Mon Jul 11 19:09:16 2022 rev:60 rq:988181 version:5.96.0 Changes: -------- --- /work/SRC/openSUSE:Factory/qqc2-desktop-style/qqc2-desktop-style.changes 2022-06-17 21:21:55.358754167 +0200 +++ /work/SRC/openSUSE:Factory/.qqc2-desktop-style.new.1523/qqc2-desktop-style.changes 2022-07-11 19:10:48.819732042 +0200 @@ -1,0 +2,13 @@ +Sun Jul 3 11:56:18 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 5.96.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/5/5.96.0 +- Changes since 5.95.0: + * Require passing tests for the CI to pass + * iterate only over visible children in menu + * Avoid a crash with kscreenlocker_greet or any other QGuiApplication + * Make StackView obey the global animation speed setting (kde#395324) + +------------------------------------------------------------------- Old: ---- qqc2-desktop-style-5.95.0.tar.xz qqc2-desktop-style-5.95.0.tar.xz.sig New: ---- qqc2-desktop-style-5.96.0.tar.xz qqc2-desktop-style-5.96.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qqc2-desktop-style.spec ++++++ --- /var/tmp/diff_new_pack.lk1HMD/_old 2022-07-11 19:10:49.183732570 +0200 +++ /var/tmp/diff_new_pack.lk1HMD/_new 2022-07-11 19:10:49.191732582 +0200 @@ -16,11 +16,11 @@ # -%define _tar_path 5.95 +%define _tar_path 5.96 # Only needed for the package signature condition %bcond_without released Name: qqc2-desktop-style -Version: 5.95.0 +Version: 5.96.0 Release: 0 Summary: A Qt Quick Controls 2 Style for Desktop UIs License: GPL-2.0-or-later ++++++ qqc2-desktop-style-5.95.0.tar.xz -> qqc2-desktop-style-5.96.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qqc2-desktop-style-5.95.0/.kde-ci.yml new/qqc2-desktop-style-5.96.0/.kde-ci.yml --- old/qqc2-desktop-style-5.95.0/.kde-ci.yml 2022-06-04 15:50:27.000000000 +0200 +++ new/qqc2-desktop-style-5.96.0/.kde-ci.yml 2022-07-02 16:40:30.000000000 +0200 @@ -9,3 +9,4 @@ Options: test-before-installing: True + require-passing-tests-on: [ 'Linux', 'FreeBSD', 'Windows' ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qqc2-desktop-style-5.95.0/CMakeLists.txt new/qqc2-desktop-style-5.96.0/CMakeLists.txt --- old/qqc2-desktop-style-5.95.0/CMakeLists.txt 2022-06-04 15:50:27.000000000 +0200 +++ new/qqc2-desktop-style-5.96.0/CMakeLists.txt 2022-07-02 16:40:30.000000000 +0200 @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "5.95.0") # handled by release scripts -set(KF_DEP_VERSION "5.95.0") # handled by release scripts +set(KF_VERSION "5.96.0") # handled by release scripts +set(KF_DEP_VERSION "5.96.0") # handled by release scripts project(qqc2-desktop-style VERSION ${KF_VERSION}) @@ -21,7 +21,7 @@ ################# set KDE specific information ################# -find_package(ECM 5.95.0 REQUIRED NO_MODULE) +find_package(ECM 5.96.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}) @@ -33,6 +33,7 @@ include(KDECMakeSettings) include(KDEGitCommitHooks) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) +include(ECMDeprecationSettings) find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Core Quick Gui Widgets QuickControls2 DBus) @@ -114,8 +115,11 @@ SOVERSION 5) ######################################################################### -add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f02) -add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055100) +ecm_set_disabled_deprecation_versions( + QT 5.15.2 + KF 5.95 +) + add_subdirectory(plugin) if (KF5IconThemes_FOUND AND KF5WidgetsAddons_FOUND) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qqc2-desktop-style-5.95.0/org.kde.desktop/Menu.qml new/qqc2-desktop-style-5.96.0/org.kde.desktop/Menu.qml --- old/qqc2-desktop-style-5.95.0/org.kde.desktop/Menu.qml 2022-06-04 15:50:27.000000000 +0200 +++ new/qqc2-desktop-style-5.96.0/org.kde.desktop/Menu.qml 2022-07-02 16:40:30.000000000 +0200 @@ -71,13 +71,13 @@ Connections { target: control.contentItem.contentItem - function onChildrenChanged() { - for (let i in control.contentItem.contentItem.children) { - const child = control.contentItem.contentItem.children[i]; - if (child.checkable && child.visible) { + function onVisibleChildrenChanged() { + for (let i in control.contentItem.contentItem.visibleChildren) { + const child = control.contentItem.contentItem.visibleChildren[i]; + if (child.checkable) { control.contentItem.hasCheckables = true; } - if (child.icon && child.visible && child.icon.hasOwnProperty("name") && (child.icon.name.length > 0 || child.icon.source.length > 0)) { + if (child.icon && child.icon.hasOwnProperty("name") && (child.icon.name.length > 0 || child.icon.source.length > 0)) { control.contentItem.hasIcons = true; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qqc2-desktop-style-5.95.0/org.kde.desktop/StackView.qml new/qqc2-desktop-style-5.96.0/org.kde.desktop/StackView.qml --- old/qqc2-desktop-style-5.95.0/org.kde.desktop/StackView.qml 1970-01-01 01:00:00.000000000 +0100 +++ new/qqc2-desktop-style-5.96.0/org.kde.desktop/StackView.qml 2022-07-02 16:40:30.000000000 +0200 @@ -0,0 +1,108 @@ +/* + SPDX-FileCopyrightText: 2017 The Qt Company Ltd. + SPDX-FileCopyrightText: 2022 Fushan Wen <qydwhotm...@gmail.com> + + SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later +*/ + +import QtQuick @QQC2_VERSION@ +import QtQuick.Controls @QQC2_VERSION@ +import QtQuick.Templates @QQC2_VERSION@ as T + +import org.kde.kirigami 2.20 as Kirigami + +T.StackView { + id: control + + // Using NumberAnimation instead of XAnimator because the latter wasn't always smooth enough. + pushEnter: Transition { + NumberAnimation { + property: "x" + from: (control.mirrored ? -0.5 : 0.5) * control.width + to: 0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + NumberAnimation { + property: "opacity" + from: 0.0; to: 1.0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + } + pushExit: Transition { + NumberAnimation { + property: "x" + from: 0 + to: (control.mirrored ? -0.5 : 0.5) * -control.width + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + NumberAnimation { + property: "opacity" + from: 1.0; to: 0.0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + } + popEnter: Transition { + NumberAnimation { + property: "x" + from: (control.mirrored ? -0.5 : 0.5) * -control.width + to: 0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + NumberAnimation { + property: "opacity" + from: 0.0; to: 1.0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + } + popExit: Transition { + NumberAnimation { + property: "x" + from: 0 + to: (control.mirrored ? -0.5 : 0.5) * control.width + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + NumberAnimation { + property: "opacity" + from: 1.0; to: 0.0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + } + replaceEnter: Transition { + NumberAnimation { + property: "x" + from: (control.mirrored ? -0.5 : 0.5) * control.width + to: 0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + NumberAnimation { + property: "opacity" + from: 0.0; to: 1.0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + } + replaceExit: Transition { + NumberAnimation { + property: "x" + from: 0 + to: (control.mirrored ? -0.5 : 0.5) * -control.width + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + NumberAnimation { + property: "opacity" + from: 1.0; to: 0.0 + duration: Kirigami.Units.longDuration + easing.type: Easing.OutCubic + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qqc2-desktop-style-5.95.0/plugin/kquickstyleitem.cpp new/qqc2-desktop-style-5.96.0/plugin/kquickstyleitem.cpp --- old/qqc2-desktop-style-5.95.0/plugin/kquickstyleitem.cpp 2022-06-04 15:50:27.000000000 +0200 +++ new/qqc2-desktop-style-5.96.0/plugin/kquickstyleitem.cpp 2022-07-02 16:40:30.000000000 +0200 @@ -30,7 +30,10 @@ QStyle *KQuickStyleItem::style() { - auto style = qApp->style(); + if (!qobject_cast<QApplication *>(QCoreApplication::instance())) { + return s_style; + } + QStyle *style = qApp->style(); return style ? style : s_style; } @@ -60,10 +63,37 @@ , m_textureHeight(0) , m_lastFocusReason(Qt::NoFocusReason) { - // There is no styleChanged signal and QApplication sends QEvent::StyleChange only to all QWidgets - if (qApp->style()) { - connect(qApp->style(), &QObject::destroyed, this, &KQuickStyleItem::styleChanged); + // Check that we really are a QApplication before attempting to access the + // application style. + // + // Functions used in this file which are safe to access through qApp are: + // + // qApp->font() and qApp->fontChanged() - provided by QGuiApplication + // qApp->font("classname") - provided by QApplication but safe + // qApp->layoutDirection() - provided by QGuiApplication + // qApp->wheelScrollLines() - uses styleHints() provided by QGuiApplication + // qApp->testAttribute() and qApp->setAttribute() - provided by QCoreApplication + // qApp->devicePixelRatio() - provided by QGuiApplication + // qApp->palette("classname") - provided by QApplication but safe + // + // but any use of qApp->style(), even if only trying to test that it exists, + // will assert. Use KQuickStyleItem::style() as above. + // + // Any use of any other function provided by QApplication must either be checked + // to ensure that it is safe to use if not a QApplication, or guarded. + + if (qobject_cast<QApplication *>(QCoreApplication::instance())) { + // We are a QApplication. Unfortunately there is no styleChanged signal + // available, and it only sends QEvent::StyleChange events to all QWidgets. + // So watch for the existing application style being destroyed, which means + // that a new one is being applied. See QApplication::setStyle(). + QStyle *style = qApp->style(); + if (style) { + connect(style, &QObject::destroyed, this, &KQuickStyleItem::styleChanged); + } } else { + // We are not a QApplication. Create an internal copy of the configured + // desktop style, to be used for metrics, options and painting. KSharedConfig::Ptr kdeglobals = KSharedConfig::openConfig(); KConfigGroup cg(kdeglobals, "KDE"); auto style = s_style; @@ -1935,13 +1965,17 @@ void KQuickStyleItem::styleChanged() { - if (!qApp->style() || QApplication::closingDown()) { + // It should be safe to use qApp->style() unguarded here, because the signal + // will only have been connected if qApp is a QApplication. + Q_ASSERT(qobject_cast<QApplication *>(QCoreApplication::instance())); + auto *style = qApp->style(); + if (!style || QCoreApplication::closingDown()) { return; } - Q_ASSERT(qApp->style() != sender()); + Q_ASSERT(style != sender()); - connect(qApp->style(), &QObject::destroyed, this, &KQuickStyleItem::styleChanged); + connect(style, &QObject::destroyed, this, &KQuickStyleItem::styleChanged); updateSizeHint(); updateItem();