first verison of layer name builder

1.5.3

- feat: quick-prefix for layer using pref separator
  - list editable in addon pref
  - add interface button above layers
- code: added environnement variable for prefix and separator:
  - `PREFIXES` : list of prefix (comma separated uppercase letters between 1 and 6 character, ex: 'AN,SP,L')
  - `SEPARATOR` : Separator character to determine prefixes, default is '_' (should not be a special regex character)
- UI: add addon prefs namespace ui-box in project settings
This commit is contained in:
Pullusb
2021-06-24 16:12:20 +02:00
parent f599964296
commit 0740e835d8
6 changed files with 167 additions and 14 deletions
+27 -13
View File
@@ -15,7 +15,7 @@ bl_info = {
"name": "GP toolbox",
"description": "Set of tools for Grease Pencil in animation production",
"author": "Samuel Bernou, Christophe Seux",
"version": (1, 5, 2),
"version": (1, 5, 3),
"blender": (2, 91, 0),
"location": "Sidebar (N menu) > Gpencil > Toolbox / Gpencil properties",
"warning": "",
@@ -48,6 +48,7 @@ from . import OP_copy_paste
from . import OP_realign
from . import OP_depth_move
from . import OP_key_duplicate_send
from . import OP_layer_name_builder
from . import OP_eraser_brush
from . import TOOL_eraser_brush
from . import handler_draw_cam
@@ -167,7 +168,7 @@ class GPTB_prefs(bpy.types.AddonPreferences):
## addon prefs
## Project preferences
#--# PROJECT PREFERENCES #--#
# subtype (string) – Enumerator in ['FILE_PATH', 'DIR_PATH', 'FILE_NAME', 'BYTE_STRING', 'PASSWORD', 'NONE'].
## fps
@@ -201,11 +202,6 @@ class GPTB_prefs(bpy.types.AddonPreferences):
description="Path relative to blend to place render",
default="//render", maxlen=0, subtype='DIR_PATH')
separator : StringProperty(
name="Namespace separator",
description="Character delimiter to use for detecting namespace (prefix), default is '_', space if nothing specified",
default="_", maxlen=0, subtype='NONE')
use_env_palettes : BoolProperty(
name="Use Project Palettes",
description="Load the palette path in environnement at startup (key 'PALETTES')",
@@ -228,6 +224,16 @@ class GPTB_prefs(bpy.types.AddonPreferences):
description="Path to brushes containing the blends holding the brushes",
default="//", maxlen=0, subtype='DIR_PATH')#, update = set_palette_path
separator : StringProperty(
name="Separator",
description="Character delimiter to use for detecting namespace (prefix), default is '_', space if nothing specified",
default="_", maxlen=0, subtype='NONE')
prefixes : StringProperty(
name="Layers Prefixes",
description="List of prefixes (two capital letters) available for layers(ex: AN,CO,CL)",
default="", maxlen=0)
## Playblast prefs
playblast_auto_play : BoolProperty(
name="Playblast auto play",
@@ -363,6 +369,13 @@ class GPTB_prefs(bpy.types.AddonPreferences):
## render output
subbox.prop(self, 'output_path')
## render output
subbox = box.box()
subbox.label(text='Namespace:')
subbox.prop(self, 'separator')
subbox.prop(self, 'prefixes')
box.prop(self, 'use_relative_remap_on_save')
### TODO add render settings
@@ -416,10 +429,6 @@ class GPTB_prefs(bpy.types.AddonPreferences):
box.prop(self, "render_obj_exclusion", icon='FILTER')#
## random color character separator
box = layout.box()
box.label(text='Random color options:')
box.prop(self, 'separator')
box = layout.box()
box.label(text='Tools options:')
@@ -479,8 +488,6 @@ class GPTB_prefs(bpy.types.AddonPreferences):
col.prop(self.fixprops, 'autokey_add_n_replace')
# row.label(text='lock the active camera if not a draw cam (and if not "layout" in blendfile name)')
if self.pref_tabs == 'UPDATE':
addon_updater_ops.update_settings_ui(self, context)
@@ -508,6 +515,11 @@ def set_env_properties():
if prefs.use_env_brushes:
prefs.brush_path = brushes if brushes else prefs.brush_path
prefix_list = os.getenv('PREFIXES')
prefs.prefixes = prefix_list if prefix_list else prefs.prefixes
separator = os.getenv('SEPARATOR')
prefs.separator = separator if separator else prefs.separator
### --- REGISTER ---
@@ -546,6 +558,7 @@ def register():
OP_realign.register()
OP_depth_move.register()
OP_key_duplicate_send.register()
OP_layer_name_builder.register()
OP_eraser_brush.register()
TOOL_eraser_brush.register()
handler_draw_cam.register()
@@ -574,6 +587,7 @@ def unregister():
handler_draw_cam.unregister()
OP_eraser_brush.unregister()
TOOL_eraser_brush.unregister()
OP_layer_name_builder.unregister()
OP_key_duplicate_send.unregister()
OP_depth_move.unregister()
OP_realign.unregister()