The advanced frame of the hotkey dialog did not handle joystick buttons at all. Now it will add combo boxes for each keyboard key and each joystick button. It also adds a
tool tip to get the button name including its corresponding device name.
ref T540
The main reason why CInputManager was singleton is the easy access across
the code. That had the negative side effect that time of destruction was
at a very late stage of the shutdown and could not be controlled by us.
My moving it to CApplication, the access is equally easy (using sApp) and
allows to be cleaned up properly during graceful shutdown.
ref T391
The list of applications is already known when the CHotkeyDialog
object is constructed. So there was no good reason to defer this
to a later time with a setter.
In contrast, supporting a setter function was much more complex, since
internally all GUI signals were already connected and more carefull
case handling would be necessary (e.g. the machine combobox would
change its index). Therefore the setter is removed in favor of passing
the application list directly to the constructor.
This fixes also an issue that the machine name was not properly set up
in the dialog when editing a hotkey.
This also reverts the change from CIdentifier to string based machine
handling.
refs #881