78 lines
2.3 KiB
Python
78 lines
2.3 KiB
Python
import bpy
|
|
from bpy.types import AddonPreferences
|
|
from bpy.props import BoolProperty, StringProperty
|
|
from .ui import change_ui_category
|
|
from .util import get_addon_prefs
|
|
from .operators import better_delete
|
|
|
|
class BlenLog_Prefs(AddonPreferences):
|
|
bl_idname = __package__
|
|
|
|
def update_sidebar_panel(self, context):
|
|
change_ui_category(self.sidebar_panel)
|
|
|
|
sidebar_panel: StringProperty(
|
|
name="Sidebar Panel",
|
|
description="Define which sidebar panel the Blender Log should appear in",
|
|
default="Blender Log",
|
|
update=update_sidebar_panel,
|
|
)
|
|
purge_on_save: BoolProperty(
|
|
name="Purge On Save",
|
|
description="Run a recursive purge on file save, rather than simply not saving unused datablocks, which is Blender's default behaviour. This ensures your file is never saved with any garbage orphan data",
|
|
default=False,
|
|
)
|
|
|
|
def update_deletion_pie(self, context):
|
|
if self.use_deletion_pie:
|
|
better_delete.register_hotkeys()
|
|
else:
|
|
better_delete.unregister_hotkeys()
|
|
|
|
use_deletion_pie: BoolProperty(
|
|
name="Delete Pie On X",
|
|
description="Overwrite the X hotkey in the 3D View and the Outliner for more truthful deletion behaviours",
|
|
default=False,
|
|
update=update_deletion_pie
|
|
)
|
|
|
|
display_stack_trace: BoolProperty(
|
|
name="Display Stack Trace",
|
|
description="Whether to display the Python Stack Trace of a log entry. Only useful for Python developers",
|
|
default=False,
|
|
)
|
|
|
|
def draw(self, context):
|
|
layout = self.layout
|
|
layout.use_property_split = True
|
|
|
|
layout = layout.column(align=True)
|
|
layout.label(text="Cosmetic:")
|
|
layout.prop(self, 'sidebar_panel')
|
|
|
|
layout.separator()
|
|
layout.label(text="Debug:")
|
|
layout.prop(self, 'display_stack_trace')
|
|
|
|
layout.separator()
|
|
layout.label(text="Mistake Avoidance:")
|
|
layout.prop(self, 'purge_on_save')
|
|
layout.prop(self, 'use_deletion_pie')
|
|
|
|
|
|
registry = [BlenLog_Prefs]
|
|
|
|
|
|
@bpy.app.handlers.persistent
|
|
def delayed_register(_):
|
|
prefs = get_addon_prefs(bpy.context)
|
|
prefs.sidebar_panel = prefs.sidebar_panel
|
|
|
|
|
|
def register():
|
|
bpy.app.handlers.load_post.append(delayed_register)
|
|
|
|
|
|
def unregister():
|
|
bpy.app.handlers.load_post.remove(delayed_register)
|