diff options
Diffstat (limited to 'kde-frameworks/kiconthemes/files/kiconthemes-5.88.0-fix-icon-preference.patch')
-rw-r--r-- | kde-frameworks/kiconthemes/files/kiconthemes-5.88.0-fix-icon-preference.patch | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/kde-frameworks/kiconthemes/files/kiconthemes-5.88.0-fix-icon-preference.patch b/kde-frameworks/kiconthemes/files/kiconthemes-5.88.0-fix-icon-preference.patch deleted file mode 100644 index e8b48b468323..000000000000 --- a/kde-frameworks/kiconthemes/files/kiconthemes-5.88.0-fix-icon-preference.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 13181b03eac3c85f0649d5399d8c3037c388928c Mon Sep 17 00:00:00 2001 -From: Jan Blackquill <uhhadd@gmail.com> -Date: Thu, 25 Nov 2021 14:51:06 -0500 -Subject: [PATCH] KIconLoader: prefer icons from current theme before falling - back to other themes - -BUG: 445804 ---- - autotests/kiconloader_unittest.cpp | 25 ++++++++++++++++++++++ - src/kiconloader.cpp | 34 ++++++------------------------ - 2 files changed, 32 insertions(+), 27 deletions(-) - -diff --git a/autotests/kiconloader_unittest.cpp b/autotests/kiconloader_unittest.cpp -index 813215d..c232111 100644 ---- a/autotests/kiconloader_unittest.cpp -+++ b/autotests/kiconloader_unittest.cpp -@@ -112,6 +112,12 @@ private Q_SLOTS: - QVERIFY(QFile::copy(QStringLiteral(":/test-22x22.png"), testIconsDir.filePath(QStringLiteral("breeze/22x22/mimetypes/unknown.png")))); - QVERIFY(QFile::copy(QStringLiteral(":/coloredsvgicon.svg"), testIconsDir.filePath(QStringLiteral("breeze/22x22/apps/coloredsvgicon.svg")))); - -+ // prepare some icons for our actions test -+ // when querying breeze for 'one-two', we expect -+ // 'one' from breeze instead of oxygen's 'one-two'. -+ QVERIFY(QFile::copy(QStringLiteral(":/test-22x22.png"), testIconsDir.filePath(QStringLiteral("oxygen/22x22/actions/one-two.png")))); -+ QVERIFY(QFile::copy(QStringLiteral(":/test-22x22.png"), testIconsDir.filePath(QStringLiteral("breeze/22x22/actions/one.png")))); -+ - QVERIFY(QFile::setPermissions(breezeThemeFile, QFileDevice::ReadOwner | QFileDevice::WriteOwner)); - KConfig configFile(breezeThemeFile); - KConfigGroup iconThemeGroup = configFile.group("Icon Theme"); -@@ -332,6 +338,25 @@ private Q_SLOTS: - QVERIFY(QFile::exists(unknownPath)); - } - -+ void testCorrectFallback() -+ { -+ // we want to prefer icons from the same theme -+ -+ // so if we have something like: -+ /* -+ oxygen: -+ one-two -+ -+ breeze: -+ one -+ */ -+ // and we ask for 'one-two', we expect to see 'one' from breeze instead -+ // of 'one-two' from oxygen. -+ QString path; -+ KIconLoader::global()->loadIcon(QStringLiteral("one-two"), KIconLoader::Desktop, 24, KIconLoader::DefaultState, QStringList(), &path); -+ QVERIFY(path.contains("breeze/22x22/actions")); -+ } -+ - void testPathStore() - { - QString path; -diff --git a/src/kiconloader.cpp b/src/kiconloader.cpp -index 4d4181d..8a644d4 100644 ---- a/src/kiconloader.cpp -+++ b/src/kiconloader.cpp -@@ -1021,12 +1021,7 @@ QString KIconLoaderPrivate::findMatchingIcon(const QString &name, int size, qrea - { - const_cast<KIconLoaderPrivate *>(this)->initIconThemes(); - -- // Do two passes through themeNodes. -- // -- // The first pass looks for an exact match in each themeNode one after the other. -- // If one is found and it is an app icon then return that icon. -- // -- // In the next pass (assuming the first pass failed), it looks for -+ // This looks for the exact match and its - // generic fallbacks in each themeNode one after the other. - - // In theory we should only do this for mimetype icons, not for app icons, -@@ -1036,22 +1031,17 @@ QString KIconLoaderPrivate::findMatchingIcon(const QString &name, int size, qrea - // Once everyone uses that to look up mimetype icons, we can kill the fallback code - // from this method. - -- for (KIconThemeNode *themeNode : std::as_const(links)) { -- const QString path = themeNode->theme->iconPathByName(name, size, KIconLoader::MatchBest, scale); -- if (!path.isEmpty()) { -- return path; -- } -- } -- -- if (name.endsWith(QLatin1String("-x-generic"))) { -- return QString(); // no further fallback -- } -- bool genericFallback = false; -+ bool genericFallback = name.endsWith(QLatin1String("-x-generic"));; - QString path; - for (KIconThemeNode *themeNode : std::as_const(links)) { - QString currentName = name; - - while (!currentName.isEmpty()) { -+ path = themeNode->theme->iconPathByName(currentName, size, KIconLoader::MatchBest, scale); -+ if (!path.isEmpty()) { -+ return path; -+ } -+ - if (genericFallback) { - // we already tested the base name - break; -@@ -1088,16 +1078,6 @@ QString KIconLoaderPrivate::findMatchingIcon(const QString &name, int size, qrea - break; - } - } -- -- if (currentName.isEmpty()) { -- break; -- } -- -- // qCDebug(KICONTHEMES) << "Looking up" << currentName; -- path = themeNode->theme->iconPathByName(currentName, size, KIconLoader::MatchBest, scale); -- if (!path.isEmpty()) { -- return path; -- } - } - } - --- -GitLab - |