From 596f3bde1de5ba5e63069b7ff1474002ad9c3d9a Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Mon, 21 Sep 2015 20:29:47 +0000 Subject: [PATCH] kdeui: check if icon passed to apps via --icon is valid and fallback if not --- kdeui/kernel/kapplication.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/kdeui/kernel/kapplication.cpp b/kdeui/kernel/kapplication.cpp index a43defbc..c7057920 100644 --- a/kdeui/kernel/kapplication.cpp +++ b/kdeui/kernel/kapplication.cpp @@ -44,6 +44,7 @@ #include "kdebug.h" #include "kglobal.h" #include "kicon.h" +#include "kiconloader.h" #include "klocale.h" #include "ksessionmanager.h" #include "kstandarddirs.h" @@ -802,13 +803,17 @@ void KApplicationPrivate::parseCommandLine( ) } if ( q->type() != KApplication::Tty ) { - if (args && args->isSet("icon") && !args->getOption("icon").trimmed().isEmpty()) + QString appicon; + if (args && args->isSet("icon") + && !args->getOption("icon").trimmed().isEmpty() + && !KIconLoader::global()->iconPath(args->getOption("icon"), -1, true).isEmpty()) { - q->setWindowIcon(KIcon(args->getOption("icon"))); + appicon = args->getOption("icon"); } - else { - q->setWindowIcon(KIcon(componentData.aboutData()->programIconName())); + if(appicon.isEmpty()) { + appicon = componentData.aboutData()->programIconName(); } + q->setWindowIcon(KIcon(appicon)); } if (!args)