diff options
author | Damien Picard <pioverfour> | 2019-10-15 13:31:12 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2019-10-15 14:01:34 +0300 |
commit | 71565f82b24c27dbb45eadd8ca6c494996267039 (patch) | |
tree | 5b4907b7d3736859d33b9ca614163cbc767c10db /rigify/rig_ui_template.py | |
parent | 0260327cff34787394cf9aaa3e8cc5bd35cb0a25 (diff) |
Rigify: store advanced options in armature instead of window manager.
By storing the Rigify advanced generation options (name, target rig,
target ui script) in the armature data instead of the window manager
as before, multiple rigs can have different options. Additionally,
these options are stored in the blend file, and not lost when reloading.
Also, the rig name is not automatically suffixed with `_rig`, which
doesn't make sense as far as I can tell.
Differential Revision: https://developer.blender.org/D5675
Diffstat (limited to 'rigify/rig_ui_template.py')
-rw-r--r-- | rigify/rig_ui_template.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/rigify/rig_ui_template.py b/rigify/rig_ui_template.py index d7c2e870..888f6871 100644 --- a/rigify/rig_ui_template.py +++ b/rigify/rig_ui_template.py @@ -1147,7 +1147,6 @@ class ScriptGenerator(base_generate.GeneratorPlugin): def finalize(self): metarig = self.generator.metarig - id_store = self.generator.id_store rig_id = self.generator.rig_id vis_layers = self.obj.data.layers @@ -1162,23 +1161,27 @@ class ScriptGenerator(base_generate.GeneratorPlugin): layer_layout += [(l.name, l.row)] # Generate the UI script - if id_store.rigify_generate_mode == 'overwrite': - rig_ui_name = id_store.rigify_rig_ui or 'rig_ui.py' + if metarig.data.rigify_rig_basename: + rig_ui_name = metarig.data.rigify_rig_basename + '_rig_ui.py' else: rig_ui_name = 'rig_ui.py' - if id_store.rigify_generate_mode == 'overwrite' and rig_ui_name in bpy.data.texts.keys(): - script = bpy.data.texts[rig_ui_name] - script.clear() - else: - script = bpy.data.texts.new("rig_ui.py") + script = None + + if metarig.data.rigify_generate_mode == 'overwrite': + script = metarig.data.rigify_rig_ui + + if not script and rig_ui_name in bpy.data.texts: + script = bpy.data.texts[rig_ui_name] + + if script: + script.clear() + script.name = rig_ui_name - rig_ui_old_name = "" - if id_store.rigify_rig_basename: - rig_ui_old_name = script.name - script.name = id_store.rigify_rig_basename + "_rig_ui.py" + if script is None: + script = bpy.data.texts.new(rig_ui_name) - id_store.rigify_rig_ui = script.name + metarig.data.rigify_rig_ui = script for s in OrderedDict.fromkeys(self.ui_imports): script.write(s + "\n") |