From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 160F8158087 for ; Wed, 8 Dec 2021 15:08:30 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 40DA42BC04C; Wed, 8 Dec 2021 15:08:28 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 0EF5F2BC04C for ; Wed, 8 Dec 2021 15:08:27 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 7EF673434CD for ; Wed, 8 Dec 2021 15:08:25 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D6D7B10C for ; Wed, 8 Dec 2021 15:08:23 +0000 (UTC) From: "Andreas Sturmlechner" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andreas Sturmlechner" Message-ID: <1638976064.541af0e365ad327b0753902ef33177df02920d46.asturm@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: kde-frameworks/kiconthemes/files/, kde-frameworks/kiconthemes/ X-VCS-Repository: repo/gentoo X-VCS-Files: kde-frameworks/kiconthemes/files/kiconthemes-5.88.0-fix-icon-preference.patch kde-frameworks/kiconthemes/kiconthemes-5.88.0-r1.ebuild X-VCS-Directories: kde-frameworks/kiconthemes/files/ kde-frameworks/kiconthemes/ X-VCS-Committer: asturm X-VCS-Committer-Name: Andreas Sturmlechner X-VCS-Revision: 541af0e365ad327b0753902ef33177df02920d46 X-VCS-Branch: master Date: Wed, 8 Dec 2021 15:08:23 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 53364f2e-e69e-4acb-81e7-e2109fcba3f7 X-Archives-Hash: fd1f952a988cadb3a1f2dc796c242ffa commit: 541af0e365ad327b0753902ef33177df02920d46 Author: Andreas Sturmlechner gentoo org> AuthorDate: Wed Dec 8 13:22:37 2021 +0000 Commit: Andreas Sturmlechner gentoo org> CommitDate: Wed Dec 8 15:07:44 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=541af0e3 kde-frameworks/kiconthemes: Fix icon loading preference Upstream commit 13181b03eac3c85f0649d5399d8c3037c388928c KDE-bug: https://bugs.kde.org/show_bug.cgi?id=445804 Bug: https://bugs.gentoo.org/827932 Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner gentoo.org> .../kiconthemes-5.88.0-fix-icon-preference.patch | 122 +++++++++++++++++++++ .../kiconthemes/kiconthemes-5.88.0-r1.ebuild | 34 ++++++ 2 files changed, 156 insertions(+) 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 new file mode 100644 index 000000000000..e8b48b468323 --- /dev/null +++ b/kde-frameworks/kiconthemes/files/kiconthemes-5.88.0-fix-icon-preference.patch @@ -0,0 +1,122 @@ +From 13181b03eac3c85f0649d5399d8c3037c388928c Mon Sep 17 00:00:00 2001 +From: Jan Blackquill +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(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 + diff --git a/kde-frameworks/kiconthemes/kiconthemes-5.88.0-r1.ebuild b/kde-frameworks/kiconthemes/kiconthemes-5.88.0-r1.ebuild new file mode 100644 index 000000000000..037123e760a4 --- /dev/null +++ b/kde-frameworks/kiconthemes/kiconthemes-5.88.0-r1.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_DESIGNERPLUGIN="true" +PVCUT=$(ver_cut 1-2) +QTMIN=5.15.2 +VIRTUALX_REQUIRED="test" +inherit ecm kde.org + +DESCRIPTION="Framework for icon theming and configuration" +LICENSE="LGPL-2+" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="" + +RESTRICT="test" # bug 574770 + +DEPEND=" + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtsvg-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + =kde-frameworks/karchive-${PVCUT}*:5 + =kde-frameworks/kconfig-${PVCUT}*:5 + =kde-frameworks/kconfigwidgets-${PVCUT}*:5 + =kde-frameworks/kcoreaddons-${PVCUT}*:5 + =kde-frameworks/ki18n-${PVCUT}*:5 + =kde-frameworks/kitemviews-${PVCUT}*:5 + =kde-frameworks/kwidgetsaddons-${PVCUT}*:5 +" +RDEPEND="${DEPEND}" + +PATCHES=( "${FILESDIR}"/${P}-fix-icon-preference.patch ) # KDE-bug 445804