Rigify: fix errors when no feature sets are installed.

Exceptions when the list is empty, and failing to clear the list.
This commit is contained in:
Alexander Gavrilov 2020-12-09 17:54:34 +03:00
parent 13bf2bfc39
commit 1a3f127714
1 changed files with 13 additions and 10 deletions

View File

@ -223,6 +223,14 @@ class RigifyPreferences(AddonPreferences):
set_list = feature_set_list.get_installed_list()
# Update feature set list
self.rigify_feature_sets.clear()
for s in set_list:
list_entry = self.rigify_feature_sets.add()
list_entry.name = feature_set_list.get_ui_name(s)
list_entry.module_name = s
if force or len(set_list) > 0:
# Reload rigs
print('Reloading external rigs...')
@ -235,13 +243,6 @@ class RigifyPreferences(AddonPreferences):
# Re-register rig parameters
register_rig_parameters()
# Update feature set list
self.rigify_feature_sets.clear()
for s in set_list:
list_entry = self.rigify_feature_sets.add()
list_entry.name = feature_set_list.get_ui_name(s)
list_entry.module_name = s
legacy_mode: BoolProperty(
name='Legacy Mode',
description='When enabled the add-on will run in legacy mode using the old 2.76b feature set',
@ -275,10 +276,12 @@ class RigifyPreferences(AddonPreferences):
# Clamp active index to ensure it's in bounds.
self.active_feature_set_index = max(0, min(self.active_feature_set_index, len(self.rigify_feature_sets)-1))
active_fs = self.rigify_feature_sets[self.active_feature_set_index]
if active_fs:
draw_feature_set_prefs(layout, context, active_fs)
if len(self.rigify_feature_sets) > 0:
active_fs = self.rigify_feature_sets[self.active_feature_set_index]
if active_fs:
draw_feature_set_prefs(layout, context, active_fs)
def draw_feature_set_prefs(layout, context, featureset: RigifyFeatureSets):