Bug #1262
closedbug in qt client function show_tileset_error()
0%
Description
3.1.4
to repro -
1 edit file share/freeciv/trident/tiles.spec by commenting out the "user.infratile"
2 start freeciv-qt
3 click on options, go to Graphics tab
4 choose Tileset (Square) -> trident
5 click Apply, app exits without showing any dialog
If instead, edit file share/freeciv/amplio2/terrain1.spec again
commenting out the "user.infratile", then when you start freeciv-qt
you immediately get the "Tileset error" dialog before the app exits.
The difference is in the first example the code path calls ask->show(),
and in the 2nd example it calls ask->exec().
gtk clients work OK for both cases.
Files
Updated by Marko Lindqvist 10 days ago
- File 0017-Qt-Block-in-show_tileset_error-for-fatal-errors.patch 0017-Qt-Block-in-show_tileset_error-for-fatal-errors.patch added
- Status changed from New to In Review
- Assignee set to Marko Lindqvist
- Target version set to 3.1.5
Attached patch is what I think to be the right thing in show_tileset_error(), though it does not save client from potentially crashing because of having only partially loaded tileset while showing the error dialog and having the client running in general.
Updated by Dean Brown 10 days ago
Tested that patch and it works OK for me.
I was tempted to try making a patch myself, but
1 it's been too long since I worked with QT and I don't remember it that well
2 not sure how to test all 4 combinations of fatal/!fatal and parented/not parented
Glad you did it.