Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kdeclarative for openSUSE:Factory checked in at 2022-06-17 21:19:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kdeclarative (Old) and /work/SRC/openSUSE:Factory/.kdeclarative.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdeclarative" Fri Jun 17 21:19:06 2022 rev:105 rq:982255 version:5.95.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kdeclarative/kdeclarative.changes 2022-05-16 18:08:27.677270886 +0200 +++ /work/SRC/openSUSE:Factory/.kdeclarative.new.1548/kdeclarative.changes 2022-06-17 21:20:54.422721122 +0200 @@ -1,0 +2,17 @@ +Fri Jun 10 14:12:22 UTC 2022 - Christophe Giboudeaux <[email protected]> + +- Update to 5.95.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/5/5.95.0 +- Changes since 5.94.0: + * qmlcontrols: bump `QtQuick` import version to 2.15 for GridViewInternal + * port to standard C++ smart pointers where possible + * Use the correct engine variable + * Remove KDeclarative instance from QmlObject + * QmlObject: Use std::shared_ptr to properly track the lifetime of QQmlEngine (kde#451790) + * Move type registrations to the plugin initialization + * calendareventsplugin: Add label property + * calendareventsplugin: Add support for alternate dates and sub-labels + +------------------------------------------------------------------- Old: ---- kdeclarative-5.94.0.tar.xz kdeclarative-5.94.0.tar.xz.sig New: ---- kdeclarative-5.95.0.tar.xz kdeclarative-5.95.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdeclarative.spec ++++++ --- /var/tmp/diff_new_pack.HjRX73/_old 2022-06-17 21:20:54.882721372 +0200 +++ /var/tmp/diff_new_pack.HjRX73/_new 2022-06-17 21:20:54.890721376 +0200 @@ -17,14 +17,14 @@ %define lname libKF5Declarative5 -%define _tar_path 5.94 +%define _tar_path 5.95 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} %bcond_without released Name: kdeclarative -Version: 5.94.0 +Version: 5.95.0 Release: 0 Summary: Integration of QML and KDE workspaces License: LGPL-2.1-or-later ++++++ kdeclarative-5.94.0.tar.xz -> kdeclarative-5.95.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/CMakeLists.txt new/kdeclarative-5.95.0/CMakeLists.txt --- old/kdeclarative-5.94.0/CMakeLists.txt 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/CMakeLists.txt 2022-06-09 23:16:57.000000000 +0200 @@ -1,12 +1,12 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "5.94.0") # handled by release scripts -set(KF_DEP_VERSION "5.93.0") # handled by release scripts +set(KF_VERSION "5.95.0") # handled by release scripts +set(KF_DEP_VERSION "5.95.0") # handled by release scripts project(KDeclarative VERSION ${KF_VERSION}) # Dependencies include(FeatureSummary) -find_package(ECM 5.93.0 NO_MODULE) +find_package(ECM 5.95.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/po/ca@valencia/kdeclarative5.po new/kdeclarative-5.95.0/po/ca@valencia/kdeclarative5.po --- old/kdeclarative-5.94.0/po/ca@valencia/kdeclarative5.po 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/po/ca@valencia/kdeclarative5.po 2022-06-09 23:16:57.000000000 +0200 @@ -38,7 +38,7 @@ #: kpackagelauncherqml/main.cpp:30 #, kde-format msgid "KPackage QML application shell" -msgstr "Int??rpret d'aplicaci?? en QML de KPackage" +msgstr "Int??rpret d'aplicaci?? en QML de KPackage" #: kpackagelauncherqml/main.cpp:38 #, kde-format @@ -67,7 +67,7 @@ msgctxt "@info:whatsthis for a button of current color code %1" msgid "Current color is %1. This button will open a color chooser dialog." msgstr "" -"El color actual ??s %1. Este bot?? obrir?? un di??leg de selecci?? del color." +"El color actual ??s %1. Este bot?? obrir?? un di??lec de selecci?? del color." #: qmlcontrols/kquickcontrols/ColorButton.qml:66 #, kde-format @@ -110,7 +110,7 @@ "shortcut.\n" "Please choose another one." msgstr "" -"La tecla ??F12?? est?? reservada a Windows, no es pot utilitzar com a drecera " +"La tecla ??F12?? est?? reservada a Windows, no es pot utilisar com a drecera " "global.\n" "Seleccioneu-ne una atra." @@ -149,9 +149,9 @@ "some applications use.\n" "Do you really want to use it as a global shortcut as well?" msgstr "" -"La combinaci?? de tecla ??%1?? ja s'ha assignat a l'acci?? est??ndard ??%2?? que " -"usen algunes aplicacions.\n" -"Segur que tamb?? voleu utilitzar-la com a drecera global?" +"La combinaci?? de tecla ??%1?? ya s'ha assignat a l'acci?? est??ndard ??%2?? que " +"utilisen algunes aplicacions.\n" +"Segur que tamb?? voleu utilisar-la com a drecera global?" #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:201 #, kde-format @@ -161,7 +161,7 @@ #: quickaddons/configmodule.cpp:187 #, kde-format msgid "Invalid KPackage '%1'" -msgstr "KPackage ??%1?? no v??lid" +msgstr "KPackage ??%1?? no v??lit" #: quickaddons/configmodule.cpp:193 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/po/ka/kdeclarative5.po new/kdeclarative-5.95.0/po/ka/kdeclarative5.po --- old/kdeclarative-5.94.0/po/ka/kdeclarative5.po 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/po/ka/kdeclarative5.po 2022-06-09 23:16:57.000000000 +0200 @@ -1,87 +1,83 @@ -# KDE3 - Georgian translation of kdelibs4.po -# Gia Shervashidze <[email protected]>, 2005. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdeclarative package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # msgid "" msgstr "" -"Project-Id-Version: kdelibs4\n" +"Project-Id-Version: kdeclarative\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2022-04-12 00:40+0000\n" -"PO-Revision-Date: 2009-12-17 02:11+0400\n" -"Last-Translator: George Machitidze <[email protected]>\n" -"Language-Team: Georgian <http://www.gia.ge>\n" +"PO-Revision-Date: 2022-05-22 06:36+0200\n" +"Last-Translator: Temuri Doghonadze <[email protected]>\n" +"Language-Team: Georgian <[email protected]>\n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.9\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.0.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" -msgstr "????????? ???????????????????????????" +msgstr "Temuri Doghonadze" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" -msgstr "[email protected]" +msgstr "[email protected]" #: kpackagelauncherqml/main.cpp:30 #, kde-format msgid "KPackage QML application shell" -msgstr "" +msgstr "KPackage QML ?????????????????????????????? ???????????????" #: kpackagelauncherqml/main.cpp:38 -#, fuzzy, kde-format -#| msgid "defines the application font" +#, kde-format msgid "The unique name of the application (mandatory)" -msgstr "??????????????????????????? ??????????????????????????? ??????????????????" +msgstr "?????????????????????????????? ??????????????????????????? ?????????????????? (?????????????????????????????????)" #: qmlcontrols/kcmcontrols/qml/ContextualHelpButton.qml:62 #, kde-format msgctxt "@action:button" msgid "Show Contextual Help" -msgstr "" +msgstr "????????????????????????????????? ?????????????????????????????? ?????????????????????" #: qmlcontrols/kcmcontrols/qml/private/GridViewInternal.qml:79 -#, fuzzy, kde-format -#| msgid "1 match found." -#| msgid_plural "%1 matches found." +#, kde-format msgid "No items found" -msgstr "???????????????????????? %1 ???????????????????????????." +msgstr "?????????????????????????????? ????????????????????? ????????????" #: qmlcontrols/kquickcontrols/ColorButton.qml:63 #, kde-format msgctxt "@info:whatsthis for a button" msgid "Color button" -msgstr "" +msgstr "??????????????? ??????????????????" #: qmlcontrols/kquickcontrols/ColorButton.qml:65 #, kde-format msgctxt "@info:whatsthis for a button of current color code %1" msgid "Current color is %1. This button will open a color chooser dialog." -msgstr "" +msgstr "??????????????????????????? ??????????????? %1. ?????? ?????????????????? ??????????????? ????????????????????? ???????????????????????? ?????????????????????." #: qmlcontrols/kquickcontrols/ColorButton.qml:66 -#, fuzzy, kde-format -#| msgid "Current location" +#, kde-format msgctxt "@info:whatsthis for a button of current color code %1" msgid "Current color is %1." -msgstr "&??????????????????????????? ???????????????????????????:" +msgstr "??????????????????????????? ??????????????? %1." #: qmlcontrols/kquickcontrols/KeySequenceItem.qml:75 -#, fuzzy, kde-format -#| msgid "Input file" +#, kde-format msgctxt "What the user inputs now will be taken as the new shortcut" msgid "Input" msgstr "????????????????????? ???????????????" #: qmlcontrols/kquickcontrols/KeySequenceItem.qml:76 -#, fuzzy, kde-format -#| msgid "None" +#, kde-format msgctxt "No shortcut defined" msgid "None" -msgstr "?????????" +msgstr "????????????" #: qmlcontrols/kquickcontrols/KeySequenceItem.qml:89 #, kde-format @@ -89,12 +85,13 @@ "Click on the button, then enter the shortcut like you would in the program.\n" "Example for Ctrl+A: hold the Ctrl key and press A." msgstr "" +"???????????????????????? ?????????????????? ?????? ?????? ??????????????????????????? ??????????????????????????????, ?????????????????? ??????????????????????????????.\n" +"??????????????????????????? Ctrl+A: ???????????????????????? Ctrl-??? ?????? A-???." #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:118 -#, fuzzy, kde-format -#| msgid "Shortcut" +#, kde-format msgid "Reserved Shortcut" -msgstr "???????????????????????????" +msgstr "?????????????????????????????????????????? ??????????????????????????????" #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:120 #, kde-format @@ -103,36 +100,39 @@ "shortcut.\n" "Please choose another one." msgstr "" +"Windows-?????? F12 ?????????????????? ?????????????????????????????????????????? ?????? ???????????? ?????????????????????????????? ???????????????????????? ????????????????????????????????? " +"??????????????????????????????.\n" +"?????????????????????????????? ????????????." #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:144 #, kde-format msgid "Global Shortcut Shadowing" -msgstr "" +msgstr "??????????????????????????? ????????????????????????????????? ?????????????????????????????????" #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:147 #, kde-format msgid "The '%1' key combination is shadowed by following global actions:\n" msgstr "" +"??????????????????????????? ?????????????????????????????? '%1' ????????????????????? ??????????????????????????? ???????????????????????????????????? ????????????????????????????????????:\n" #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:149 #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:155 -#, fuzzy, kde-format -#| msgid "Shortcuts" +#, kde-format msgid "Action '%1' in context '%2'\n" -msgstr "?????????????????????????????????" +msgstr "????????????????????? \"%1' '%2'-?????? ??????????????????????????????\n" #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:153 #, kde-format msgid "The '%1' key combination shadows following global actions:\n" -msgstr "" +msgstr "??????????????????????????? ?????????????????????????????? '%1' ?????????????????? ???????????????????????? ??????????????????????????? ????????????????????????????????????:\n" #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:193 #, kde-format msgid "Conflict with Standard Application Shortcut" -msgstr "??????????????????????????? ??????????????????????????? ?????????????????????????????? ?????????????????????????????????" +msgstr "??????????????????????????? ??????????????????????????? ?????????????????????????????? ????????????????????????????????????" #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:195 -#, fuzzy, kde-format +#, kde-format msgid "" "The '%1' key combination is also used for the standard action \"%2\" that " "some applications use.\n" @@ -144,14 +144,14 @@ #: qmlcontrols/kquickcontrols/private/keysequencehelper.cpp:201 #, kde-format msgid "Reassign" -msgstr "?????????????????????????????????????????????" +msgstr "????????????????????????????????? ????????????????????? ????????????????????????" #: quickaddons/configmodule.cpp:187 -#, fuzzy, kde-format +#, kde-format msgid "Invalid KPackage '%1'" -msgstr "?????????????????? ?????????????????????????????????!" +msgstr "???????????????????????? KPackage '%1'" #: quickaddons/configmodule.cpp:193 #, kde-format msgid "No QML file provided" -msgstr "" +msgstr "QML ??????????????? ?????????????????????????????? ????????????" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/po/zh_CN/kdeclarative5.po new/kdeclarative-5.95.0/po/zh_CN/kdeclarative5.po --- old/kdeclarative-5.94.0/po/zh_CN/kdeclarative5.po 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/po/zh_CN/kdeclarative5.po 2022-06-09 23:16:57.000000000 +0200 @@ -15,7 +15,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2022-04-12 00:40+0000\n" -"PO-Revision-Date: 2022-04-26 15:18\n" +"PO-Revision-Date: 2022-06-05 04:17\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/calendarevents/calendareventsplugin.h new/kdeclarative-5.95.0/src/calendarevents/calendareventsplugin.h --- old/kdeclarative-5.94.0/src/calendarevents/calendareventsplugin.h 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/calendarevents/calendareventsplugin.h 2022-06-09 23:16:57.000000000 +0200 @@ -169,6 +169,14 @@ Q_OBJECT public: + enum class SubLabelPriority { + Low, /**< Usually used in alternate calendars */ + Default, /**< For holidays or normal events */ + High, /**< For flagged or marked events */ + Urgent, + }; + Q_ENUM(SubLabelPriority) + explicit CalendarEventsPlugin(QObject *parent = nullptr); ~CalendarEventsPlugin() override; @@ -182,6 +190,14 @@ */ virtual void loadEventsForDateRange(const QDate &startDate, const QDate &endDate) = 0; + struct SubLabel { + QString label; /**< The label will be displayed in the tooltip or beside the full date */ + QString yearLabel; /**< The label will be displayed under the year number */ + QString monthLabel; /**< The label will be displayed under the month number */ + QString dayLabel; /**< The label will be displayed under the day number */ + SubLabelPriority priority = SubLabelPriority::Default; /**< The display priority of the sublabel */ + }; + Q_SIGNALS: /** * Emitted when the plugin has loaded the events data @@ -211,6 +227,24 @@ * @param uid The uid of the event that was removed */ void eventRemoved(const QString &uid); + + /** + * Emitted when the plugin has loaded the alternate dates + * + * @param data A hash containing a QDate key from Gregorian calendar + * for the alternate date in the value, QDate. + * @since 5.95 + */ + void alternateDateReady(const QHash<QDate, QDate> &data); + + /** + * Emitted when the plugin has loaded the sublabels + * + * @param data A hash containing a QDate key for the sublabels + * in the value, SubLabel. + * @since 5.95 + */ + void subLabelReady(const QHash<QDate, SubLabel> &data); }; /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/kdeclarative/CMakeLists.txt new/kdeclarative-5.95.0/src/kdeclarative/CMakeLists.txt --- old/kdeclarative-5.94.0/src/kdeclarative/CMakeLists.txt 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/kdeclarative/CMakeLists.txt 2022-06-09 23:16:57.000000000 +0200 @@ -25,7 +25,7 @@ GROUP_BASE_NAME KF VERSION ${KF_VERSION} DEPRECATED_BASE_VERSION 0 - DEPRECATION_VERSIONS 5.0 5.45 5.75 5.91 + DEPRECATION_VERSIONS 5.0 5.45 5.75 5.91 5.95 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/kdeclarative/qmlobject.cpp new/kdeclarative-5.95.0/src/kdeclarative/qmlobject.cpp --- old/kdeclarative-5.94.0/src/kdeclarative/qmlobject.cpp 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/kdeclarative/qmlobject.cpp 2022-06-09 23:16:57.000000000 +0200 @@ -10,6 +10,7 @@ #include <QQmlContext> #include <QQmlEngine> #include <QQmlIncubator> +#include <QQmlNetworkAccessManagerFactory> #include <QQuickItem> #include <QTimer> @@ -74,11 +75,11 @@ QmlObject *q; QUrl source; - QQmlEngine *engine; + std::shared_ptr<QQmlEngine> engine; + QmlObjectIncubator incubator; QQmlComponent *component; QTimer *executionEndTimer; - KDeclarative kdeclarative; KLocalizedContext *context{nullptr}; KPackage::Package package; QQmlContext *rootContext; @@ -106,7 +107,7 @@ } delete component; - component = new QQmlComponent(engine, q); + component = new QQmlComponent(engine.get(), q); QObject::connect(component, &QQmlComponent::statusChanged, q, &QmlObject::statusChanged, Qt::QueuedConnection); delete incubator.object(); @@ -131,39 +132,40 @@ } QmlObject::QmlObject(QObject *parent) - // cannot do : QmlObject(new QQmlEngine(this), d->engine->rootContext(), parent) - : QObject(parent) - , d(new QmlObjectPrivate(this)) - + : QmlObject(nullptr, nullptr, parent) { - d->engine = new QQmlEngine(this); - d->rootContext = d->engine->rootContext(); - d->kdeclarative.setDeclarativeEngine(d->engine); - d->kdeclarative.d->qmlObj = this; - - d->context = new KLocalizedContext(this); - d->rootContext->setContextObject(d->context); - KDeclarative::setupEngine(d->engine); } +#if KDECLARATIVE_BUILD_DEPRECATED_SINCE(5, 95) QmlObject::QmlObject(QQmlEngine *engine, QObject *parent) - : QmlObject(engine, engine->rootContext(), parent) + : QmlObject(std::shared_ptr<QQmlEngine>(engine), nullptr, parent) { } QmlObject::QmlObject(QQmlEngine *engine, QQmlContext *rootContext, QObject *parent) - : QmlObject(engine, rootContext, nullptr /*call setupEngine*/, parent) + : QmlObject(std::shared_ptr<QQmlEngine>(engine), rootContext, parent) { } QmlObject::QmlObject(QQmlEngine *engine, QQmlContext *rootContext, QmlObject *obj, QObject *parent) + : QmlObject(std::shared_ptr<QQmlEngine>(engine), rootContext, parent) +{ + Q_UNUSED(obj); +} +#endif + +QmlObject::QmlObject(std::shared_ptr<QQmlEngine> engine, QQmlContext *rootContext, QObject *parent) : QObject(parent) , d(new QmlObjectPrivate(this)) { if (engine) { d->engine = engine; } else { - d->engine = new QQmlEngine(this); + d->engine = std::make_shared<QQmlEngine>(); + } + + if (d->engine.use_count() <= 2) { + KDeclarative::setupEngine(d->engine.get()); } if (rootContext) { @@ -171,22 +173,23 @@ } else { d->rootContext = d->engine->rootContext(); } - d->kdeclarative.setDeclarativeEngine(d->engine); - d->kdeclarative.d->qmlObj = this; d->context = new KLocalizedContext(this); d->rootContext->setContextObject(d->context); - - if (!obj) { - KDeclarative::setupEngine(d->engine); - } } QmlObject::~QmlObject() { - // QDeclarativeNetworkAccessManagerFactory *factory = d->engine->networkAccessManagerFactory(); - // d->engine->setNetworkAccessManagerFactory(0); - // delete factory; + if (d->engine.use_count() == 1) { + // QQmlEngine does not take ownership of the QNAM factory so we need to + // make sure to clean it, but only if we are the last user of the engine + // otherwise we risk resetting the factory on an engine that is still in + // use. + auto factory = d->engine->networkAccessManagerFactory(); + d->engine->setNetworkAccessManagerFactory(nullptr); + delete factory; + } + delete d; } @@ -241,7 +244,7 @@ QQmlEngine *QmlObject::engine() { - return d->engine; + return d->engine.get(); } QObject *QmlObject::rootObject() const @@ -324,7 +327,7 @@ QObject *QmlObject::createObjectFromSource(const QUrl &source, QQmlContext *context, const QVariantHash &initialProperties) { - QQmlComponent *component = new QQmlComponent(d->engine, this); + QQmlComponent *component = new QQmlComponent(d->engine.get(), this); component->loadUrl(source); return createObjectFromComponent(component, context, initialProperties); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/kdeclarative/qmlobject.h new/kdeclarative-5.95.0/src/kdeclarative/qmlobject.h --- old/kdeclarative-5.94.0/src/kdeclarative/qmlobject.h 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/kdeclarative/qmlobject.h 2022-06-09 23:16:57.000000000 +0200 @@ -58,8 +58,14 @@ * * @param engine a QQmlEngine we want to use * @param parent the parent of this object + * + * @deprecated Since 5.95, Use QmlObject(std::shared_ptr<QmlEngine>, QObject*) + * instead. */ +#if KDECLARATIVE_ENABLE_DEPRECATED_SINCE(5, 95) + KDECLARATIVE_DEPRECATED_VERSION(5, 95, "Use QmlObject(std::shared_ptr<QQmlEngine>, QmlContext*, QObject*) instead") explicit QmlObject(QQmlEngine *engine, QObject *parent = nullptr); +#endif /** * Constructs a new QmlObject @@ -67,8 +73,28 @@ * @param engine the QQmlEngine to use * @param rootContext the root context to use for object creation * @param parent the parent of this object + * + * @deprecated Since 5.95, Use QmlObject(std::shared_ptr<QmlEngine>, QmlContext*, QObject*) + * instead. */ +#if KDECLARATIVE_ENABLE_DEPRECATED_SINCE(5, 95) + KDECLARATIVE_DEPRECATED_VERSION(5, 95, "Use QmlObject(std::shared_ptr<QQmlEngine>, QQmlContext*, QObject*) instead") explicit QmlObject(QQmlEngine *engine, QQmlContext *rootContext, QObject *parent = nullptr); +#endif + + /** + * Construct a new QmlObject + * + * @param engine The QQmlEngine to use. If this object is the first user of + * the engine (e.g. use_count() is 1), KDeclarative::setupEngine() will be + * called. If this is nullptr, a new engine will be created for this object + * to use. + * @param rootContext The QML context to use for object creation. If this is + * nullptr, the engine's root context will be used. + * @param parent The QObject parent for this object. + */ + explicit QmlObject(std::shared_ptr<QQmlEngine> engine, QQmlContext *rootContext = nullptr, QObject *parent = nullptr); + ~QmlObject() override; /** @@ -230,8 +256,15 @@ * multiple objects (such as QmlObjectSharedEngine) * @param parent the parent of this object * @since 5.45 + * + * @deprecated Since 5.95, Use QmlObject(std::shared_ptr<QmlEngine>, QmlContext*, QObject*) + * instead. The "obj" parameter has been dropped, instead setupEngine will be + * called if this QmlObject is the first user of the engine. */ +#if KDECLARATIVE_ENABLE_DEPRECATED_SINCE(5, 95) + KDECLARATIVE_DEPRECATED_VERSION(5, 95, "Use QmlObject(std::shared_ptr<QQmlEngine>, QQmlContext*, QObject*) instead") explicit QmlObject(QQmlEngine *engine, QQmlContext *rootContext, QmlObject *obj, QObject *parent = nullptr); +#endif private: friend class QmlObjectPrivate; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/kdeclarative/qmlobjectsharedengine.cpp new/kdeclarative-5.95.0/src/kdeclarative/qmlobjectsharedengine.cpp --- old/kdeclarative-5.94.0/src/kdeclarative/qmlobjectsharedengine.cpp 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/kdeclarative/qmlobjectsharedengine.cpp 2022-06-09 23:16:57.000000000 +0200 @@ -8,6 +8,7 @@ #include <QQmlContext> #include <QQmlEngine> +#include <QQmlNetworkAccessManagerFactory> #include <QDebug> #include <kdeclarative.h> @@ -26,21 +27,21 @@ ~QmlObjectSharedEnginePrivate() { - // when the only remaining are out two refs, reset the pointers, causing deletion - // when the refcount is 2, we are sure that the only refs are s_engine and our copy - // of engineRef - if (engineRef.use_count() == 2) { + // when the only remaining are our three refs, reset the pointers, causing deletion + // when the refcount is 3, we are sure that the only refs are s_engine, our copy + // of engineRef and m_engine in QmlObject. + if (engineRef.use_count() <= 3) { s_engine.reset(); } } - static QQmlEngine *engine() + static std::shared_ptr<QQmlEngine> engine() { if (!s_engine) { s_engine = std::make_shared<QQmlEngine>(); KDeclarative::setupEngine(s_engine.get()); } - return s_engine.get(); + return s_engine; } // used to delete it @@ -52,7 +53,7 @@ std::shared_ptr<QQmlEngine> QmlObjectSharedEnginePrivate::s_engine = std::shared_ptr<QQmlEngine>(); QmlObjectSharedEngine::QmlObjectSharedEngine(QObject *parent) - : QmlObject(QmlObjectSharedEnginePrivate::engine(), new QQmlContext(QmlObjectSharedEnginePrivate::engine()), this /*don't call setupEngine*/, parent) + : QmlObject(QmlObjectSharedEnginePrivate::engine(), new QQmlContext(QmlObjectSharedEnginePrivate::engine().get()), parent) , d(new QmlObjectSharedEnginePrivate()) { rootContext()->setParent(this); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/qmlcontrols/kcmcontrols/CMakeLists.txt new/kdeclarative-5.95.0/src/qmlcontrols/kcmcontrols/CMakeLists.txt --- old/kdeclarative-5.94.0/src/qmlcontrols/kcmcontrols/CMakeLists.txt 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/qmlcontrols/kcmcontrols/CMakeLists.txt 2022-06-09 23:16:57.000000000 +0200 @@ -5,7 +5,6 @@ kcmcontrolsplugin.h settinghighlighterprivate.cpp settinghighlighterprivate.h - settingshighlighterprivate.h settingstateproxy.cpp settingstateproxy.h ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/qmlcontrols/kcmcontrols/qml/SettingStateBinding.qml new/kdeclarative-5.95.0/src/qmlcontrols/kcmcontrols/qml/SettingStateBinding.qml --- old/kdeclarative-5.94.0/src/qmlcontrols/kcmcontrols/qml/SettingStateBinding.qml 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/qmlcontrols/kcmcontrols/qml/SettingStateBinding.qml 2022-06-09 23:16:57.000000000 +0200 @@ -4,8 +4,9 @@ SPDX-License-Identifier: LGPL-2.0-or-later */ -import QtQuick 2.8 -import QtQml 2.14 +import QtQuick 2.15 +// Deliberately imported after QtQuick to avoid missing restoreMode property in Binding. Fix in Qt 6. +import QtQml 2.15 import QtQuick.Layouts 1.3 import org.kde.kcm 1.3 as KCM import org.kde.kcm.private 1.3 @@ -70,7 +71,7 @@ when: helper.target target: helper.target property: "enabled" - value: extraEnabledConditions && !settingState.immutable + value: extraEnabledConditions && !settingState.immutable restoreMode: Binding.RestoreBinding } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/qmlcontrols/kcmcontrols/qml/private/GridViewInternal.qml new/kdeclarative-5.95.0/src/qmlcontrols/kcmcontrols/qml/private/GridViewInternal.qml --- old/kdeclarative-5.94.0/src/qmlcontrols/kcmcontrols/qml/private/GridViewInternal.qml 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/qmlcontrols/kcmcontrols/qml/private/GridViewInternal.qml 2022-06-09 23:16:57.000000000 +0200 @@ -4,7 +4,7 @@ SPDX-License-Identifier: LGPL-2.0-or-later */ -import QtQuick 2.7 +import QtQuick 2.15 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.2 as QtControls import org.kde.kirigami 2.19 as Kirigami @@ -31,7 +31,7 @@ anchors { fill: parent margins: 2 - leftMargin: scroll.QtControls.ScrollBar.vertical.visible ? 2 : Math.round(internal.scrollBarSpace/2) + 2 + leftMargin: 2 + (scroll.QtControls.ScrollBar.vertical.visible ? 0 : Math.round(internal.scrollBarSpace / 2)) } clip: true activeFocusOnTab: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/qmlcontrols/kquickcontrolsaddons/kquickcontrolsaddonsplugin.cpp new/kdeclarative-5.95.0/src/qmlcontrols/kquickcontrolsaddons/kquickcontrolsaddonsplugin.cpp --- old/kdeclarative-5.94.0/src/qmlcontrols/kquickcontrolsaddons/kquickcontrolsaddonsplugin.cpp 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/qmlcontrols/kquickcontrolsaddons/kquickcontrolsaddonsplugin.cpp 2022-06-09 23:16:57.000000000 +0200 @@ -41,6 +41,8 @@ qmlRegisterType<QImageItem>(uri, 2, 0, "QImageItem"); qmlRegisterType<QIconItem>(uri, 2, 0, "QIconItem"); qmlRegisterType<MouseEventListener>(uri, 2, 0, "MouseEventListener"); + qmlRegisterAnonymousType<KDeclarativeMouseEvent>(uri, 1); + qmlRegisterAnonymousType<KDeclarativeWheelEvent>(uri, 1); qmlRegisterType<ColumnProxyModel>(uri, 2, 0, "ColumnProxyModel"); qmlRegisterType<Clipboard>(uri, 2, 0, "Clipboard"); qmlRegisterType<MimeDatabase>(uri, 2, 0, "MimeDatabase"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.cpp new/kdeclarative-5.95.0/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.cpp --- old/kdeclarative-5.94.0/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.cpp 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.cpp 2022-06-09 23:16:57.000000000 +0200 @@ -27,9 +27,6 @@ m_pressAndHoldTimer = new QTimer(this); m_pressAndHoldTimer->setSingleShot(true); connect(m_pressAndHoldTimer, &QTimer::timeout, this, &MouseEventListener::handlePressAndHold); - qmlRegisterAnonymousType<KDeclarativeMouseEvent>("org.kde.kquickcontrolsaddons", 1); - qmlRegisterAnonymousType<KDeclarativeWheelEvent>("org.kde.kquickcontrolsaddons", 1); - setFiltersChildMouseEvents(true); setAcceptedMouseButtons(Qt::LeftButton | Qt::RightButton | Qt::MiddleButton | Qt::XButton1 | Qt::XButton2); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdeclarative-5.94.0/src/qmlcontrols/kquickcontrolsaddons/plotter.cpp new/kdeclarative-5.95.0/src/qmlcontrols/kquickcontrolsaddons/plotter.cpp --- old/kdeclarative-5.94.0/src/qmlcontrols/kquickcontrolsaddons/plotter.cpp 2022-05-07 23:19:06.000000000 +0200 +++ new/kdeclarative-5.95.0/src/qmlcontrols/kquickcontrolsaddons/plotter.cpp 2022-06-09 23:16:57.000000000 +0200 @@ -281,7 +281,7 @@ ~PlotSGNode() override = default; private: - QScopedPointer<QOpenGLShaderProgram> m_program; + std::unique_ptr<QOpenGLShaderProgram> m_program; int u_matrix; int u_color1; int u_color2; @@ -290,7 +290,7 @@ }; PlotSGNode::PlotSGNode() - : m_program(new QOpenGLShaderProgram) + : m_program(std::make_unique<QOpenGLShaderProgram>()) { setOwnsTexture(true); m_program->addCacheableShaderFromSourceCode(QOpenGLShader::Vertex, vs_source);
