From 3dc4b60af13679159c8779d13da3de2e4e345491 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Mon, 8 May 2023 15:51:47 -0600 Subject: [PATCH] GUI: Add default selections --- resources/wx_gui/gui_install_oc.py | 22 ++++++++++++------- resources/wx_gui/gui_macos_installer_flash.py | 8 ++++++- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/resources/wx_gui/gui_install_oc.py b/resources/wx_gui/gui_install_oc.py index dbc4b3a0e..768bf174c 100644 --- a/resources/wx_gui/gui_install_oc.py +++ b/resources/wx_gui/gui_install_oc.py @@ -112,17 +112,18 @@ class InstallOCFrame(wx.Frame): logging.info(f"- Checking if booted disk is present: {disk_root}") # Add buttons for each disk + items = len(self.available_disks) + longest_label = max((len(self.available_disks[disk]['disk']) + len(self.available_disks[disk]['name']) + len(str(self.available_disks[disk]['size']))) for disk in self.available_disks) + longest_label = longest_label * 10 + for disk in self.available_disks: # Create a button for each disk logging.info(f"- {self.available_disks[disk]['disk']} - {self.available_disks[disk]['name']} - {self.available_disks[disk]['size']}") - disk_button = wx.Button(dialog, label=f"{self.available_disks[disk]['disk']} - {self.available_disks[disk]['name']} - {self.available_disks[disk]['size']}", size=(350,30), pos=(-1, gpt_note.GetPosition()[1] + gpt_note.GetSize()[1] + 5)) + disk_button = wx.Button(dialog, label=f"{self.available_disks[disk]['disk']} - {self.available_disks[disk]['name']} - {self.available_disks[disk]['size']}", size=(longest_label ,30), pos=(-1, gpt_note.GetPosition()[1] + gpt_note.GetSize()[1] + 5)) disk_button.Center(wx.HORIZONTAL) disk_button.Bind(wx.EVT_BUTTON, lambda event, disk=disk: self._display_volumes(disk, self.available_disks)) - logging.info(f"- Comparing {disk_root} to {self.available_disks[disk]['disk']}") - if disk_root == self.available_disks[disk]['disk']: - logging.info("- Found match") - disk_button.SetForegroundColour(self.hyperlink_colour) - + if disk_root == self.available_disks[disk]['disk'] or items == 1: + disk_button.SetDefault() if disk_root: # Add note: "Note: Blue represent the disk OpenCore is currently booted from" @@ -170,14 +171,19 @@ class InstallOCFrame(wx.Frame): text_label.Center(wx.HORIZONTAL) partitions = install.tui_disk_installation(self.constants).list_partitions(disk, dataset) + items = len(partitions) + longest_label = max((len(partitions[partition]['partition']) + len(partitions[partition]['name']) + len(str(partitions[partition]['size']))) for partition in partitions) + longest_label = longest_label * 10 for partition in partitions: logging.info(f"- {partitions[partition]['partition']} - {partitions[partition]['name']} - {partitions[partition]['size']}") - disk_button = wx.Button(dialog, label=f"{partitions[partition]['partition']} - {partitions[partition]['name']} - {partitions[partition]['size']}", size=(300,30), pos=(-1, text_label.GetPosition()[1] + text_label.GetSize()[1] + 5)) + disk_button = wx.Button(dialog, label=f"{partitions[partition]['partition']} - {partitions[partition]['name']} - {partitions[partition]['size']}", size=(longest_label,30), pos=(-1, text_label.GetPosition()[1] + text_label.GetSize()[1] + 5)) disk_button.Center(wx.HORIZONTAL) disk_button.Bind(wx.EVT_BUTTON, lambda event, partition=partition: self._install_oc_process(partition)) + if partitions[partition]['partition'].startswith(f"{disk}s") or items == 1: + disk_button.SetDefault() # Add button: Return to main menu - return_button = wx.Button(dialog, label="Return to main menu", size=(200,30), pos=(-1, disk_button.GetPosition()[1] + disk_button.GetSize()[1])) + return_button = wx.Button(dialog, label="Return to main menu", size=(150,30), pos=(-1, disk_button.GetPosition()[1] + disk_button.GetSize()[1])) return_button.Center(wx.HORIZONTAL) return_button.Bind(wx.EVT_BUTTON, self.on_return_to_main_menu) diff --git a/resources/wx_gui/gui_macos_installer_flash.py b/resources/wx_gui/gui_macos_installer_flash.py index 516f1aff0..a780e23ce 100644 --- a/resources/wx_gui/gui_macos_installer_flash.py +++ b/resources/wx_gui/gui_macos_installer_flash.py @@ -83,12 +83,15 @@ class macOSInstallerFlashFrame(wx.Frame): if self.available_installers_local: logging.info("Installer(s) found:") spacer = 10 + entries = len(self.available_installers_local) for app in self.available_installers_local: logging.info(f"- {self.available_installers_local[app]['Short Name']}: {self.available_installers_local[app]['Version']} ({self.available_installers_local[app]['Build']})") installer_button = wx.Button(frame_modal, label=f"{self.available_installers_local[app]['Short Name']}: {self.available_installers_local[app]['Version']} ({self.available_installers_local[app]['Build']})", pos=(-1, title_label.GetPosition()[1] + title_label.GetSize()[1] + spacer), size=(300, 30)) installer_button.Bind(wx.EVT_BUTTON, lambda event, temp=app: self.on_select(self.available_installers_local[temp])) installer_button.Center(wx.HORIZONTAL) spacer += 25 + if entries == 1: + installer_button.SetDefault() else: installer_button = wx.StaticText(frame_modal, label="No installers found in '/Applications'", pos=(-1, title_label.GetPosition()[1] + title_label.GetSize()[1] + 5)) installer_button.SetFont(wx.Font(13, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, ".AppleSystemUIFont")) @@ -150,11 +153,14 @@ class macOSInstallerFlashFrame(wx.Frame): # List of disks if self.available_disks: spacer = 5 + entries = len(self.available_disks) for disk in self.available_disks: logging.info(f"{disk}: {self.available_disks[disk]['name']} - {utilities.human_fmt(self.available_disks[disk]['size'])}") disk_button = wx.Button(self.frame_modal, label=f"{disk}: {self.available_disks[disk]['name']} - {utilities.human_fmt(self.available_disks[disk]['size'])}", pos=(-1, warning_label.GetPosition()[1] + warning_label.GetSize()[1] + spacer), size=(300, 30)) disk_button.Bind(wx.EVT_BUTTON, lambda event, temp=disk: self.on_select_disk(self.available_disks[temp], installer)) disk_button.Center(wx.HORIZONTAL) + if entries == 1: + disk_button.SetDefault() else: disk_button = wx.StaticText(self.frame_modal, label="No disks found", pos=(-1, warning_label.GetPosition()[1] + warning_label.GetSize()[1] + 5)) disk_button.SetFont(wx.Font(13, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, ".AppleSystemUIFont")) @@ -171,7 +177,7 @@ class macOSInstallerFlashFrame(wx.Frame): def on_select_disk(self, disk: dict, installer: dict) -> None: - answer = wx.MessageBox(f"Are you sure you want to erase '{disk['name']}'?", "Confirmation", wx.YES_NO | wx.ICON_QUESTION) + answer = wx.MessageBox(f"Are you sure you want to erase '{disk['name']}'?\nAll data will be lost, this cannot be undone.", "Confirmation", wx.YES_NO | wx.ICON_QUESTION) if answer != wx.YES: return