Handle multiple errors in same ErrorDialog #2933
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
If you start downloading multiple modules in GUI and more than one of them fail, you'll get an unhandled exception like this:
Cause
In #2756 we started handling individual module download success or failure immediately, regardless of whether other downloads were still in progress. This opened the possibility of multiple calls to
ErrorDialog.ShowErrorDialog
without the error dialog being closed in between, andForm.ShowDialog
throws the above exception when the form is already visible.Changes
ErrorDialog.ShowErrorDialog
only callsShowDialog
ifVisible
is false, to avoid throwing the exceptionErrorDialog
is already visible, additional messages will be appended to the main oneErrorDialog
is resizable and has anchored controls to fit the spaceErrorDialog
is wider by defaultErrorDialog.ShowErrorDialog
resizes the form to fit its content, up to a maximum height of 600 pixels, to make it easier to read the messages, just like Auto size yes no dialog #2729ErrorDialog
will open centered on the main window instead of centered on the screenErrorDialog
no longer inherits fromFormCompatibility
because it doesn't help and was messing with the sizeFixes #2890.