def execute(self, context):
scene=bpy.context.scene
plist=scene.cathide_panel_list
idx=scene.cathide_index
slist=scene.cathide_specific_panel_list
sptoregister=[]
sptounregister=[]
nok=plist[idx].name
#register panels
for p in slist:
if p.specific_panel_state==True:
sptoregister.append(p.name)
for p in sptoregister:
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 hasattr(panel, 'bl_label'):
if panel.bl_space_type=="VIEW_3D":
if panel.bl_region_type=="TOOLS":
if panel.bl_category==nok:
if panel.bl_label==p:
if "bl_rna" not in panel.__dict__:
bpy.utils.register_class(panel)
#unregister panels
for p in slist:
if p.specific_panel_state==False:
sptounregister.append(p.name)
for p in sptounregister:
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 hasattr(panel, 'bl_label'):
if panel.bl_space_type=="VIEW_3D":
if panel.bl_region_type=="TOOLS":
if panel.bl_category==nok:
if panel.bl_label==p:
if "bl_rna" in panel.__dict__:
bpy.utils.unregister_class(panel)
bpy.ops.cathide.refresh()
info = 'Unselected Panels Hidden'
self.report({'INFO'}, info)
return {'FINISHED'}
# add preset operator
CatHide_v1_2.py 文件源码
python
阅读 26
收藏 0
点赞 0
评论 0
评论列表
文章目录