Diffusion KIO e3a80661c9cd

Stuff the "Couldn't find executable" message box into a queued lambda

Authored by hein on Feb 9 2018, 1:54 PM.

Description

Stuff the "Couldn't find executable" message box into a queued lambda

Summary:
This fixes a Plasma shell crash in the Task Manager applet: We
use KRun from inside the onReleased handler of a MouseArea. In
this error case this leads to a KMessageBox spinning the event
loop. The delegate hosting the MouseArea is in the meanwhile
deleted because it's replaced by a different one for the startup
creation. After closing the dialog we're back in the destroyed
delegate and crash.

The patch instead opens the message box from a queued-up lambda
run in the context of qGuiApp (guarded by a test for qGuiApp)
so we escape the caller before starting the nested event loop.

BUG:385942

Reviewers: dfaure, davidedmundson, mart

Subscribers: Frameworks

Tags: Frameworks

Differential Revision: https://phabricator.kde.org/D10405