Skip to content
Snippets Groups Projects
  • Demeter Dzadik's avatar
    e641ac2d
    Rigify: Add ability to disable installed feature sets · e641ac2d
    Demeter Dzadik authored
    This patch is a continuation of D8519, was also suggested in T88711#1170152.
    It adds a checkbox for each feature set in the Rigify Preferences, to disable/enable that feature set without having to completely remove it from the file system.
    
    Challenges that were hopefully successfully tackled:
    - Keep list in sync when user manually adds or removes things through the file system instead of the "add/remove feature set" buttons in the UI.
    - Avoid re-building the feature set list all the time so that the checkbox states can actually be stored when the user exits Blender.
    - Disabling a feature set means calling its unregister function, then rebuilding the rig types and metarigs lists/menus.
    - Some renaming slipped in because I found the variable name "feature_set" a bit confusing. If needed, I could split this change into a separate patch or just forget about it, but I think the longer names help here.
    
    Testing would be welcome, since things turned out a bit more tricky than expected.
    
    In a follow-up patch I would like to do a code quality pass, to split the code a bit better here. There is a bit too much stuff in __init__.py in particular. I will get started on that when this gets close to being finalized.
    
    Reviewed By: angavrilov
    
    Differential Revision: https://developer.blender.org/D12260
    e641ac2d
    History
    Rigify: Add ability to disable installed feature sets
    Demeter Dzadik authored
    This patch is a continuation of D8519, was also suggested in T88711#1170152.
    It adds a checkbox for each feature set in the Rigify Preferences, to disable/enable that feature set without having to completely remove it from the file system.
    
    Challenges that were hopefully successfully tackled:
    - Keep list in sync when user manually adds or removes things through the file system instead of the "add/remove feature set" buttons in the UI.
    - Avoid re-building the feature set list all the time so that the checkbox states can actually be stored when the user exits Blender.
    - Disabling a feature set means calling its unregister function, then rebuilding the rig types and metarigs lists/menus.
    - Some renaming slipped in because I found the variable name "feature_set" a bit confusing. If needed, I could split this change into a separate patch or just forget about it, but I think the longer names help here.
    
    Testing would be welcome, since things turned out a bit more tricky than expected.
    
    In a follow-up patch I would like to do a code quality pass, to split the code a bit better here. There is a bit too much stuff in __init__.py in particular. I will get started on that when this gets close to being finalized.
    
    Reviewed By: angavrilov
    
    Differential Revision: https://developer.blender.org/D12260