disable (currently unused) addons, update
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
import bpy
|
||||
from bpy.utils import register_class, unregister_class
|
||||
from bpy.types import Operator, PropertyGroup, UIList
|
||||
from bpy.props import EnumProperty
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
class SIMPLEBAKE_UL_Presets_List(UIList):
|
||||
"""UIList."""
|
||||
|
||||
def draw_item(self, context, layout, data, item, icon, active_data,
|
||||
active_propname, index):
|
||||
|
||||
# We could write some code to decide which icon to use here...
|
||||
custom_icon = 'PACKAGE'
|
||||
|
||||
# Make sure your code supports all 3 layout types
|
||||
if self.layout_type in {'DEFAULT', 'COMPACT'}:
|
||||
layout.label(text=item.name, icon = custom_icon)
|
||||
|
||||
elif self.layout_type in {'GRID'}:
|
||||
layout.alignment = 'CENTER'
|
||||
layout.label(text="", icon = custom_icon)
|
||||
|
||||
class SimpleBake_OT_preset_refresh(Operator):
|
||||
"""Refresh list of SimpleBake presets"""
|
||||
bl_idname = "simplebake.preset_refresh"
|
||||
bl_label = "Refresh"
|
||||
|
||||
def execute(self, context):
|
||||
sbp = context.scene.SimpleBake_Props
|
||||
|
||||
sbp.presets_list.clear()
|
||||
|
||||
p = Path(bpy.utils.script_path_user())
|
||||
p = p.parents[1]
|
||||
p = p / "data" / "SimpleBake"
|
||||
|
||||
try:
|
||||
presets = sorted(os.listdir(str(p)))
|
||||
presets = [pr for pr in presets if not os.path.isdir(str(p / pr))]
|
||||
except Exception as e:
|
||||
print(repr(e))
|
||||
self.report({"INFO"}, "No presets found")
|
||||
return {'CANCELLED'}
|
||||
|
||||
if len(presets) == 0:
|
||||
self.report({"INFO"}, "No presets found")
|
||||
return {'CANCELLED'}
|
||||
|
||||
for preset in presets:
|
||||
#List should be clear
|
||||
i = sbp.presets_list.add()
|
||||
i.name = preset
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
class SimpleBake_OT_preset_delete(Operator):
|
||||
"""Delete selected SimpleBake preset"""
|
||||
bl_idname = "simplebake.preset_delete"
|
||||
bl_label = "Delete"
|
||||
|
||||
@classmethod
|
||||
def poll(cls,context):
|
||||
sbp = context.scene.SimpleBake_Props
|
||||
try:
|
||||
sbp.presets_list[sbp.presets_list_index].name
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
||||
def execute(self, context):
|
||||
sbp = context.scene.SimpleBake_Props
|
||||
|
||||
p = Path(bpy.utils.script_path_user())
|
||||
p = p.parents[1]
|
||||
p = p / "data" / "SimpleBake"
|
||||
|
||||
index = sbp.presets_list_index
|
||||
item = sbp.presets_list[index]
|
||||
p = p / item.name
|
||||
|
||||
os.remove(str(p))
|
||||
|
||||
#Refreh the list
|
||||
|
||||
bpy.ops.simplebake.preset_refresh()
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
classes = ([
|
||||
SIMPLEBAKE_UL_Presets_List,
|
||||
SimpleBake_OT_preset_refresh,
|
||||
SimpleBake_OT_preset_delete
|
||||
])
|
||||
|
||||
def register():
|
||||
global classes
|
||||
for cls in classes:
|
||||
register_class(cls)
|
||||
|
||||
def unregister():
|
||||
global classes
|
||||
for cls in classes:
|
||||
unregister_class(cls)
|
||||
Reference in New Issue
Block a user