UI: Add color selector to Bone Groups list #105036

Merged
Pablo Vazquez merged 1 commits from pablovazquez/blender:ui-bone-group-list-colors into main 2023-02-22 17:34:56 +01:00
1 changed files with 27 additions and 11 deletions

View File

@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy
from bpy.types import Panel, Menu from bpy.types import Panel, Menu, UIList
from rna_prop_ui import PropertyPanel from rna_prop_ui import PropertyPanel
from bl_ui.properties_animviz import ( from bl_ui.properties_animviz import (
@ -91,6 +91,16 @@ class DATA_MT_bone_group_context_menu(Menu):
layout.operator("pose.group_sort", icon='SORTALPHA') layout.operator("pose.group_sort", icon='SORTALPHA')
class DATA_UL_bone_groups(UIList):
def draw_item(self, _context, layout, _data, item, _icon, _active_data, _active_propname, _index):
pablovazquez marked this conversation as resolved
Review

icon here is unused I think, so should be _icon.

`icon` here is unused I think, so should be `_icon`.
layout.prop(item, "name", text="", emboss=False, icon='GROUP_BONE')
if item.is_custom_color_set or item.color_set == 'DEFAULT':
layout.prop(item, "color_set", icon_only=True, icon="COLOR")
else:
layout.prop(item, "color_set", icon_only=True)
class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel): class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
bl_label = "Bone Groups" bl_label = "Bone Groups"
bl_options = {'DEFAULT_CLOSED'} bl_options = {'DEFAULT_CLOSED'}
@ -111,8 +121,9 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
rows = 1 rows = 1
if group: if group:
rows = 4 rows = 4
row.template_list( row.template_list(
"UI_UL_list", "DATA_UL_bone_groups",
"bone_groups", "bone_groups",
pose, pose,
"bone_groups", "bone_groups",
@ -121,6 +132,7 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
rows=rows, rows=rows,
) )
col = row.column(align=True) col = row.column(align=True)
col.operator("pose.group_add", icon='ADD', text="") col.operator("pose.group_add", icon='ADD', text="")
col.operator("pose.group_remove", icon='REMOVE', text="") col.operator("pose.group_remove", icon='REMOVE', text="")
@ -130,17 +142,20 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
col.operator("pose.group_move", icon='TRIA_UP', text="").direction = 'UP' col.operator("pose.group_move", icon='TRIA_UP', text="").direction = 'UP'
col.operator("pose.group_move", icon='TRIA_DOWN', text="").direction = 'DOWN' col.operator("pose.group_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
split = layout.split() if group.is_custom_color_set:
col = layout.column()
split = col.split(factor=0.4)
col = split.column()
col.prop(group, "color_set")
if group.color_set:
col = split.column() col = split.column()
sub = col.row(align=True) row = col.row()
sub.enabled = group.is_custom_color_set # only custom colors are editable row.alignment = 'RIGHT'
sub.prop(group.colors, "normal", text="") row.label(text="Custom Colors")
sub.prop(group.colors, "select", text="")
sub.prop(group.colors, "active", text="") col = split.column(align=True)
row = col.row(align=True)
row.prop(group.colors, "normal", text="")
row.prop(group.colors, "select", text="")
row.prop(group.colors, "active", text="")
row = layout.row() row = layout.row()
@ -258,6 +273,7 @@ classes = (
DATA_PT_skeleton, DATA_PT_skeleton,
DATA_MT_bone_group_context_menu, DATA_MT_bone_group_context_menu,
DATA_PT_bone_groups, DATA_PT_bone_groups,
DATA_UL_bone_groups,
DATA_PT_motion_paths, DATA_PT_motion_paths,
DATA_PT_motion_paths_display, DATA_PT_motion_paths_display,
DATA_PT_display, DATA_PT_display,