diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2020-12-09 17:54:34 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2020-12-09 17:57:16 +0300 |
commit | 1a3f127714e8da9f0af12d9a174dae9793ae63c1 (patch) | |
tree | 5d6170a904472907b93ec4c1f05e9c102ee69cc8 | |
parent | 13bf2bfc39128cc2f7c5906a53d89de1a0f18f29 (diff) |
Rigify: fix errors when no feature sets are installed.
Exceptions when the list is empty, and failing to clear the list.
-rw-r--r-- | rigify/__init__.py | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/rigify/__init__.py b/rigify/__init__.py index 63e42d1d..084a73c4 100644 --- a/rigify/__init__.py +++ b/rigify/__init__.py @@ -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): |