Implement hotplug support
Closes #52 (closed)
This branch started as an attempt to fix the assertion error described in #52 (closed). However, in the course of investigating the assertion failure, it occurred to me that the bones necessary for hotplug support were present but not fully implemented (resulting in the assertion failure). I figured the best course of action was to flesh out the hotplug support.
This resulted in the following changes:
- Reword the "no burners" startup warning so that the user isn't told they have to restart the application
- Remove the welcome page's button-disabling logic since the burn and blank dialogs already prevent burning if a disc or burner isn't present
- Update the entire device list instead of just the selected device when a device change occurs
- Improve the ability for various parts of the codebase to handle a device not being present
Testing involved monitoring the behavior of each of the four variants of the burn dialog (image/blank/data/audio) through various scenarios involving inserting a disc, removing a disc, plugging in the burner, and unplugging the burner, in various orders.
Edited by Hunter Turcin