Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-ksvg for openSUSE:Factory 
checked in at 2025-12-16 15:52:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-ksvg (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-ksvg.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-ksvg"

Tue Dec 16 15:52:02 2025 rev:24 rq:1322737 version:6.21.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-ksvg/kf6-ksvg.changes        2025-11-17 
12:18:49.742259374 +0100
+++ /work/SRC/openSUSE:Factory/.kf6-ksvg.new.1939/kf6-ksvg.changes      
2025-12-16 15:57:37.602295391 +0100
@@ -1,0 +2,39 @@
+Fri Dec 12 20:17:32 UTC 2025 - Christophe Marin <[email protected]>
+
+- Update to 6.21.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.21.0
+- Changes since 6.20.0:
+  * Update dependency version to 6.21.0
+  * Remove unused signal
+  * Simplify ImageSet config file handling
+  * Remove FallbackImageSet config handling
+  * Wrap useGlobal handling in deprecation macro
+  * Wrap ImageSet metadata handling in deprecation macro
+  * Drop unused variable
+  * Add test for ImageSet::filePath
+  * Add test for currentImageSetHasImage
+  * Rename imageSetChanged parameter
+  * Test ImageSet file selectors
+  * Drop iconImageSetMetadataPath
+  * Reduce scope of themeMetadataPath variable
+  * Remove KDirWatch leftovers
+  * Run clang-format
+  * [imageset] Preserve basePath when calling setImageName
+  * Add Alpine CI build
+  * Update version to 6.21.0
+  * Correct some typos in FrameSvg docs
+  * Clarify what FrameSvg insets are
+  * Clarify what FrameSvg margins are
+  * Add FrameSvg::insets()
+  * Add QMargins getters for margins in FrameSvg
+  * Fix deprecation syntax
+  * [imageset] Deprecate metadata
+  * [imageset] Deprecate setCacheLimit
+  * [imageset] Deprecate setUseGlobalSettings
+  * [imageset] Remove unused isDefault
+  * [imageset] Remove Plasma theme version handling
+  * Don't use QDir::separator
+
+-------------------------------------------------------------------

Old:
----
  ksvg-6.20.0.tar.xz
  ksvg-6.20.0.tar.xz.sig

New:
----
  ksvg-6.21.0.tar.xz
  ksvg-6.21.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kf6-ksvg.spec ++++++
--- /var/tmp/diff_new_pack.owuCSq/_old  2025-12-16 15:57:39.646381755 +0100
+++ /var/tmp/diff_new_pack.owuCSq/_new  2025-12-16 15:57:39.650381924 +0100
@@ -19,11 +19,11 @@
 %define qt6_version 6.8.0
 
 %define rname ksvg
-# Full KF6 version (e.g. 6.20.0)
+# Full KF6 version (e.g. 6.21.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_without released
 Name:           kf6-ksvg
-Version:        6.20.0
+Version:        6.21.0
 Release:        0
 Summary:        Components for handling SVGs
 License:        GPL-2.0-or-later


++++++ ksvg-6.20.0.tar.xz -> ksvg-6.21.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/.gitlab-ci.yml 
new/ksvg-6.21.0/.gitlab-ci.yml
--- old/ksvg-6.20.0/.gitlab-ci.yml      2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/.gitlab-ci.yml      2025-12-05 14:25:58.000000000 +0100
@@ -9,5 +9,6 @@
       - /gitlab-templates/freebsd-qt6.yml
       - /gitlab-templates/windows-qt6.yml
       - /gitlab-templates/android-qt6.yml
+      - /gitlab-templates/alpine-qt6.yml
       - /gitlab-templates/xml-lint.yml
       - /gitlab-templates/yaml-lint.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/CMakeLists.txt 
new/ksvg-6.21.0/CMakeLists.txt
--- old/ksvg-6.20.0/CMakeLists.txt      2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/CMakeLists.txt      2025-12-05 14:25:58.000000000 +0100
@@ -1,12 +1,12 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "6.20.0") # handled by release scripts
-set(KF_DEP_VERSION "6.20.0") # handled by release scripts
+set(KF_VERSION "6.21.0") # handled by release scripts
+set(KF_DEP_VERSION "6.21.0") # handled by release scripts
 project(KSvg VERSION ${KF_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 6.20.0  NO_MODULE)
+find_package(ECM 6.21.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/ksvg-6.20.0/autotests/CMakeLists.txt 
new/ksvg-6.21.0/autotests/CMakeLists.txt
--- old/ksvg-6.20.0/autotests/CMakeLists.txt    2025-11-07 20:03:21.000000000 
+0100
+++ new/ksvg-6.21.0/autotests/CMakeLists.txt    2025-12-05 14:25:58.000000000 
+0100
@@ -25,5 +25,6 @@
 
 KSVG_UNIT_TESTS(
     framesvgtest
+    imagesettest
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/autotests/imagesettest.cpp 
new/ksvg-6.21.0/autotests/imagesettest.cpp
--- old/ksvg-6.20.0/autotests/imagesettest.cpp  1970-01-01 01:00:00.000000000 
+0100
+++ new/ksvg-6.21.0/autotests/imagesettest.cpp  2025-12-05 14:25:58.000000000 
+0100
@@ -0,0 +1,114 @@
+/*
+ *  SPDX-FileCopyrightText: 2025 Nicolas Fella <[email protected]>
+ *
+ *  SPDX-License-Identifier: LGPL-2.0-or-later
+ */
+
+#include "imageset.h"
+
+#include <QDirIterator>
+#include <QSignalSpy>
+#include <QTest>
+
+using namespace Qt::Literals;
+
+class ImageSetTest : public QObject
+{
+    Q_OBJECT
+
+public Q_SLOTS:
+    void initTestCase();
+    void cleanupTestCase();
+
+private Q_SLOTS:
+    void testBasePath();
+    void testSelectors();
+    void testHasImage();
+    void testFilePath();
+
+private:
+    QDir m_themeDir;
+};
+
+void copyDirectory(const QString &srcDir, const QString &dstDir)
+{
+    QDir targetDir(dstDir);
+    QDirIterator it(srcDir, QDir::Filters(QDir::Files | QDir::Dirs | 
QDir::NoDotAndDotDot | QDir::Name), QDirIterator::Subdirectories);
+    while (it.hasNext()) {
+        it.next();
+        QString path = it.filePath();
+        QString relDestPath = path.last(it.filePath().length() - 
srcDir.length() - 1);
+        if (it.fileInfo().isDir()) {
+            QVERIFY(targetDir.mkpath(relDestPath));
+        } else {
+            QVERIFY(QFile::copy(path, dstDir % '/' % relDestPath));
+        }
+    }
+}
+
+void ImageSetTest::initTestCase()
+{
+    QStandardPaths::setTestModeEnabled(true);
+
+    m_themeDir = 
QDir(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) % 
'/' % "plasma");
+    m_themeDir.removeRecursively();
+
+    copyDirectory(QFINDTESTDATA("data/plasma"), m_themeDir.absolutePath());
+}
+
+void ImageSetTest::cleanupTestCase()
+{
+    m_themeDir.removeRecursively();
+}
+
+void ImageSetTest::testBasePath()
+{
+    KSvg::ImageSet set("testtheme", "plasma/desktoptheme");
+    QCOMPARE(set.imageSetName(), "testtheme");
+    QCOMPARE(set.basePath(), "plasma/desktoptheme/");
+
+    set.setImageSetName("test_old_metadata_format_theme");
+    QCOMPARE(set.imageSetName(), "test_old_metadata_format_theme");
+    QCOMPARE(set.basePath(), "plasma/desktoptheme/");
+}
+
+void ImageSetTest::testSelectors()
+{
+    KSvg::ImageSet set("testtheme", "plasma/desktoptheme");
+
+    
QVERIFY(set.imagePath(u"element"_s).endsWith(u"plasma/desktoptheme/testtheme/element.svg"));
+
+    QSignalSpy spy(&set, &KSvg::ImageSet::imageSetChanged);
+
+    set.setSelectors({u"opaque"_s});
+    QVERIFY(spy.wait());
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(spy[0][0], "testtheme");
+    
QVERIFY(set.imagePath(u"element"_s).endsWith(u"plasma/desktoptheme/testtheme/opaque/element.svg"));
+
+    set.setSelectors({});
+    QVERIFY(spy.wait());
+    QCOMPARE(spy.count(), 2);
+    QCOMPARE(spy[1][0], "testtheme");
+    
QVERIFY(set.imagePath(u"element"_s).endsWith(u"plasma/desktoptheme/testtheme/element.svg"));
+}
+
+void ImageSetTest::testHasImage()
+{
+    KSvg::ImageSet set("testtheme", "plasma/desktoptheme");
+
+    QVERIFY(set.currentImageSetHasImage(u"element"_s));
+    QVERIFY(!set.currentImageSetHasImage(u"banana"_s));
+}
+
+void ImageSetTest::testFilePath()
+{
+    KSvg::ImageSet set("testtheme", "plasma/desktoptheme");
+
+    
QVERIFY(set.filePath(u"plasmarc"_s).endsWith(u"plasma/desktoptheme/testtheme/plasmarc"));
+    QVERIFY(set.filePath(u"does_not_exist"_s).isEmpty());
+}
+
+QTEST_MAIN(ImageSetTest)
+
+#include "imagesettest.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ar/libksvg6.po 
new/ksvg-6.21.0/po/ar/libksvg6.po
--- old/ksvg-6.20.0/po/ar/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ar/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-02-12 12:10+0400\n"
 "Last-Translator: Zayed Al-Saidi <[email protected]>\n"
 "Language-Team: ar\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ast/libksvg6.po 
new/ksvg-6.21.0/po/ast/libksvg6.po
--- old/ksvg-6.20.0/po/ast/libksvg6.po  2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ast/libksvg6.po  2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-10-25 10:01+0200\n"
 "Last-Translator: Enol P. <[email protected]>\n"
 "Language-Team: \n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/bg/libksvg6.po 
new/ksvg-6.21.0/po/bg/libksvg6.po
--- old/ksvg-6.20.0/po/bg/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/bg/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-08-09 09:53+0200\n"
 "Last-Translator: Mincho Kondarev <[email protected]>\n"
 "Language-Team: \n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ca/libksvg6.po 
new/ksvg-6.21.0/po/ca/libksvg6.po
--- old/ksvg-6.20.0/po/ca/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ca/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-13 10:41+0200\n"
 "Last-Translator: Josep M. Ferrer <[email protected]>\n"
 "Language-Team: Catalan <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ca@valencia/libksvg6.po 
new/ksvg-6.21.0/po/ca@valencia/libksvg6.po
--- old/ksvg-6.20.0/po/ca@valencia/libksvg6.po  2025-11-07 20:03:21.000000000 
+0100
+++ new/ksvg-6.21.0/po/ca@valencia/libksvg6.po  2025-12-05 14:25:58.000000000 
+0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-13 10:41+0200\n"
 "Last-Translator: Josep M. Ferrer <[email protected]>\n"
 "Language-Team: Catalan <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/cs/libksvg6.po 
new/ksvg-6.21.0/po/cs/libksvg6.po
--- old/ksvg-6.20.0/po/cs/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/cs/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-08-07 17:01+0200\n"
 "Last-Translator: Vit Pelcak <[email protected]>\n"
 "Language-Team: Czech <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/de/libksvg6.po 
new/ksvg-6.21.0/po/de/libksvg6.po
--- old/ksvg-6.20.0/po/de/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/de/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: libksvg6\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-24 21:19+0200\n"
 "Last-Translator: Frederik Schwarzer <[email protected]>\n"
 "Language-Team: German <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/en_GB/libksvg6.po 
new/ksvg-6.21.0/po/en_GB/libksvg6.po
--- old/ksvg-6.20.0/po/en_GB/libksvg6.po        2025-11-07 20:03:21.000000000 
+0100
+++ new/ksvg-6.21.0/po/en_GB/libksvg6.po        2025-12-05 14:25:58.000000000 
+0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-05-20 19:22+0100\n"
 "Last-Translator: Steve Allewell <[email protected]>\n"
 "Language-Team: British English\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/eo/libksvg6.po 
new/ksvg-6.21.0/po/eo/libksvg6.po
--- old/ksvg-6.20.0/po/eo/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/eo/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-16 06:48+0100\n"
 "Last-Translator: Oliver Kellogg <[email protected]>\n"
 "Language-Team: Esperanto <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/es/libksvg6.po 
new/ksvg-6.21.0/po/es/libksvg6.po
--- old/ksvg-6.20.0/po/es/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/es/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: libksvg5\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-15 00:31+0200\n"
 "Last-Translator: Eloy Cuadra <[email protected]>\n"
 "Language-Team: Spanish <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/eu/libksvg6.po 
new/ksvg-6.21.0/po/eu/libksvg6.po
--- old/ksvg-6.20.0/po/eu/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/eu/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-15 08:51+0200\n"
 "Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
 "Language-Team: Basque <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/fi/libksvg6.po 
new/ksvg-6.21.0/po/fi/libksvg6.po
--- old/ksvg-6.20.0/po/fi/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/fi/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-24 21:33+0300\n"
 "Last-Translator: Tommi Nieminen <[email protected]>\n"
 "Language-Team: Finnish <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/fr/libksvg6.po 
new/ksvg-6.21.0/po/fr/libksvg6.po
--- old/ksvg-6.20.0/po/fr/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/fr/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-12-20 09:33+0100\n"
 "Last-Translator: Xavier Besnard <[email protected]>\n"
 "Language-Team: French <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/gl/libksvg6.po 
new/ksvg-6.21.0/po/gl/libksvg6.po
--- old/ksvg-6.20.0/po/gl/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/gl/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-29 07:52+0200\n"
 "Last-Translator: Adrián Chaves (Gallaecio) <[email protected]>\n"
 "Language-Team: Galician <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/he/libksvg6.po 
new/ksvg-6.21.0/po/he/libksvg6.po
--- old/ksvg-6.20.0/po/he/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/he/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-03-19 07:50+0200\n"
 "Last-Translator: Yaron Shahrabani <[email protected]>\n"
 "Language-Team: צוות התרגום של KDE ישראל\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/hi/libksvg6.po 
new/ksvg-6.21.0/po/hi/libksvg6.po
--- old/ksvg-6.20.0/po/hi/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/hi/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-12-15 17:36+0530\n"
 "Last-Translator: Kali <EMAIL@ADDRESS>\n"
 "Language-Team: Hindi <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/hu/libksvg6.po 
new/ksvg-6.21.0/po/hu/libksvg6.po
--- old/ksvg-6.20.0/po/hu/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/hu/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-01-07 22:36+0100\n"
 "Last-Translator: Kristof Kiszel <[email protected]>\n"
 "Language-Team: Hungarian <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ia/libksvg6.po 
new/ksvg-6.21.0/po/ia/libksvg6.po
--- old/ksvg-6.20.0/po/ia/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ia/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-08-13 15:13+0200\n"
 "Last-Translator: giovanni <[email protected]>\n"
 "Language-Team: Interlingua <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/is/libksvg6.po 
new/ksvg-6.21.0/po/is/libksvg6.po
--- old/ksvg-6.20.0/po/is/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/is/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-02-19 09:43+0000\n"
 "Last-Translator: Sveinn í Felli <[email protected]>\n"
 "Language-Team: Icelandic\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/it/libksvg6.po 
new/ksvg-6.21.0/po/it/libksvg6.po
--- old/ksvg-6.20.0/po/it/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/it/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-15 23:42+0200\n"
 "Last-Translator: Vincenzo Reale <[email protected]>\n"
 "Language-Team: Italian <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ja/libksvg6.po 
new/ksvg-6.21.0/po/ja/libksvg6.po
--- old/ksvg-6.20.0/po/ja/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ja/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-14 21:55-0700\n"
 "Last-Translator: Japanese KDE translation team <[email protected]>\n"
 "Language-Team: Japanese <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ka/libksvg6.po 
new/ksvg-6.21.0/po/ka/libksvg6.po
--- old/ksvg-6.20.0/po/ka/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ka/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-14 05:42+0200\n"
 "Last-Translator: Temuri Doghonadze <[email protected]>\n"
 "Language-Team: Georgian <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ko/libksvg6.po 
new/ksvg-6.21.0/po/ko/libksvg6.po
--- old/ksvg-6.20.0/po/ko/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ko/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-25 01:00+0200\n"
 "Last-Translator: Shinjo Park <[email protected]>\n"
 "Language-Team: Korean <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/lt/libksvg6.po 
new/ksvg-6.21.0/po/lt/libksvg6.po
--- old/ksvg-6.20.0/po/lt/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/lt/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-13 02:10+0000\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/nl/libksvg6.po 
new/ksvg-6.21.0/po/nl/libksvg6.po
--- old/ksvg-6.20.0/po/nl/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/nl/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-13 12:27+0200\n"
 "Last-Translator: Freek de Kruijf <[email protected]>\n"
 "Language-Team: \n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/nn/libksvg6.po 
new/ksvg-6.21.0/po/nn/libksvg6.po
--- old/ksvg-6.20.0/po/nn/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/nn/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-29 12:34+0200\n"
 "Last-Translator: Karl Ove Hufthammer <[email protected]>\n"
 "Language-Team: Norwegian Nynorsk <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/pl/libksvg6.po 
new/ksvg-6.21.0/po/pl/libksvg6.po
--- old/ksvg-6.20.0/po/pl/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/pl/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-09-24 08:17+0200\n"
 "Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
 "Language-Team: Polish <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/pt_BR/libksvg6.po 
new/ksvg-6.21.0/po/pt_BR/libksvg6.po
--- old/ksvg-6.20.0/po/pt_BR/libksvg6.po        2025-11-07 20:03:21.000000000 
+0100
+++ new/ksvg-6.21.0/po/pt_BR/libksvg6.po        2025-12-05 14:25:58.000000000 
+0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-25 10:06-0300\n"
 "Last-Translator: Luiz Fernando Ranghetti <[email protected]>\n"
 "Language-Team: Brazilian Portuguese <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ro/libksvg6.po 
new/ksvg-6.21.0/po/ro/libksvg6.po
--- old/ksvg-6.20.0/po/ro/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ro/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-02-18 14:48+0000\n"
 "Last-Translator: Sergiu Bivol <[email protected]>\n"
 "Language-Team: Romanian <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/ru/libksvg6.po 
new/ksvg-6.21.0/po/ru/libksvg6.po
--- old/ksvg-6.20.0/po/ru/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/ru/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-01-05 22:09+0300\n"
 "Last-Translator: Alexander Yavorsky <[email protected]>\n"
 "Language-Team: Russian <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/sa/libksvg6.po 
new/ksvg-6.21.0/po/sa/libksvg6.po
--- old/ksvg-6.20.0/po/sa/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/sa/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-12-24 20:39+0530\n"
 "Last-Translator: kali <[email protected]>\n"
 "Language-Team: Sanskrit <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/sk/libksvg6.po 
new/ksvg-6.21.0/po/sk/libksvg6.po
--- old/ksvg-6.20.0/po/sk/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/sk/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: libksvg6\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-12-09 09:08+0100\n"
 "Last-Translator: Roman Paholik <[email protected]>\n"
 "Language-Team: Slovak <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/sl/libksvg6.po 
new/ksvg-6.21.0/po/sl/libksvg6.po
--- old/ksvg-6.20.0/po/sl/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/sl/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-14 06:33+0200\n"
 "Last-Translator: Matjaž Jeran <[email protected]>\n"
 "Language-Team: Slovenian <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/sv/libksvg6.po 
new/ksvg-6.21.0/po/sv/libksvg6.po
--- old/ksvg-6.20.0/po/sv/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/sv/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-06-21 14:32+0200\n"
 "Last-Translator: Stefan Asserhäll <[email protected]>\n"
 "Language-Team: Swedish <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/tr/libksvg6.po 
new/ksvg-6.21.0/po/tr/libksvg6.po
--- old/ksvg-6.20.0/po/tr/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/tr/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-13 13:03+0300\n"
 "Last-Translator: Emir SARI <[email protected]>\n"
 "Language-Team: Turkish <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/uk/libksvg6.po 
new/ksvg-6.21.0/po/uk/libksvg6.po
--- old/ksvg-6.20.0/po/uk/libksvg6.po   2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/po/uk/libksvg6.po   2025-12-05 14:25:58.000000000 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: ksvg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2023-07-13 08:52+0300\n"
 "Last-Translator: Yuri Chornoivan <[email protected]>\n"
 "Language-Team: Ukrainian <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/po/zh_CN/libksvg6.po 
new/ksvg-6.21.0/po/zh_CN/libksvg6.po
--- old/ksvg-6.20.0/po/zh_CN/libksvg6.po        2025-11-07 20:03:21.000000000 
+0100
+++ new/ksvg-6.21.0/po/zh_CN/libksvg6.po        2025-12-05 14:25:58.000000000 
+0100
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: kdeorg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
-"POT-Creation-Date: 2023-07-13 02:10+0000\n"
+"POT-Creation-Date: 2025-11-17 11:49+0000\n"
 "PO-Revision-Date: 2024-04-22 15:58\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Simplified\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/CMakeLists.txt 
new/ksvg-6.21.0/src/ksvg/CMakeLists.txt
--- old/ksvg-6.20.0/src/ksvg/CMakeLists.txt     2025-11-07 20:03:21.000000000 
+0100
+++ new/ksvg-6.21.0/src/ksvg/CMakeLists.txt     2025-12-05 14:25:58.000000000 
+0100
@@ -39,7 +39,7 @@
     USE_VERSION_HEADER
     DEPRECATED_BASE_VERSION 0
     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
-    DEPRECATION_VERSIONS
+    DEPRECATION_VERSIONS 6.21
 )
 
 target_link_libraries(KF6Svg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/framesvg.cpp 
new/ksvg-6.21.0/src/ksvg/framesvg.cpp
--- old/ksvg-6.20.0/src/ksvg/framesvg.cpp       2025-11-07 20:03:21.000000000 
+0100
+++ new/ksvg-6.21.0/src/ksvg/framesvg.cpp       2025-12-05 14:25:58.000000000 
+0100
@@ -291,6 +291,15 @@
     bottom = d->frame->bottomMargin;
 }
 
+QMarginsF FrameSvg::margins() const
+{
+    if (!d->frame || d->frame->noBorderPadding) {
+        return QMarginsF();
+    } else {
+        return QMarginsF(d->frame->leftMargin, d->frame->topMargin, 
d->frame->rightMargin, d->frame->bottomMargin);
+    }
+}
+
 void FrameSvg::getFixedMargins(qreal &left, qreal &top, qreal &right, qreal 
&bottom) const
 {
     if (!d->frame || d->frame->noBorderPadding) {
@@ -304,6 +313,15 @@
     bottom = d->frame->fixedBottomMargin;
 }
 
+QMarginsF FrameSvg::fixedMargins() const
+{
+    if (!d->frame || d->frame->noBorderPadding) {
+        return QMarginsF();
+    } else {
+        return QMarginsF(d->frame->fixedLeftMargin, d->frame->fixedTopMargin, 
d->frame->fixedRightMargin, d->frame->fixedBottomMargin);
+    }
+}
+
 void FrameSvg::getInset(qreal &left, qreal &top, qreal &right, qreal &bottom) 
const
 {
     if (!d->frame || d->frame->noBorderPadding) {
@@ -317,6 +335,15 @@
     bottom = d->frame->insetBottomMargin;
 }
 
+QMarginsF FrameSvg::insets() const
+{
+    if (!d->frame || d->frame->noBorderPadding) {
+        return QMarginsF();
+    } else {
+        return QMarginsF(d->frame->insetLeftMargin, d->frame->insetTopMargin, 
d->frame->insetRightMargin, d->frame->insetBottomMargin);
+    }
+}
+
 QRectF FrameSvg::contentsRect() const
 {
     if (d->frame) {
@@ -444,7 +471,7 @@
     return 0;
 }
 
-//#define DEBUG_FRAMESVG_CACHE
+// #define DEBUG_FRAMESVG_CACHE
 FrameSvgPrivate::~FrameSvgPrivate() = default;
 
 QPixmap FrameSvgPrivate::alphaMask()
@@ -911,7 +938,7 @@
     // converting that to a QString temporary for the replace operation.
     // Additionally, we use a template parameter to provide us the compile-time
     // length of the literal so we don't need to calculate that.
-    auto createName = [&nameBuffer, offset]<std::size_t length>(const 
char16_t(&name)[length]) {
+    auto createName = [&nameBuffer, offset]<std::size_t length>(const char16_t 
(&name)[length]) {
         nameBuffer.replace(offset, length - 1, reinterpret_cast<const QChar 
*>(name), length);
         return QStringView(nameBuffer).mid(0, offset + length - 1);
     };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/framesvg.h 
new/ksvg-6.21.0/src/ksvg/framesvg.h
--- old/ksvg-6.20.0/src/ksvg/framesvg.h 2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/src/ksvg/framesvg.h 2025-12-05 14:25:58.000000000 +0100
@@ -180,7 +180,9 @@
      *
      * Note that \c 0 will be returned if the given margin is disabled.
      *
-     * If you don't care about the margin being on or off, use
+     * The margins specify the spacing between the contents and the SVG 
bounding rect.
+     *
+     * If you don't care about the border being on or off, use
      * fixedMarginSize() instead.
      *
      * \a edge the margin edge we want, top, bottom, left or right
@@ -193,7 +195,9 @@
      * \brief This is a convenience method that extracts the size of the four
      * margins and saves their size into the passed variables.
      *
-     * If you don't care about the margins being on or off, use
+     * The margins specify the spacing between the contents and the SVG 
bounding rect.
+     *
+     * If you don't care about the borders being on or off, use
      * getFixedMargins() instead.
      *
      * \a left left margin size
@@ -207,9 +211,21 @@
     Q_INVOKABLE void getMargins(qreal &left, qreal &top, qreal &right, qreal 
&bottom) const;
 
     /*!
+     * Returns the margin extents. The margins specify the spacing between the 
contents and the SVG
+     * bounding rect.
+     *
+     * If you don't care about the borders being on or off, use fixedMargins() 
instead.
+     *
+     * \since 6.21
+     */
+    QMarginsF margins() const;
+
+    /*!
      * \brief This method returns the margin size for the specified edge.
      *
-     * Compared to marginSize(), this does not depend on whether the margin is
+     * The margins specify the spacing between the contents and the SVG 
bounding rect.
+     *
+     * Compared to marginSize(), this does not depend on whether the border is
      * enabled or not.
      *
      * \a edge the margin edge we want, top, bottom, left or right
@@ -218,10 +234,20 @@
     Q_INVOKABLE qreal fixedMarginSize(const FrameSvg::MarginEdge edge) const;
 
     /*!
+     * Returns the margin extents. The margins specify the spacing between the 
contents and the SVG
+     * bounding rect. Compared to margins(), this does not depend on whether a 
border is enabled or not.
+     *
+     * \since 6.21
+     */
+    QMarginsF fixedMargins() const;
+
+    /*!
      * \brief This is a convenience method that extracts the size of the four
      * margins and saves their size into the passed variables.
      *
-     * Compared to getMargins(), this doesn't depend on whether the margins are
+     * The margins specify the spacing between the contents and the SVG 
bounding rect.
+     *
+     * Compared to getMargins(), this doesn't depend on whether the borders are
      * enabled or not.
      *
      * \a left left margin size
@@ -237,6 +263,9 @@
     /*!
      * \brief This method returns the insets margin size for the specified 
edge.
      *
+     * The insets specify the spacing between the borders and the SVG bounding 
rect. For example,
+     * that space may include things such as drop shadows.
+     *
      * \a edge the margin edge we want, top, bottom, left or right
      *
      * Returns the margin size
@@ -248,6 +277,9 @@
      * \brief This is a convenience method that extracts the size of the four
      * inset margins and saves their size into the passed variables.
      *
+     * The insets specify the spacing between the borders and the SVG bounding 
rect. For example,
+     * that space may include things such as drop shadows.
+     *
      * \a left left margin size
      *
      * \a top top margin size
@@ -260,6 +292,14 @@
     Q_INVOKABLE void getInset(qreal &left, qreal &top, qreal &right, qreal 
&bottom) const;
 
     /*!
+     * Returns the inset extents. The insets specify the spacing between the 
borders and the SVG
+     * bounding rect. For example, that space may include things such as drop 
shadows.
+     *
+     * \since 6.21
+     */
+    QMarginsF insets() const;
+
+    /*!
      * \brief This method returns the rectangle of the center element, taking
      * the margins into account.
      */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/imageset.cpp 
new/ksvg-6.21.0/src/ksvg/imageset.cpp
--- old/ksvg-6.20.0/src/ksvg/imageset.cpp       2025-11-07 20:03:21.000000000 
+0100
+++ new/ksvg-6.21.0/src/ksvg/imageset.cpp       2025-12-05 14:25:58.000000000 
+0100
@@ -19,7 +19,6 @@
 #include <QTimer>
 
 #include <KConfigGroup>
-#include <KDirWatch>
 #include <KImageCache>
 
 #include "debug_p.h"
@@ -30,7 +29,7 @@
     : QObject(parent)
 {
     if (!ImageSetPrivate::globalImageSet) {
-        ImageSetPrivate::globalImageSet = new ImageSetPrivate;
+        ImageSetPrivate::globalImageSet = new ImageSetPrivate(QString());
         if (QCoreApplication::instance()) {
             connect(QCoreApplication::instance(), 
&QCoreApplication::aboutToQuit, ImageSetPrivate::globalImageSet, 
&ImageSetPrivate::onAppExitCleanup);
         }
@@ -46,7 +45,7 @@
 {
     auto &priv = ImageSetPrivate::themes[imageSetName];
     if (!priv) {
-        priv = new ImageSetPrivate;
+        priv = new ImageSetPrivate(basePath);
         if (QCoreApplication::instance()) {
             connect(QCoreApplication::instance(), 
&QCoreApplication::aboutToQuit, priv, &ImageSetPrivate::onAppExitCleanup);
         }
@@ -60,13 +59,12 @@
     d->cacheImageSet = false;
     if (!basePath.isEmpty()) {
         d->basePath = basePath;
-        if (!d->basePath.endsWith(QDir::separator())) {
-            d->basePath += QDir::separator();
+        if (!d->basePath.endsWith(u'/')) {
+            d->basePath += u'/';
         }
     }
     d->setImageSetName(imageSetName, false);
     d->cacheImageSet = useCache;
-    d->fixedName = true;
     connect(d, &ImageSetPrivate::imageSetChanged, this, 
&ImageSet::imageSetChanged);
 }
 
@@ -93,8 +91,8 @@
     }
 
     d->basePath = basePath;
-    if (!d->basePath.endsWith(QDir::separator())) {
-        d->basePath += QDir::separator();
+    if (!d->basePath.endsWith(u'/')) {
+        d->basePath += u'/';
     }
 
     // Don't use scheduleImageSetChangeNotification as we want things 
happening immediately there,
@@ -130,6 +128,8 @@
     }
 
     if (d != ImageSetPrivate::globalImageSet) {
+        const QString basePath = d->basePath;
+
         disconnect(QCoreApplication::instance(), nullptr, d, nullptr);
         if (!d->ref.deref()) {
             delete ImageSetPrivate::themes.take(d->imageSetName);
@@ -137,7 +137,7 @@
 
         auto &priv = ImageSetPrivate::themes[imageSetName];
         if (!priv) {
-            priv = new ImageSetPrivate;
+            priv = new ImageSetPrivate(basePath);
             if (QCoreApplication::instance()) {
                 connect(QCoreApplication::instance(), 
&QCoreApplication::aboutToQuit, priv, &ImageSetPrivate::onAppExitCleanup);
             }
@@ -230,6 +230,7 @@
     return path.contains(d->basePath % d->imageSetName);
 }
 
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
 void ImageSet::setUseGlobalSettings(bool useGlobal)
 {
     if (d->useGlobal == useGlobal) {
@@ -240,24 +241,30 @@
     d->cfg = KConfigGroup();
     d->imageSetName.clear();
 }
+#endif
 
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
 bool ImageSet::useGlobalSettings() const
 {
     return d->useGlobal;
 }
+#endif
 
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
 void ImageSet::setCacheLimit(int kbytes)
 {
     d->cacheSize = kbytes;
     delete d->pixmapCache;
     d->pixmapCache = nullptr;
 }
+#endif
 
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
 KPluginMetaData ImageSet::metadata() const
 {
     return d->pluginMetaData;
 }
-
+#endif
 }
 
 #include "moc_imageset.cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/imageset.h 
new/ksvg-6.21.0/src/ksvg/imageset.h
--- old/ksvg-6.20.0/src/ksvg/imageset.h 2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/src/ksvg/imageset.h 2025-12-05 14:25:58.000000000 +0100
@@ -52,10 +52,13 @@
      */
     Q_PROPERTY(QString basePath READ basePath WRITE setBasePath NOTIFY 
imageSetChanged)
 
+#if KSVG_ENABLE_DEPRECATED_SINCE(6, 21)
     /*!
      * \property KSvg::ImageSet::useGlobalSettings
+     * \deprecated[6.21] Not used.
      */
     Q_PROPERTY(bool useGlobalSettings READ useGlobalSettings NOTIFY 
imageSetChanged)
+#endif
 
 public:
     /*!
@@ -155,21 +158,32 @@
      */
     bool currentImageSetHasImage(const QString &name) const;
 
+#if KSVG_ENABLE_DEPRECATED_SINCE(6, 21)
     /*!
      * \brief This method sets whether the theme should follow the global
      * settings or use application-specific settings.
      *
      * \a useGlobal pass in true to follow the global settings
+     *
+     * \deprecated[6.20] Not used
      */
+    KSVG_DEPRECATED_VERSION(6, 21, "Not used")
     void setUseGlobalSettings(bool useGlobal);
+#endif
 
+#if KSVG_ENABLE_DEPRECATED_SINCE(6, 21)
     /*!
      * \brief This method returns whether the global settings are followed.
      *
      * If application-specific settings are being used, it returns \c false.
+     *
+     * \deprecated[6.21] Not used
      */
+    KSVG_DEPRECATED_VERSION(6, 21, "Not used")
     bool useGlobalSettings() const;
+#endif
 
+#if KSVG_ENABLE_DEPRECATED_SINCE(6, 21)
     /*!
      * \brief This method sets the maximum size of the cache (in kilobytes).
      *
@@ -178,16 +192,25 @@
      *
      * Note that the cleanup might not be done immediately, so the cache might
      * temporarily (for a few seconds) grow bigger than the limit.
+     *
+     * \deprecated[6.21] Not used
      **/
+    KSVG_DEPRECATED_VERSION(6, 21, "Not used")
     void setCacheLimit(int kbytes);
+#endif
 
+#if KSVG_ENABLE_DEPRECATED_SINCE(6, 21)
     /*!
      * \brief This method returns the plugin metadata for this theme.
      *
      * Metadata contains information such as name, description, author, 
website,
      * and url.
+     *
+     * \deprecated[6.21] Not used
      */
+    KSVG_DEPRECATED_VERSION(6, 21, "Not used")
     KPluginMetaData metadata() const;
+#endif
 
 Q_SIGNALS:
     /*!
@@ -200,7 +223,7 @@
      * and respond appropriately to imageSetChanged() internally, emitting
      * Svg::repaintNeeded() at an appropriate time.
      */
-    void imageSetChanged(const QString &basePath);
+    void imageSetChanged(const QString &imageSetName);
 
     /*!
      * \brief This signal is emitted when the user changes the base path of the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/private/imageset_p.cpp 
new/ksvg-6.21.0/src/ksvg/private/imageset_p.cpp
--- old/ksvg-6.20.0/src/ksvg/private/imageset_p.cpp     2025-11-07 
20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/src/ksvg/private/imageset_p.cpp     2025-12-05 
14:25:58.000000000 +0100
@@ -20,7 +20,6 @@
 #include <QMetaEnum>
 
 #include <KColorUtils>
-#include <KDirWatch>
 #include <KSharedConfig>
 #include <kpluginmetadata.h>
 
@@ -38,17 +37,18 @@
 QHash<QString, ImageSetPrivate *> ImageSetPrivate::themes = QHash<QString, 
ImageSetPrivate *>();
 using QSP = QStandardPaths;
 
-KSharedConfig::Ptr configForImageSet(const QString &basePath, const QString 
&theme)
+QString configFileForImageSet(const QString &basePath, const QString &theme)
 {
     const QString baseName = basePath % theme;
     QString configPath = QSP::locate(QSP::GenericDataLocation, baseName + 
QLatin1String("/config"));
     if (!configPath.isEmpty()) {
-        return KSharedConfig::openConfig(configPath, KConfig::SimpleConfig);
+        return configPath;
     }
     QString metadataPath = QSP::locate(QSP::GenericDataLocation, baseName + 
QLatin1String("/metadata.desktop"));
-    return KSharedConfig::openConfig(metadataPath, KConfig::SimpleConfig);
+    return metadataPath;
 }
 
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
 KPluginMetaData metaDataForImageSet(const QString &basePath, const QString 
&theme)
 {
     QString packageBasePath = basePath % theme;
@@ -71,16 +71,19 @@
         for (const QString &key : cg.keyList()) {
             obj[key] = cg.readEntry(key);
         }
-        qWarning(LOG_KSVG) << "The theme" << theme << "uses the legacy 
metadata.desktop. Consider contacting the author and asking them update it to 
use the newer JSON format.";
+        qWarning(LOG_KSVG) << "The theme" << theme
+                           << "uses the legacy metadata.desktop. Consider 
contacting the author and asking them update it to use the newer JSON format.";
         return KPluginMetaData(obj, packageBasePath + 
QLatin1String("/metadata.desktop"));
     } else {
         qCWarning(LOG_KSVG) << "Could not locate metadata for theme" << theme;
         return {};
     }
 }
+#endif
 
-ImageSetPrivate::ImageSetPrivate(QObject *parent)
+ImageSetPrivate::ImageSetPrivate(const QString &_basePath, QObject *parent)
     : QObject(parent)
+    , basePath(_basePath)
     , colorScheme(QPalette::Active, KColorScheme::Window, 
KSharedConfigPtr(nullptr))
     , selectionColorScheme(QPalette::Active, KColorScheme::Selection, 
KSharedConfigPtr(nullptr))
     , buttonColorScheme(QPalette::Active, KColorScheme::Button, 
KSharedConfigPtr(nullptr))
@@ -91,26 +94,26 @@
     , pixmapCache(nullptr)
     , cacheSize(DEFAULT_CACHE_SIZE)
     , cachesToDiscard(NoCache)
-    , isDefault(true)
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
     , useGlobal(true)
+#endif
     , cacheImageSet(true)
-    , fixedName(false)
-    , apiMajor(1)
-    , apiMinor(0)
-    , apiRevision(0)
-{
-    const QString org = QCoreApplication::organizationName();
-    if (!org.isEmpty()) {
-        basePath += u'/' + org;
-    }
-    const QString appName = QCoreApplication::applicationName();
-    if (!appName.isEmpty()) {
-        basePath += u'/' + appName;
-    }
+{
     if (basePath.isEmpty()) {
-        basePath = QStringLiteral("ksvg");
+        const QString org = QCoreApplication::organizationName();
+        if (!org.isEmpty()) {
+            basePath += u'/' + org;
+        }
+        const QString appName = QCoreApplication::applicationName();
+        if (!appName.isEmpty()) {
+            basePath += u'/' + appName;
+        }
+        if (basePath.isEmpty()) {
+            basePath = QStringLiteral("ksvg");
+        }
+        basePath += u"/svgtheme/";
     }
-    basePath += u"/svgtheme/";
+
     pixmapSaveTimer = new QTimer(this);
     pixmapSaveTimer->setSingleShot(true);
     pixmapSaveTimer->setInterval(600);
@@ -123,9 +126,9 @@
 
     QCoreApplication::instance()->installEventFilter(this);
 
-    #if defined(Q_OS_LINUX)
+#if defined(Q_OS_LINUX)
     struct sysinfo x;
-    if (sysinfo(&x) == 0)  {
+    if (sysinfo(&x) == 0) {
         bootTime = QDateTime::currentSecsSinceEpoch() - x.uptime;
         qCDebug(LOG_KSVG) << "ImageSetPrivate: Using boot time value" << 
bootTime;
     } else {
@@ -133,7 +136,7 @@
         bootTime = QDateTime::currentSecsSinceEpoch();
         qCWarning(LOG_KSVG) << "ImageSetPrivate: Failed to get uptime from 
sysinfo. Using current time as boot time" << bootTime;
     }
-    #endif
+#endif
 }
 
 ImageSetPrivate::~ImageSetPrivate()
@@ -155,11 +158,7 @@
         // clear any cached values from the previous theme cache
         themeVersion.clear();
 
-        if (!themeMetadataPath.isEmpty()) {
-            KDirWatch::self()->removeFile(themeMetadataPath);
-        }
-
-        themeMetadataPath = configForImageSet(basePath, imageSetName)->name();
+        const QString themeMetadataPath = configFileForImageSet(basePath, 
imageSetName);
         const QString cacheFileBase = cacheFile + QLatin1String("*.kcache");
 
         QString currentCacheFileName;
@@ -202,10 +201,8 @@
             if (!cacheFilePath.isEmpty()) {
                 const QFileInfo cacheFileInfo(cacheFilePath);
                 const QFileInfo metadataFileInfo(themeMetadataPath);
-                const QFileInfo 
iconImageSetMetadataFileInfo(iconImageSetMetadataPath);
 
-                cachesTooOld = 
(cacheFileInfo.lastModified().toSecsSinceEpoch() < 
metadataFileInfo.lastModified().toSecsSinceEpoch())
-                    || (cacheFileInfo.lastModified().toSecsSinceEpoch() < 
iconImageSetMetadataFileInfo.lastModified().toSecsSinceEpoch());
+                cachesTooOld = 
(cacheFileInfo.lastModified().toSecsSinceEpoch() < 
metadataFileInfo.lastModified().toSecsSinceEpoch());
             }
         }
 
@@ -324,7 +321,6 @@
     headerColorScheme = KColorScheme(QPalette::Active, KColorScheme::Header, 
colors);
     tooltipColorScheme = KColorScheme(QPalette::Active, KColorScheme::Tooltip, 
colors);
     scheduleImageSetChangeNotification(PixmapCache | SvgElementsCache);
-    Q_EMIT applicationPaletteChange();
 }
 
 void ImageSetPrivate::scheduleImageSetChangeNotification(CacheTypes caches)
@@ -620,19 +616,19 @@
         qCDebug(LOG_KSVG) << "ImageSetPrivate::findInCache: lastModified > 
cacheLastModifiedTime for" << key;
         return false;
     }
-    #if defined(Q_OS_LINUX)
+#if defined(Q_OS_LINUX)
     // If the timestamp is the UNIX epoch (0)  then we compare against the 
boot time instead.
     // This is notably the case on ostree based systems such as Fedora Kinoite.
     if (lastModified == 0 && bootTime > cacheLastModifiedTime) {
         qCDebug(LOG_KSVG) << "ImageSetPrivate::findInCache: lastModified == 0 
&& bootTime > cacheLastModifiedTime for" << key;
         return false;
     }
-    #else
+#else
     if (lastModified == 0) {
         qCWarning(LOG_KSVG) << "findInCache with a lastModified timestamp of 0 
is deprecated";
         return false;
     }
-    #endif
+#endif
 
     qCDebug(LOG_KSVG) << "ImageSetPrivate::findInCache: using cache for" << 
key;
     const QString id = keysToCache.value(key);
@@ -721,43 +717,11 @@
     headerColorScheme = KColorScheme(QPalette::Active, KColorScheme::Header, 
colors);
     tooltipColorScheme = KColorScheme(QPalette::Active, KColorScheme::Tooltip, 
colors);
 
-    pluginMetaData = metaDataForImageSet(basePath, theme);
-    KSharedConfigPtr metadata = configForImageSet(basePath, theme);
-
-    KConfigGroup cg(metadata, QStringLiteral("Settings"));
-    QString fallback = cg.readEntry("FallbackImageSet", QString());
-
-    fallbackImageSets.clear();
-    while (!fallback.isEmpty() && !fallbackImageSets.contains(fallback)) {
-        fallbackImageSets.append(fallback);
-
-        KSharedConfigPtr metadata = configForImageSet(basePath, fallback);
-        KConfigGroup cg(metadata, QStringLiteral("Settings"));
-        fallback = cg.readEntry("FallbackImageSet", QString());
-    }
-
-    if 
(!fallbackImageSets.contains(QLatin1String(ImageSetPrivate::defaultImageSet))) {
-        
fallbackImageSets.append(QLatin1String(ImageSetPrivate::defaultImageSet));
-    }
+    fallbackImageSets = {QLatin1String(ImageSetPrivate::defaultImageSet)};
 
-    // Check for what Plasma version the theme has been done
-    // There are some behavioral differences between KDE4 Plasma and Plasma 5
-    const QString apiVersion = 
pluginMetaData.value(QStringLiteral("X-Plasma-API"));
-    apiMajor = 1;
-    apiMinor = 0;
-    apiRevision = 0;
-    if (!apiVersion.isEmpty()) {
-        const QList<QStringView> parts = 
QStringView(apiVersion).split(QLatin1Char('.'));
-        if (!parts.isEmpty()) {
-            apiMajor = parts.value(0).toInt();
-        }
-        if (parts.count() > 1) {
-            apiMinor = parts.value(1).toInt();
-        }
-        if (parts.count() > 2) {
-            apiRevision = parts.value(2).toInt();
-        }
-    }
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
+    pluginMetaData = metaDataForImageSet(basePath, theme);
+#endif
 
     if (emitChanged) {
         scheduleImageSetChangeNotification(PixmapCache | SvgElementsCache);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/private/imageset_p.h 
new/ksvg-6.21.0/src/ksvg/private/imageset_p.h
--- old/ksvg-6.20.0/src/ksvg/private/imageset_p.h       2025-11-07 
20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/src/ksvg/private/imageset_p.h       2025-12-05 
14:25:58.000000000 +0100
@@ -38,7 +38,7 @@
     Q_OBJECT
 
 public:
-    explicit ImageSetPrivate(QObject *parent = nullptr);
+    explicit ImageSetPrivate(const QString &basePath, QObject *parent = 
nullptr);
     ~ImageSetPrivate() override;
 
     QString imagePath(const QString &theme, const QString &type, const QString 
&image);
@@ -113,7 +113,6 @@
 
 Q_SIGNALS:
     void imageSetChanged(const QString &imageSetName);
-    void applicationPaletteChange();
 
 public:
     bool eventFilter(QObject *watched, QEvent *event) override;
@@ -127,7 +126,9 @@
 
     QString imageSetName = QStringLiteral("default");
     QString basePath;
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
     KPluginMetaData pluginMetaData;
+#endif
     QList<QString> fallbackImageSets;
     KSharedConfigPtr colors;
     KColorScheme colorScheme;
@@ -152,24 +153,18 @@
     unsigned cacheSize;
     CacheTypes cachesToDiscard;
     QString themeVersion;
-    QString themeMetadataPath;
-    QString iconImageSetMetadataPath;
 
 #if defined(Q_OS_LINUX)
     // Store boot time to be able to compare it to the lastModifiedTime when 
the timestamp
     // of files is the UNIX epoch.
     time_t bootTime = 0;
-    #endif
+#endif
 
-    bool isDefault : 1;
+#if KSVG_BUILD_DEPRECATED_SINCE(6, 21)
     bool useGlobal : 1;
-    bool cacheImageSet : 1;
-    bool fixedName : 1;
+#endif
 
-    // Version number of Plasma the ImageSet has been designed for
-    int apiMajor;
-    int apiMinor;
-    int apiRevision;
+    bool cacheImageSet : 1;
 };
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/svg.cpp 
new/ksvg-6.21.0/src/ksvg/svg.cpp
--- old/ksvg-6.20.0/src/ksvg/svg.cpp    2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/src/ksvg/svg.cpp    2025-12-05 14:25:58.000000000 +0100
@@ -664,8 +664,7 @@
     // If the KSVG lives on the main thread (the majority case) share a 
renderer
     // For other uses we should not as QSvgRenderer is not thread safe.
     // We cannot compare the current thread as this might be hit from the 
render thread in updatePaintNode for KSVG objects living on the main thread
-    if (q->thread() == qGuiApp->thread())
-    {
+    if (q->thread() == qGuiApp->thread()) {
         std::shared_lock lock(s_renderersLock);
         QHash<QString, SharedSvgRenderer::Ptr>::const_iterator it = 
s_renderers.constFind(styleCrc + path);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.20.0/src/ksvg/svg.h 
new/ksvg-6.21.0/src/ksvg/svg.h
--- old/ksvg-6.20.0/src/ksvg/svg.h      2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/src/ksvg/svg.h      2025-12-05 14:25:58.000000000 +0100
@@ -111,7 +111,15 @@
      * \value Complementary
      * \value Header
      */
-    enum ColorSet { View, Window, Button, Selection, Tooltip, Complementary, 
Header };
+    enum ColorSet {
+        View,
+        Window,
+        Button,
+        Selection,
+        Tooltip,
+        Complementary,
+        Header
+    };
     Q_ENUM(ColorSet)
 
     /*!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ksvg-6.20.0/src/tools/split-plasma-svgs/split-plasma-svgs.cpp 
new/ksvg-6.21.0/src/tools/split-plasma-svgs/split-plasma-svgs.cpp
--- old/ksvg-6.20.0/src/tools/split-plasma-svgs/split-plasma-svgs.cpp   
2025-11-07 20:03:21.000000000 +0100
+++ new/ksvg-6.21.0/src/tools/split-plasma-svgs/split-plasma-svgs.cpp   
2025-12-05 14:25:58.000000000 +0100
@@ -22,11 +22,23 @@
 static QSvgRenderer s_renderer;
 
 // https://developer.mozilla.org/en-US/docs/Web/SVG/Element#renderable_elements
-static const QStringList s_renderableElements = {
-    "a"_L1, "circle"_L1, "ellipse"_L1, "foreignObject"_L1, "g"_L1, "image"_L1,
-    "line"_L1, "path"_L1, "polygon"_L1, "polyline"_L1, "rect"_L1, // excluding 
<svg>
-    "switch"_L1, "symbol"_L1, "text"_L1, "textPath"_L1, "tspan"_L1, "use"_L1
-};
+static const QStringList s_renderableElements = {"a"_L1,
+                                                 "circle"_L1,
+                                                 "ellipse"_L1,
+                                                 "foreignObject"_L1,
+                                                 "g"_L1,
+                                                 "image"_L1,
+                                                 "line"_L1,
+                                                 "path"_L1,
+                                                 "polygon"_L1,
+                                                 "polyline"_L1,
+                                                 "rect"_L1, // excluding <svg>
+                                                 "switch"_L1,
+                                                 "symbol"_L1,
+                                                 "text"_L1,
+                                                 "textPath"_L1,
+                                                 "tspan"_L1,
+                                                 "use"_L1};
 
 QString joinedStrings(const QStringList &strings)
 {
@@ -181,15 +193,20 @@
 {
     QCoreApplication app(argc, argv);
 
-    KAboutData aboutData(app.applicationName(), app.applicationName(), 
"1.0"_L1,
+    KAboutData aboutData(app.applicationName(),
+                         app.applicationName(),
+                         "1.0"_L1,
                          "Splits Plasma/KSVG SVGs into individual SVGs"_L1,
-                         KAboutLicense::LGPL_V2, "2023 Noah Davis"_L1);
+                         KAboutLicense::LGPL_V2,
+                         "2023 Noah Davis"_L1);
     aboutData.addAuthor("Noah Davis"_L1, {}, "[email protected]"_L1);
     KAboutData::setApplicationData(aboutData);
 
     QCommandLineParser commandLineParser;
     commandLineParser.addPositionalArgument("inputs"_L1, "Input files 
(separated by spaces)"_L1, "inputs..."_L1);
-    commandLineParser.addPositionalArgument("output"_L1, "Output folder 
(optional, must exist). The default output folder is the current working 
directory."_L1, "[output]"_L1);
+    commandLineParser.addPositionalArgument("output"_L1,
+                                            "Output folder (optional, must 
exist). The default output folder is the current working directory."_L1,
+                                            "[output]"_L1);
     aboutData.setupCommandLine(&commandLineParser);
 
     commandLineParser.process(app);

Reply via email to