When the closed through the WM's close button, `closeEvent()` is
used directly. In this case the dialog in the `on_exit_app`
slot was skipped.
There is a mishandled case. If coming from logout while there
is an active download (Yes to logout -> No to stop download)
we end up in a weird state which I haven't investigated yet.
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
* Set the `WA_DeleteOnClose` attribute for the MainWindow.
* Handle the case where `programdata_path` exists but is empty.
* Emit a signal from `LaunchDialog` instead of using `exit()`.
* Remove `LoginThread` as it was never deleted and caused a `SIGSEGV` on exit.
* Handle termination and deletion of `SteamThread` and `ImageThread`.
* Rename `finished` to `completed`, to not override the inherited `finished` signal.
* Emit a signal from Account widget to do cleanup instead of immediately quitting.