Untangle the shortcuts; Create and Cancel had an overlap.
Skip 'r' (Revert all changes) and 'e' (Edit) and settle on
'a' (which might also mean "Add").
FIXES#977
- If there is a partition already (newly) created, then pass that
to the dialog so that it can use the setings previously applied
(e.g. mount point and flags).
- This avoids the case where you create or format a partition,
then click on it again to edit it and the previous settings are lost.
- Setup the lsit of flags consistently, by providing the available
and to-be-checked flags.
- In CreatePartitionDialog, assume that ~0 is all the flags.
This file is full of helper functions for the partition-editing
dialogs. At first it was just mount-point helper functions,
but there is other functionality that can be refactored.
- Use the desired (future) flags, if set, to initialize the
flags checkboxes. If there are no future flags set, this
returns active flags as before.
- This fixes the situation where editing a partition, changing
flags, then editing it *again* re-starts with the original
flags instead of the modified flags.
- Avoids case where you edit a partition with a mountpoint
set; previously, calling setText() would update the text
but leave the selected index unchanged (usually 0), so that
later calling selectedMountPoint() would return empty.
- Move to one place which handles the standard mount points
- While here, introduce explicit "(no mount point)" string
into the combo box. This is prep-work for issue #951.
Scenario is this: you have no suitable installation devices on
your system (everything is mounted, or HDD has died), click through
to partition page, where you have all the buttons available, but no
devices in the list. The following actions then cause a crash:
- clicking "back"
- clicking any button
Prevent that:
- you can click "back", but if there is no device selected
nothing happens to the device state (no nullptr deref,
and no crash)
- button code is now more resilient to this scenario
- buttons are hidden until a device is available, so you
can't even click on them to trigger the code.
- deleteLater() doesn't like nullptr (produces a warning, but is harmless)
- reparenting across threads doesn't work, comment on that but leave
it in, since this may be relevant for memory management.
- For Boot and Device info widgets, add a retranslateUi() method,
since the labels change not only in response to translation
events but also UI events.
FIXES#779