commit:     33d9a83ffd4af95fe91811d508ba23f3bce5112f
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Apr  4 11:22:17 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Apr  4 13:19:39 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=33d9a83f

kde-frameworks/kiconthemes: Fix SVG icon display, QGnomePlatform fix

Upstream commits:
3262669e3abfa7171463e3bf34f7c60eacf6bc77
5a5d7b57fee23d934d90989133f870404557ff6f
e4fb7dda788e5dc44ada56f089053453f3ff0c1c

See also: https://invent.kde.org/frameworks/kiconthemes/-/merge_requests/26
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=434451
Reported-by: Gerion Entrup <gerion.entrup <AT> flump.de>
Closes: https://bugs.gentoo.org/779079
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/kiconthemes-5.80.0-fix-svg-icons.patch   | 22 +++++
 ....0-revert-avoid-plugin-load-racecondition.patch | 68 ++++++++++++++++
 ...0.0-revert-private-header-to-avoid-extern.patch | 95 ++++++++++++++++++++++
 .../kiconthemes/kiconthemes-5.80.0-r1.ebuild       | 38 +++++++++
 4 files changed, 223 insertions(+)

diff --git 
a/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-fix-svg-icons.patch 
b/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-fix-svg-icons.patch
new file mode 100644
index 00000000000..adaef7a0f2b
--- /dev/null
+++ b/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-fix-svg-icons.patch
@@ -0,0 +1,22 @@
+From 3262669e3abfa7171463e3bf34f7c60eacf6bc77 Mon Sep 17 00:00:00 2001
+From: Christoph Cullmann <[email protected]>
+Date: Fri, 19 Mar 2021 19:56:07 +0100
+Subject: [PATCH] don't register our engine per default
+
+---
+ src/kiconengineplugin.json | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/kiconengineplugin.json b/src/kiconengineplugin.json
+index a5b4228..bc09e41 100644
+--- a/src/kiconengineplugin.json
++++ b/src/kiconengineplugin.json
+@@ -1,4 +1,4 @@
+ {
+-    "Keys": [ "KIconEngine", "svg", "svgz", "svg.gz" ]
++    "Keys": [ "KIconEngine" ]
+ }
+ 
+-- 
+GitLab
+

diff --git 
a/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-revert-avoid-plugin-load-racecondition.patch
 
