Currently we freeze the GUI thread while running CliInterface jobs, because
there is a nested event loop in runProcess(), which doesn't run anymore in a
separate thread.
This is of course bad and for example is currently impossible to close Ark
while loading a huge zip file.
We can simply drop this event loop and rework the CliInterface logic, such that
the finished() signal is not emitted anymore when runProcess() returns, but
in processFinished() instead.
This exposed another set of issues:
- Ark crashed if closing the UI during a running Job, because result() was emitted and the Part would thing the job succeeded. This is fixed by not emitting finished() from CliInterface. This should definitely fix bug #222392. I'm not sure why this crash doesn't happen on 16.04, probably because of the separate thread.
Ark crashes if canceling the password dialog with header-encrypted archives. I'm working on a separate patch to fix this.(unrelated from this patch).