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);