b/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-revert-avoid-plugin-load-racecondition.patch
new file mode 100644
index 00000000000..4af27c7d7c1
--- /dev/null
+++ 
b/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-revert-avoid-plugin-load-racecondition.patch
@@ -0,0 +1,68 @@
+From e4fb7dda788e5dc44ada56f089053453f3ff0c1c Mon Sep 17 00:00:00 2001
+From: Christoph Cullmann <[email protected]>
+Date: Mon, 29 Mar 2021 19:42:15 +0200
+Subject: [PATCH] Revert "avoid race condition on loading the plugin"
+
+This reverts commit 65ee2fac5eae6f69a6c72b315f0e5d702f1c4493.
+---
+ src/kiconloader.cpp | 12 ------------
+ src/kicontheme.cpp  | 12 ++++++++++++
+ 2 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/src/kiconloader.cpp b/src/kiconloader.cpp
+index 33c378b..f608966 100644
+--- a/src/kiconloader.cpp
++++ b/src/kiconloader.cpp
+@@ -383,8 +383,6 @@ public:
+     bool mCustomPalette = false;
+ };
+ 
+-extern void initRCCIconTheme();
+-
+ class KIconLoaderGlobalData : public QObject
+ {
+     Q_OBJECT
+@@ -392,16 +390,6 @@ class KIconLoaderGlobalData : public QObject
+ public:
+     KIconLoaderGlobalData()
+     {
+-        // ensure we load rcc files for application bundles (+ setup their 
theme)
+-        initRCCIconTheme();
+-
+-        // Set the icon theme fallback to breeze
+-        // Most of our apps use "lots" of icons that most of the times
+-        // are only available with breeze, we still honour the user icon
+-        // theme but if the icon is not found there, we go to breeze
+-        // since it's almost sure it'll be there
+-        QIcon::setFallbackThemeName(QStringLiteral("breeze"));
+-
+         const QStringList genericIconsFiles = 
QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, 
QStringLiteral("mime/generic-icons"));
+         // qCDebug(KICONTHEMES) << genericIconsFiles;
+         for (const QString &file : genericIconsFiles) {
+diff --git a/src/kicontheme.cpp b/src/kicontheme.cpp
+index 8e499d2..5be083d 100644
+--- a/src/kicontheme.cpp
++++ b/src/kicontheme.cpp
+@@ -57,7 +57,19 @@ void initRCCIconTheme()
+         }
+     }
+ }
++Q_COREAPP_STARTUP_FUNCTION(initRCCIconTheme)
+ 
++// Set the icon theme fallback to breeze
++// Most of our apps use "lots" of icons that most of the times
++// are only available with breeze, we still honour the user icon
++// theme but if the icon is not found there, we go to breeze
++// since it's almost sure it'll be there
++static void setBreezeFallback()
++{
++    QIcon::setFallbackThemeName(QStringLiteral("breeze"));
++}
++
++Q_COREAPP_STARTUP_FUNCTION(setBreezeFallback)
+ class KIconThemeDir;
+ class KIconThemePrivate
+ {
+-- 
+GitLab
+

diff --git 
a/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-revert-private-header-to-avoid-extern.patch
 
b/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-revert-private-header-to-avoid-extern.patch
new file mode 100644
index 00000000000..e861ce6c73f
--- /dev/null
+++ 
b/kde-frameworks/kiconthemes/files/kiconthemes-5.80.0-revert-private-header-to-avoid-extern.patch
@@ -0,0 +1,95 @@
+From 5a5d7b57fee23d934d90989133f870404557ff6f Mon Sep 17 00:00:00 2001
+From: Christoph Cullmann <[email protected]>
+Date: Mon, 29 Mar 2021 19:41:56 +0200
+Subject: [PATCH] Revert "add private header to avoid extern in .cpp file"
+
+This reverts commit bd648dd0755d03dc01b267b3cdcec09b045da696.
+---
+ src/kiconloader.cpp |  7 ++-----
+ src/kicontheme.cpp  |  4 +++-
+ src/kicontheme_p.h  | 19 -------------------
+ 3 files changed, 5 insertions(+), 25 deletions(-)
+ delete mode 100644 src/kicontheme_p.h
+
+diff --git a/src/kiconloader.cpp b/src/kiconloader.cpp
+index 3a6bf2b..33c378b 100644
+--- a/src/kiconloader.cpp
++++ b/src/kiconloader.cpp
+@@ -11,7 +11,6 @@
+ */
+ 
+ #include "kiconloader.h"
+-#include "kicontheme_p.h"
+ 
+ // kdecore
+ #include <KConfigGroup>
+@@ -384,6 +383,8 @@ public:
+     bool mCustomPalette = false;
+ };
+ 
++extern void initRCCIconTheme();
++
+ class KIconLoaderGlobalData : public QObject
+ {
+     Q_OBJECT
+@@ -391,10 +392,6 @@ class KIconLoaderGlobalData : public QObject
+ public:
+     KIconLoaderGlobalData()
+     {
+-        // we trigger the rcc loading & fallback theme setting here instead 
of the old way via Q_COREAPP_STARTUP_FUNCTION
+-        // so that loading the icon engine plugin doesn't trigger changing 
the icon theme while loading the first icon
+-        // if nothing else initialized this before.
+-
+         // ensure we load rcc files for application bundles (+ setup their 
theme)
+         initRCCIconTheme();
+ 
+diff --git a/src/kicontheme.cpp b/src/kicontheme.cpp
+index af9fd81..8e499d2 100644
+--- a/src/kicontheme.cpp
++++ b/src/kicontheme.cpp
+@@ -10,7 +10,6 @@
+ */
+ 
+ #include "kicontheme.h"
+-#include "kicontheme_p.h"
+ 
+ #include "debug.h"
+ 
+@@ -33,6 +32,9 @@
+ 
+ Q_GLOBAL_STATIC(QString, _themeOverride)
+ 
++// Support for icon themes in RCC files.
++// The intended use case is standalone apps on Windows / MacOS / etc.
++// For this reason we use AppDataLocation: BINDIR/data on Windows, Resources 
on OS X
+ void initRCCIconTheme()
+ {
+     const QString iconThemeRcc = 
QStandardPaths::locate(QStandardPaths::AppDataLocation, 
QStringLiteral("icontheme.rcc"));
+diff --git a/src/kicontheme_p.h b/src/kicontheme_p.h
+deleted file mode 100644
+index eea889f..0000000
+--- a/src/kicontheme_p.h
++++ /dev/null
+@@ -1,19 +0,0 @@
+-/*
+-    This file is part of the KDE libraries
+-    SPDX-FileCopyrightText: 2021 Christoph Cullmann <[email protected]>
+-
+-    SPDX-License-Identifier: LGPL-2.0-or-later
+-*/
+-
+-#ifndef KICONTHEME_P_H
+-#define KICONTHEME_P_H
+-
+-/**
+- * Support for icon themes in RCC files.
+- * The intended use case is standalone apps on Windows / MacOS / etc.
+- * For this reason we use AppDataLocation: BINDIR/data on Windows, Resources 
on OS X.
+- * Will be triggered by KIconLoaderGlobalData construction.
+- */
+-void initRCCIconTheme();
+-
+-#endif
+-- 
+GitLab
+

diff --git a/kde-frameworks/kiconthemes/kiconthemes-5.80.0-r1.ebuild 
b/kde-frameworks/kiconthemes/kiconthemes-5.80.0-r1.ebuild
new file mode 100644
index 00000000000..4e3b8c18589
--- /dev/null
+++ b/kde-frameworks/kiconthemes/kiconthemes-5.80.0-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+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 ~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-svg-icons.patch" # bug 779079
+       "${FILESDIR}/${P}-revert-private-header-to-avoid-extern.patch"
+       "${FILESDIR}/${P}-revert-avoid-plugin-load-racecondition.patch"
+)

Reply via email to