def execute(self, context):
scene=bpy.context.scene
plist=scene.cathide_panel_list
slist=scene.cathide_specific_panel_list
slist2=scene.cathide_temporary_panel_list
toregister=[]
orderlist=[]
#save temporary panels details
for p in slist2:
for p2 in slist:
if p.name==p2.name:
if p.panel_context==p2.panel_context:
if p.panel_module==p2.panel_module:
p2.specific_panel_state=p.specific_panel_state
#get cat order:
for c in plist:
orderlist.append(c.name)
#get cat to register
for p in plist:
if p.panelstate==True:
toregister.append(p.name)
#unregister all cat
for p in plist:
for panel in bpy.types.Panel.__subclasses__():
if hasattr(panel, 'bl_space_type'):
if hasattr(panel, 'bl_region_type'):
if hasattr(panel, 'bl_category'):
if panel.bl_space_type=="VIEW_3D":
if panel.bl_region_type=="TOOLS":
if panel.bl_category==p.name:
if "bl_rna" in panel.__dict__:
bpy.utils.unregister_class(panel)
#register cats in order
for p in orderlist:
for panel in bpy.types.Panel.__subclasses__():
if hasattr(panel, 'bl_space_type'):
if hasattr(panel, 'bl_region_type'):
if hasattr(panel, 'bl_category'):
if panel.bl_space_type=="VIEW_3D":
if panel.bl_region_type=="TOOLS":
if panel.bl_category==p:
for p2 in toregister:
if p==p2:
if "bl_rna" not in panel.__dict__:
bpy.utils.register_class(panel)
bpy.ops.cathide.refresh()
info = 'Tool Shelf Categories Configuration applied'
self.report({'INFO'}, info)
return {'FINISHED'}
# apply cathide N Panels configuration
CatHide_v1_5.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录