From e05bbdf4a589bdbea5271de65283cccbb1592ee3 Mon Sep 17 00:00:00 2001 From: Mark D Horn Date: Tue, 17 Sep 2019 11:13:57 -0700 Subject: [PATCH] gui: Fix default disk selection bug Ensure that we default to the previously selected disk when re-entering the media selection screen. Fixes: #515 Signed-off-by: Mark D Horn --- gui/pages/disk_config.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gui/pages/disk_config.go b/gui/pages/disk_config.go index a6cdaa5..1d9091d 100644 --- a/gui/pages/disk_config.go +++ b/gui/pages/disk_config.go @@ -784,18 +784,22 @@ func (disk *DiskConfig) populateComboBoxes() error { } if disk.isSafeSelected { + selected := 0 if len(disk.safeTargets) > 0 { disk.chooserCombo.SetSensitive(true) - for _, target := range disk.safeTargets { + for n, target := range disk.safeTargets { log.Debug("Adding safe install target %s", target.Name) err := addListStoreMediaRow(safeStore, target) if err != nil { log.Warning("SetValue safeStore") return err } + if target.Name == disk.model.InstallSelected[target.Name].Name { + selected = n + } } disk.chooserCombo.SetModel(safeStore) - disk.chooserCombo.SetActive(0) + disk.chooserCombo.SetActive(selected) } else { disk.chooserCombo.SetModel(safeStore) warning := utils.Locale.Get("No safe media found for installation") @@ -808,16 +812,20 @@ func (disk *DiskConfig) populateComboBoxes() error { disk.chooserCombo.SetSensitive(true) if len(disk.destructiveTargets) > 0 { - for _, target := range disk.destructiveTargets { + selected := 0 + for n, target := range disk.destructiveTargets { log.Debug("Adding destructive install target %s", target.Name) err := addListStoreMediaRow(destructiveStore, target) if err != nil { log.Warning("SetValue destructiveStore") return err } + if target.Name == disk.model.InstallSelected[target.Name].Name { + selected = n + } } disk.chooserCombo.SetModel(destructiveStore) - disk.chooserCombo.SetActive(0) + disk.chooserCombo.SetActive(selected) } else { disk.chooserCombo.SetModel(destructiveStore) warning := utils.Locale.Get("No media found for installation")