launcher,coredump-gui: revise UX for non-KDE crashes
for the longest time we've been intentionally ignorant of crashes outside the KDE software stack. this does however lead to somewhat inconsistent behavior when the distribution doesn't pick up the slack. non-KDE software can crash like crazy and break things without the user even knowing. this gets doubly awkward when we for some reason fail to detect our app as our own and so don't even consistently report when our own stuff crashes. when we forget to add kcrash enablement to background services they too go unnoticed until someone notices.
introducing the global notification system to fix this!
this is a vastly reworked NotifyTruck for drkonqi-coredump-launcher. core dumps that have not been picked up by the DrKonqiTruck will now get picked up by either the developer truck (action to gdb directly) or the global truck (action to coredump-gui for more accessible details UI).
the new global truck shows a tidy notification explaining that an application or background service has crashed and offers a single action to show details about the crash. this opens coredump gui from where we try our best to guide the user towards a suitable error reporting venue.
the original developer focused truck has been slightly adjusted and is no longer a plugin since the global truck requires the same dependencies, so the plugin overhead doesn't do anything of use any more.
to facilitate this UX the coredump gui has also seen various extensions:
- Patient now tracks a fault entity (flatpak, snap, kde, distro) to provide a framework for...
- fault entity specific report handling. can be as simple as opening the distro report site, but also as powerful as launching drkonqi proper for more in depth handling (currently not implemented as it is a bit out of scope)
- UI actions now present tooltips why they are disabled
- coredump-gui can now be launched with a single argument that is the journald cursor, acting as unique identifier for the crash
- the cursor argument is used to lookup and directly navigate to the correct DetailsPage when provided
for distros with global handler we have a convenient cmake option to opt out