Improve reporting from background fetch and push jobs
EGit 4.5 removed the immediate result dialogs for "Fetch" and
"Push" to avoid UI deadlocks that were reported quite frequently
and replaced them with an action that could be invoked explicitly
by the user via the progress view. That side-stepped the UI
deadlock problem, but sometimes these dialogs show useful
information that one would like to see immediately, such as
the Gerrit URL after a successful push to Gerrit.
This commit brings back those "immediate" dialogs. They're not
quite as immediate as they used to be, though: they are delayed
until there are no modal shells open anymore. That will still
avoid UI deadlocks, and will make the dialogs appear as soon as
it's safe to do so and as soon as the user can do something useful
with them.
Additionally, this commit resurrects and completes an old
"work-in-progress" commit[1] that added preferences to optionally
hide those dialogs if the user so wishes. Hiding the dialogs
falls back to the action mechanism introduced in EGit 4.5; the
dialogs are then still accessible via the progress view.
* Add a method to delay showing the result until there are no modal
shells.
* Add preferences to hide the dialogs, including UI in the preference
pages.
* Adapt the result reporting mechanism to use both
Note that this commit only adds preferences for the push and fetch
cases; pull is a different implementation altogether.
[1] https://git.eclipse.org/r/#/c/52524/
Bug: 473538
Bug: 502324
Change-Id: I7a8afdb0189a1c0eee48f4a9203719aadbb15584
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Also-by: Lars Vogel <Lars.Vogel@vogella.com>