custom_shelf/properties.py

49 lines
1.7 KiB
Python

from .utils import *
from bpy.props import *
class CustomShelfSettings(bpy.types.PropertyGroup) :
panel_list = []
#category_enum = EnumProperty(items = )
#tab_enum = EnumProperty(items = lambda s,c : [(f,f,"") for f in s.tabs])
#search = StringProperty(options = {"TEXTEDIT_UPDATE"})
#filter = BoolProperty(default = True)
#folders = PointerProperty(type= CustomShelfFolders)
#variables = bpy.props.PointerProperty(type= CustomShelfVariables)
class CustomShelfProps(bpy.types.PropertyGroup) :
pass
class AdditionnalShelves(bpy.types.PropertyGroup) :
path: StringProperty(name="Path",subtype = 'FILE_PATH')
class CustomShelfPrefs(bpy.types.AddonPreferences):
bl_idname = __package__
global_path = join(dirname(__file__),'shelves')
global_shelves : StringProperty(name="Shelves Path",subtype = 'DIR_PATH',default =global_path)
additionnal_shelves : CollectionProperty(type = AdditionnalShelves)
tag_filter : StringProperty()
def draw(self, context):
prefs = bpy.context.preferences.addons[__package__].preferences
layout = self.layout
layout.prop(self, "global_shelves")
row = layout.row(align = True)
row.operator("customshelf.add_shelves_folder",icon="ADD",text="")
row.label(text='Additionnal Shelves folder')
for i,shelf in enumerate(prefs.additionnal_shelves) :
row = layout.row(align = True)
row.prop(shelf, "path")
row.operator("customshelf.remove_shelves_folder",icon="REMOVE",text="").index = i
row = layout.row(align = True)
row.prop(self, "tag_filter")
row.operator_menu_enum("customshelf.set_tag_filter",'tag_filter',icon= "DOWNARROW_HLT",text='')