Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kde-gtk-config5 for openSUSE:Factory checked in at 2022-10-11 18:00:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kde-gtk-config5 (Old) and /work/SRC/openSUSE:Factory/.kde-gtk-config5.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kde-gtk-config5" Tue Oct 11 18:00:52 2022 rev:140 rq:1009101 version:5.26.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kde-gtk-config5/kde-gtk-config5.changes 2022-09-08 14:20:38.698227381 +0200 +++ /work/SRC/openSUSE:Factory/.kde-gtk-config5.new.2275/kde-gtk-config5.changes 2022-10-11 18:03:08.729851604 +0200 @@ -1,0 +2,27 @@ +Thu Oct 6 14:48:41 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.26.0 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.26.0 +- Changes since 5.25.90: + * kded: properly delete factory to fix file descriptor leak (kde#458430,kde#458817) + +------------------------------------------------------------------- +Thu Sep 15 20:46:24 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.25.90 + * New feature release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.25.90 +- Changes since 5.25.5: + * Also write CSS and assets to xdg-config/gtk-4.0 (kde#448675) + * Add FreeBSD Qt6 CI support + * Add missing license file + * Add Qt6 Linux CI + * Port away from deprecated KPluginLoader + * Adapt build system for supporting Qt6 as well + * Remove ServiceType from KDED metadata + * Request passing unit tests on Linux and BSD + +------------------------------------------------------------------- Old: ---- kde-gtk-config-5.25.5.tar.xz kde-gtk-config-5.25.5.tar.xz.sig New: ---- kde-gtk-config-5.26.0.tar.xz kde-gtk-config-5.26.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kde-gtk-config5.spec ++++++ --- /var/tmp/diff_new_pack.fzP3C7/_old 2022-10-11 18:03:09.277852490 +0200 +++ /var/tmp/diff_new_pack.fzP3C7/_new 2022-10-11 18:03:09.285852503 +0200 @@ -18,18 +18,18 @@ %bcond_without released Name: kde-gtk-config5 -Version: 5.25.5 +Version: 5.26.0 Release: 0 Summary: Daemon for GTK2 and GTK3 Applications Appearance Under KDE License: GPL-3.0-or-later AND LGPL-3.0-or-later Group: System/GUI/KDE URL: http://projects.kde.org/kde-gtk-config -Source: https://download.kde.org/stable/plasma/%{version}/kde-gtk-config-%{version}.tar.xz +Source: kde-gtk-config-%{version}.tar.xz %if %{with released} -Source1: https://download.kde.org/stable/plasma/%{version}/kde-gtk-config-%{version}.tar.xz.sig +Source1: kde-gtk-config-%{version}.tar.xz.sig Source2: plasma.keyring %endif -BuildRequires: extra-cmake-modules >= 0.0.9 +BuildRequires: extra-cmake-modules >= 5.98.0 BuildRequires: gsettings-desktop-schemas BuildRequires: kf5-filesystem BuildRequires: sassc @@ -41,7 +41,7 @@ BuildRequires: cmake(KF5DBusAddons) BuildRequires: cmake(KF5GuiAddons) BuildRequires: cmake(KF5IconThemes) -BuildRequires: cmake(Qt5Svg) +BuildRequires: cmake(Qt5Svg) >= 5.15.0 BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gobject-2.0) ++++++ kde-gtk-config-5.25.5.tar.xz -> kde-gtk-config-5.26.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/.gitlab-ci.yml new/kde-gtk-config-5.26.0/.gitlab-ci.yml --- old/kde-gtk-config-5.25.5/.gitlab-ci.yml 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/.gitlab-ci.yml 2022-10-06 14:12:57.000000000 +0200 @@ -4,3 +4,5 @@ include: - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd-qt6.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/.kde-ci.yml new/kde-gtk-config-5.26.0/.kde-ci.yml --- old/kde-gtk-config-5.25.5/.kde-ci.yml 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/.kde-ci.yml 2022-10-06 14:12:57.000000000 +0200 @@ -14,3 +14,5 @@ 'frameworks/kguiaddons': '@latest' 'frameworks/kwidgetsaddons': '@latest' 'plasma/kdecoration': '@same' +Options: + require-passing-tests-on: [ 'Linux', 'FreeBSD'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/CMakeLists.txt new/kde-gtk-config-5.26.0/CMakeLists.txt --- old/kde-gtk-config-5.25.5/CMakeLists.txt 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/CMakeLists.txt 2022-10-06 14:12:57.000000000 +0200 @@ -1,9 +1,9 @@ project(kde-gtk-config) -set(PROJECT_VERSION "5.25.5") +set(PROJECT_VERSION "5.26.0") cmake_minimum_required(VERSION 3.16) set(QT_MIN_VERSION "5.15.2") -set(KF5_MIN_VERSION "5.94") +set(KF5_MIN_VERSION "5.98.0") set(KDE_COMPILERSETTINGS_LEVEL "5.82") set(CMAKE_CXX_STANDARD 17) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/LICENSES/CC0-1.0.txt new/kde-gtk-config-5.26.0/LICENSES/CC0-1.0.txt --- old/kde-gtk-config-5.25.5/LICENSES/CC0-1.0.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/kde-gtk-config-5.26.0/LICENSES/CC0-1.0.txt 2022-10-06 14:12:57.000000000 +0200 @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/gtk3proxies/CMakeLists.txt new/kde-gtk-config-5.26.0/gtk3proxies/CMakeLists.txt --- old/kde-gtk-config-5.25.5/gtk3proxies/CMakeLists.txt 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/gtk3proxies/CMakeLists.txt 2022-10-06 14:12:57.000000000 +0200 @@ -7,4 +7,4 @@ target_link_libraries(gtk3_preview PkgConfig::GTK+3 PkgConfig::GLib2 PkgConfig::GObject X11::X11) install(TARGETS gtk3_preview RUNTIME DESTINATION "${KDE_INSTALL_LIBEXECDIR}") -install(FILES preview.ui DESTINATION ${DATA_INSTALL_DIR}/kcm-gtk-module/) +install(FILES preview.ui DESTINATION ${KDE_INSTALL_DATADIR}/kcm-gtk-module/) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/kded/configeditor.cpp new/kde-gtk-config-5.26.0/kded/configeditor.cpp --- old/kde-gtk-config-5.25.5/kded/configeditor.cpp 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/kded/configeditor.cpp 2022-10-06 14:12:57.000000000 +0200 @@ -165,27 +165,34 @@ void ConfigEditor::saveWindowDecorationsToAssets(const QStringList &windowDecorationsButtonsImages) { - QDir assetsFolder{QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QStringLiteral("/gtk-3.0/assets")}; + for (const auto >kVersionPath : gtkCssVersions) { + QDir assetsFolder{QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + gtkVersionPath + QStringLiteral("/assets")}; - if (!assetsFolder.exists()) { - assetsFolder.mkpath(QStringLiteral(".")); - } + if (!assetsFolder.exists()) { + assetsFolder.mkpath(QStringLiteral(".")); + } + for (const auto &buttonImagePath : windowDecorationsButtonsImages) { + const QString destination = assetsFolder.path() + '/' + QFileInfo(buttonImagePath).fileName(); + QFile(destination).remove(); + QFile(buttonImagePath).copy(buttonImagePath, destination); + } + } for (const auto &buttonImagePath : windowDecorationsButtonsImages) { - const QString destination = assetsFolder.path() + '/' + QFileInfo(buttonImagePath).fileName(); - QFile(destination).remove(); - QFile(buttonImagePath).rename(buttonImagePath, destination); + QFile(buttonImagePath).remove(); } } void ConfigEditor::addWindowDecorationsCssFile() { QFile windowDecorationsCss{QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("/themes/Breeze/window_decorations.css"))}; - QString windowDecorationsDestination{QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) - + QStringLiteral("/gtk-3.0/window_decorations.css")}; + for (const auto >kVersionPath : gtkCssVersions) { + QString windowDecorationsDestination{QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + gtkVersionPath + + QStringLiteral("/window_decorations.css")}; - QFile(windowDecorationsDestination).remove(); - windowDecorationsCss.copy(windowDecorationsDestination); + QFile(windowDecorationsDestination).remove(); + windowDecorationsCss.copy(windowDecorationsDestination); + } } void ConfigEditor::addGtkModule(const QString &moduleName) @@ -205,25 +212,27 @@ void ConfigEditor::addImportStatementsToGtkCssUserFile() { - QString gtkCssPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QStringLiteral("/gtk-3.0/gtk.css"); - QFile gtkCss(gtkCssPath); - - if (gtkCss.open(QIODevice::ReadWrite)) { - QByteArray gtkCssContents = gtkCss.readAll().trimmed(); - - static const QVector<QByteArray> importStatements{ - QByteArrayLiteral("\n@import 'colors.css';"), - }; - - for (const auto &statement : importStatements) { - if (!gtkCssContents.contains(statement.trimmed())) { - gtkCssContents.append(statement); + for (const auto >kVersionPath : gtkCssVersions) { + QString gtkCssPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + gtkVersionPath + QStringLiteral("/gtk.css"); + QFile gtkCss(gtkCssPath); + + if (gtkCss.open(QIODevice::ReadWrite)) { + QByteArray gtkCssContents = gtkCss.readAll().trimmed(); + + static const QVector<QByteArray> importStatements{ + QByteArrayLiteral("\n@import 'colors.css';"), + }; + + for (const auto &statement : importStatements) { + if (!gtkCssContents.contains(statement.trimmed())) { + gtkCssContents.append(statement); + } } - } - gtkCss.remove(); - gtkCss.open(QIODevice::WriteOnly | QIODevice::Text); - gtkCss.write(gtkCssContents); + gtkCss.remove(); + gtkCss.open(QIODevice::WriteOnly | QIODevice::Text); + gtkCss.write(gtkCssContents); + } } } @@ -231,20 +240,24 @@ { using SP = QStandardPaths; - QFile windowsDecorationsCss(SP::writableLocation(SP::GenericConfigLocation) + QStringLiteral("/gtk-3.0/window_decorations.css")); - windowsDecorationsCss.remove(); + for (const auto >kVersionPath : gtkCssVersions) { + QFile windowsDecorationsCss(SP::writableLocation(SP::GenericConfigLocation) + gtkVersionPath + QStringLiteral("/window_decorations.css")); + windowsDecorationsCss.remove(); + } } void ConfigEditor::modifyColorsCssFile(const QMap<QString, QColor> &colorsDefinitions) { - QString colorsCssPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QStringLiteral("/gtk-3.0/colors.css"); - QFile colorsCss(colorsCssPath); + for (const auto >kVersionPath : gtkCssVersions) { + QString colorsCssPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + gtkVersionPath + QStringLiteral("/colors.css"); + QFile colorsCss(colorsCssPath); - if (colorsCss.open(QIODevice::WriteOnly | QIODevice::Truncate)) { - QTextStream colorsCssStream(&colorsCss); + if (colorsCss.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + QTextStream colorsCssStream(&colorsCss); - for (auto it = colorsDefinitions.cbegin(); it != colorsDefinitions.cend(); it++) { - colorsCssStream << QStringLiteral("@define-color %1 %2;\n").arg(it.key(), it.value().name()); + for (auto it = colorsDefinitions.cbegin(); it != colorsDefinitions.cend(); it++) { + colorsCssStream << QStringLiteral("@define-color %1 %2;\n").arg(it.key(), it.value().name()); + } } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/kded/configeditor.h new/kde-gtk-config-5.26.0/kded/configeditor.h --- old/kde-gtk-config-5.25.5/kded/configeditor.h 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/kded/configeditor.h 2022-10-06 14:12:57.000000000 +0200 @@ -34,6 +34,8 @@ static auto gtk4ConfigValueSettingsIni = std::bind(gtkConfigValueSettingsIni, QStringLiteral("gtk-4.0"), _1); static auto gtk3ConfigValueSettingsIni = std::bind(gtkConfigValueSettingsIni, QStringLiteral("gtk-3.0"), _1); +static auto gtkCssVersions = {QStringLiteral("/gtk-3.0"), QStringLiteral("/gtk-4.0")}; + void setCustomClientSideDecorations(const QStringList &windowDecorationsButtonsImages); void disableCustomClientSideDecorations(); void setGtk3Colors(const QMap<QString, QColor> &colorsDefinitions); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/kded/gtkconfig.json new/kde-gtk-config-5.26.0/kded/gtkconfig.json --- old/kde-gtk-config-5.25.5/kded/gtkconfig.json 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/kded/gtkconfig.json 2022-10-06 14:12:57.000000000 +0200 @@ -83,9 +83,6 @@ "Name[x-test]": "xxGNOME/GTK Settings Synchronization Servicexx", "Name[zh_CN]": "GNOME/GTK ??????????????????", "Name[zh_TW]": "GNOME/GTK ??????????????????", - "ServiceTypes": [ - "KDEDModule" - ], "Version": "0.1" }, "X-KDE-Kded-autoload": true, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/kded/kwin_bridge/CMakeLists.txt new/kde-gtk-config-5.26.0/kded/kwin_bridge/CMakeLists.txt --- old/kde-gtk-config-5.25.5/kded/kwin_bridge/CMakeLists.txt 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/kded/kwin_bridge/CMakeLists.txt 2022-10-06 14:12:57.000000000 +0200 @@ -7,6 +7,7 @@ auroraedecorationpainter.cpp standarddecorationpainter.cpp ) +set_property(TARGET KWinBridge PROPERTY POSITION_INDEPENDENT_CODE ON) target_link_libraries(KWinBridge PUBLIC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/kded/kwin_bridge/dummydecorationbridge.cpp new/kde-gtk-config-5.26.0/kded/kwin_bridge/dummydecorationbridge.cpp --- old/kde-gtk-config-5.25.5/kded/kwin_bridge/dummydecorationbridge.cpp 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/kded/kwin_bridge/dummydecorationbridge.cpp 2022-10-06 14:12:57.000000000 +0200 @@ -13,7 +13,6 @@ #include <KDecoration2/Private/DecoratedClientPrivate> #include <KDecoration2/Private/DecorationSettingsPrivate> #include <KPluginFactory> -#include <KPluginLoader> #include <KPluginMetaData> #include <KSharedConfig> @@ -27,7 +26,6 @@ DummyDecorationBridge::DummyDecorationBridge(const QString &decorationTheme, QObject *parent) : DecorationBridge(parent) , m_decorationsConfigFileName() - , m_loader() , m_factory() , m_decoration() , m_client() @@ -45,14 +43,15 @@ m_decorationsConfigFileName = QStringLiteral("breezerc"); } - const QString pluginPath = windowDecorationPluginPath(decorationTheme); - m_loader = std::unique_ptr<KPluginLoader>(new KPluginLoader{pluginPath}); - m_factory = m_loader->factory(); - disableAnimations(); - QVariantMap args({{QStringLiteral("bridge"), QVariant::fromValue(this)}}); - m_decoration = m_factory->create<KDecoration2::Decoration>(m_factory, QVariantList({args})); + const QString pluginPath = windowDecorationPluginPath(decorationTheme); + m_pluginLoader.setFileName(pluginPath); + m_factory = qobject_cast<KPluginFactory *>(m_pluginLoader.instance()); + if (m_factory) { + const QVariantMap args({{QStringLiteral("bridge"), QVariant::fromValue(this)}}); + m_decoration = m_factory->create<KDecoration2::Decoration>(m_factory, QVariantList({args})); + } auto decorationSettings = QSharedPointer<KDecoration2::DecorationSettings>::create(this); m_decoration->setSettings(decorationSettings); @@ -67,7 +66,7 @@ DummyDecorationBridge::~DummyDecorationBridge() { - m_loader->unload(); + m_pluginLoader.unload(); } std::unique_ptr<KDecoration2::DecorationSettingsPrivate> DummyDecorationBridge::settings(KDecoration2::DecorationSettings *parent) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kde-gtk-config-5.25.5/kded/kwin_bridge/dummydecorationbridge.h new/kde-gtk-config-5.26.0/kded/kwin_bridge/dummydecorationbridge.h --- old/kde-gtk-config-5.25.5/kded/kwin_bridge/dummydecorationbridge.h 2022-09-06 14:03:31.000000000 +0200 +++ new/kde-gtk-config-5.26.0/kded/kwin_bridge/dummydecorationbridge.h 2022-10-06 14:12:57.000000000 +0200 @@ -6,16 +6,15 @@ #pragma once +#include <QPluginLoader> #include <QString> #include <KDecoration2/Decoration> #include <KDecoration2/Private/DecorationBridge> #include <kdecoration2/decorationdefines.h> -#include <memory> class KPluginFactory; -class KPluginLoader; namespace KDecoration2 { @@ -50,7 +49,7 @@ QString m_decorationsConfigFileName; double globalAnimationEntryValue; - std::unique_ptr<KPluginLoader> m_loader; + QPluginLoader m_pluginLoader; KPluginFactory *m_factory; KDecoration2::Decoration *m_decoration; KDecoration2::DecoratedClientPrivate *m_client;