The recently introduced feature of playhead snapping (#137278) added a popover menu for snap targets. This used text to indicate the contents of said popover. In order to bring it in line with the other snapping menu, this PR adds icons to indicate the enabled state of snapping. Part of #135794 Pull Request: https://projects.blender.org/blender/blender/pulls/139271
67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
# SPDX-FileCopyrightText: 2009-2023 Blender Authors
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
from bpy.types import Menu
|
|
|
|
|
|
# Panel mix-in class (don't register).
|
|
class PresetPanel:
|
|
bl_space_type = 'PROPERTIES'
|
|
bl_region_type = 'HEADER'
|
|
bl_label = "Presets"
|
|
path_menu = Menu.path_menu
|
|
|
|
@classmethod
|
|
def draw_panel_header(cls, layout):
|
|
layout.emboss = 'NONE'
|
|
layout.popover(
|
|
panel=cls.__name__,
|
|
icon='PRESET',
|
|
text="",
|
|
)
|
|
|
|
@classmethod
|
|
def draw_menu(cls, layout, text=None):
|
|
if text is None:
|
|
text = cls.bl_label
|
|
|
|
layout.popover(
|
|
panel=cls.__name__,
|
|
icon='PRESET',
|
|
text=text,
|
|
)
|
|
|
|
def draw(self, context):
|
|
layout = self.layout
|
|
layout.emboss = 'PULLDOWN_MENU'
|
|
layout.operator_context = 'EXEC_DEFAULT'
|
|
|
|
Menu.draw_preset(self, context)
|
|
|
|
|
|
class PlayheadSnappingPanel:
|
|
bl_region_type = 'HEADER'
|
|
bl_label = "Playhead"
|
|
|
|
@classmethod
|
|
def poll(cls, context):
|
|
del context
|
|
return True
|
|
|
|
def draw(self, context):
|
|
tool_settings = context.tool_settings
|
|
layout = self.layout
|
|
col = layout.column()
|
|
|
|
col.prop(tool_settings, "playhead_snap_distance")
|
|
col.separator()
|
|
col.label(text="Snap Target")
|
|
col.prop(tool_settings, "snap_playhead_element", expand=True)
|
|
col.separator()
|
|
|
|
if 'FRAME' in tool_settings.snap_playhead_element:
|
|
col.prop(tool_settings, "snap_playhead_frame_step")
|
|
if 'SECOND' in tool_settings.snap_playhead_element:
|
|
col.prop(tool_settings, "snap_playhead_second_step")
|