kdeui: implement hidden KUiServerJobTracker feature to override the application name and icon

also updated the D-Bus interface file

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-06-06 19:33:17 +03:00
parent 6ae96c3c1d
commit 4ba42b20e1
2 changed files with 24 additions and 6 deletions

View file

@ -83,15 +83,21 @@ void KUiServerJobTracker::registerJob(KJob *job)
}
KComponentData componentData = KGlobal::mainComponent();
QString programIconName = componentData.aboutData()->programIconName();
if (programIconName.isEmpty()) {
programIconName = componentData.aboutData()->appName();
QString appName = job->property("appName").toString();
if (appName.isEmpty()) {
appName = componentData.aboutData()->programName();
}
QString appIconName = job->property("appIconName").toString();
if (appIconName.isEmpty()) {
appIconName = componentData.aboutData()->programIconName();
}
if (appIconName.isEmpty()) {
appIconName = componentData.aboutData()->appName();
}
QWeakPointer<KJob> jobWatch = job;
QDBusReply<QDBusObjectPath> reply = serverProxy->uiserver().requestView(componentData.aboutData()->programName(),
programIconName,
QDBusReply<QDBusObjectPath> reply = serverProxy->uiserver().requestView(appName,
appIconName,
job->capabilities());
// If we got a valid reply, register the interface for later usage.

View file

@ -42,6 +42,18 @@
<arg name="number" type="u" direction="in"/>
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
</method>
<method name="setAppName">
<arg name="message" type="s" direction="in"/>
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
</method>
<method name="setAppIconName">
<arg name="message" type="s" direction="in"/>
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
</method>
<method name="setCapabilities">
<arg name="number" type="i" direction="in"/>
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
</method>
<method name="setDestUrl">
<arg name="destUrl" type="v" direction="in"/>
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>