<table><tr><td style="">aacid added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D22488">View Revision</a></tr></table><br /><div><div><p>Now i understand this is causing relatively several issues, sorry for dropping the ball, so we should probably fix for users before Qt 5.15.1</p>
<p>What about something like</p>
<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="diff" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);"><span style="color: #000080">diff --git a/src/kicontheme.cpp b/src/kicontheme.cpp</span>
<span style="color: #000080">index 4f5d9d5..62fc9d7 100644</span>
<span style="color: #a00000">--- a/src/kicontheme.cpp</span>
<span style="color: #00a000">+++ b/src/kicontheme.cpp</span>
<span style="color: #800080">@@ -70,6 +70,19 @@ void initRCCIconTheme()</span>
}
Q_COREAPP_STARTUP_FUNCTION(initRCCIconTheme)
<span style="color: #00a000">+class SetBreezeFallbackHelper : public QObject</span>
<span style="color: #00a000">+{</span>
<span style="color: #00a000">+ bool event(QEvent *e) override</span>
<span style="color: #00a000">+ {</span>
<span style="color: #00a000">+ if (e->type() == QEvent::User) {</span>
<span style="color: #00a000">+ QIcon::setFallbackThemeName(QStringLiteral("breeze"));</span>
<span style="color: #00a000">+ deleteLater();</span>
<span style="color: #00a000">+ return true;</span>
<span style="color: #00a000">+ }</span>
<span style="color: #00a000">+ return QObject::event(e);</span>
<span style="color: #00a000">+ }</span>
<span style="color: #00a000">+};</span>
<span style="color: #00a000">+</span>
// 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
<span style="color: #800080">@@ -77,7 +90,8 @@ Q_COREAPP_STARTUP_FUNCTION(initRCCIconTheme)</span>
// since it's almost sure it'll be there
static void setBreezeFallback()
{
<span style="color: #a00000">- QIcon::setFallbackThemeName(QStringLiteral("breeze"));</span>
<span style="color: #00a000">+ SetBreezeFallbackHelper *helper = new SetBreezeFallbackHelper();</span>
<span style="color: #00a000">+ QCoreApplication::instance()->postEvent(helper, new QEvent(QEvent::User), Qt::HighEventPriority);</span>
}
Q_COREAPP_STARTUP_FUNCTION(setBreezeFallback)</pre></div>
<p>It's still totally bad since it only sets the fallback after QGuiApplication *starts* running (which is mega late since most of the constructors will have already be created), but at least doesn't rely on the app creating a KIconTheme.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R302 KIconThemes</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D22488">https://phabricator.kde.org/D22488</a></div></div><br /><div><strong>To: </strong>mart, Frameworks, Plasma<br /><strong>Cc: </strong>aacid, mlaurent, broulik, kde-frameworks-devel, LeGast00n, cblack, michaelh, ngraham, bruns<br /></div>