make radiant able to restart itself when required, ask user to
This is an usability improvement I dream about since years, see #42 (closed) (three years ago), !55 (closed), !63 (merged), etc. Previous work to make radiant able to load map by command line where done with that feature in mind.
Radiant editor is now able to restart itself when needed, and it reload itself with the current edited map if needed.
The command line map opening is now fixed on Windows, so if support is not on par with Linux (see !109 (merged)) because of missing integration, it's now possible to open a map on radiant by opening the file once the user set-up the association. This fix was required to make Radiant able to restart itself with the current map on Windows.
Modifying the UI layout and other options like that now asks the user to restart immediately, if user say yes, radiant is restarted with the new layout and other options applied, with current map and environment and so on.
Changing the current game now requires a restart. It always required a restart but user was not informed, now the user is not only informed but can restart immediately the editor by clicking “OK”. It makes Radiant very more convenient for people mapping for more than one game. In fact that was the reason I do this MR, and I think about it since I think about command line support: click a Xonotic map on you file browser, get Radiant opening it, discover your editor is currently set-up for Unvanquished, open preference and set the current game to Xonotic, say yes when Radiant asks for restarting, you are now editing your Xonotic map with your Xonotic environment with the Xonotic NetRadiant profile.
Note: I would like to see that huge improvement: have the game list in the toolbar: allowing people to change the game without opening any menu neither any preference window. Perhaps a less advanced solution would be to have in toolbar an icon that is a shortcut to the game option in preference Window. It maybe easier to do, I don't know. But I currently think the drop-down list would be better, especially because it would also displays to the user what is the current game.
Note: the restart mechanism starts the child in background and since the parent stops as long the child is started, for the user it behaves like the application going in background and losing foreground control in a terminal on restart.