Addon Manager: Support setting selection externally

This commit is contained in:
Chris Hennes
2022-03-24 19:12:15 -05:00
parent 6bc8a0236a
commit 24ac3c46ed

View File

@@ -566,6 +566,10 @@ class CommandAddonManager:
pref = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Addons")
if pref.GetBool("DownloadMacros", False):
self.startup_sequence.append(self.load_macro_metadata)
selection = pref.GetString("SelectedAddon", "")
if selection:
self.startup_sequence.insert(2,lambda:self.select_addon(selection))
pref.SetString("SelectedAddon", "")
self.current_progress_region = 0
self.number_of_progress_regions = len(self.startup_sequence)
self.do_next_startup_phase()
@@ -751,6 +755,17 @@ class CommandAddonManager:
else:
self.do_next_startup_phase()
def select_addon(self, name:str) -> None:
found = False
for addon in self.item_model.repos:
if addon.name == name:
self.table_row_activated(addon)
found = True
break
if not found:
FreeCAD.Console.PrintWarning(translate("AddonsInstaller","Could not find addon '{}' to select\n").format(name))
self.do_next_startup_phase()
def check_updates(self) -> None:
"checks every installed addon for available updates"