diff --git a/release/datafiles/icons_svg/playhead_snap_off.svg b/release/datafiles/icons_svg/playhead_snap_off.svg new file mode 100644 index 00000000000..6dd59e63ea8 --- /dev/null +++ b/release/datafiles/icons_svg/playhead_snap_off.svg @@ -0,0 +1,66 @@ + + + + diff --git a/release/datafiles/icons_svg/playhead_snap_on.svg b/release/datafiles/icons_svg/playhead_snap_on.svg new file mode 100644 index 00000000000..e08d9452f8a --- /dev/null +++ b/release/datafiles/icons_svg/playhead_snap_on.svg @@ -0,0 +1,66 @@ + + + + diff --git a/scripts/startup/bl_ui/space_dopesheet.py b/scripts/startup/bl_ui/space_dopesheet.py index d4fe7a9736d..a5792754705 100644 --- a/scripts/startup/bl_ui/space_dopesheet.py +++ b/scripts/startup/bl_ui/space_dopesheet.py @@ -285,7 +285,10 @@ class DOPESHEET_HT_editor_buttons: text="", ) - layout.popover(panel="DOPESHEET_PT_playhead_snapping") + row = layout.row(align=True) + row.prop(tool_settings, "use_snap_playhead", text="") + sub = row.row(align=True) + sub.popover(panel="DOPESHEET_PT_playhead_snapping", text="") row = layout.row(align=True) row.prop(tool_settings, "use_proportional_action", text="", icon_only=True) diff --git a/scripts/startup/bl_ui/space_graph.py b/scripts/startup/bl_ui/space_graph.py index 8ae6f2503e7..89a91c9f1e3 100644 --- a/scripts/startup/bl_ui/space_graph.py +++ b/scripts/startup/bl_ui/space_graph.py @@ -94,7 +94,11 @@ class GRAPH_HT_header(Header): panel="GRAPH_PT_snapping", text="", ) - layout.popover(panel="GRAPH_PT_playhead_snapping") + + row = layout.row(align=True) + row.prop(tool_settings, "use_snap_playhead", text="") + sub = row.row(align=True) + sub.popover(panel="GRAPH_PT_playhead_snapping", text="") row = layout.row(align=True) row.prop(tool_settings, "use_proportional_fcurve", text="", icon_only=True) diff --git a/scripts/startup/bl_ui/space_nla.py b/scripts/startup/bl_ui/space_nla.py index 2a7b129682a..bc94d5603ae 100644 --- a/scripts/startup/bl_ui/space_nla.py +++ b/scripts/startup/bl_ui/space_nla.py @@ -47,7 +47,11 @@ class NLA_HT_header(Header): panel="NLA_PT_snapping", text="", ) - layout.popover(panel="NLA_PT_playhead_snapping") + + row = layout.row(align=True) + row.prop(tool_settings, "use_snap_playhead", text="") + sub = row.row(align=True) + sub.popover(panel="NLA_PT_playhead_snapping", text="") class NLA_HT_playback_controls(Header): diff --git a/scripts/startup/bl_ui/space_sequencer.py b/scripts/startup/bl_ui/space_sequencer.py index 75ab7fa073e..a9b7f5e513e 100644 --- a/scripts/startup/bl_ui/space_sequencer.py +++ b/scripts/startup/bl_ui/space_sequencer.py @@ -192,7 +192,10 @@ class SEQUENCER_HT_header(Header): sub = row.row(align=True) sub.popover(panel="SEQUENCER_PT_snapping") if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}: - layout.popover(panel="SEQUENCER_PT_playhead_snapping") + row = layout.row(align=True) + row.prop(tool_settings, "use_snap_playhead", text="") + sub = row.row(align=True) + sub.popover(panel="SEQUENCER_PT_playhead_snapping", text="") layout.separator_spacer() if st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}: diff --git a/scripts/startup/bl_ui/utils.py b/scripts/startup/bl_ui/utils.py index a41a4747f89..52eadc16616 100644 --- a/scripts/startup/bl_ui/utils.py +++ b/scripts/startup/bl_ui/utils.py @@ -54,7 +54,6 @@ class PlayheadSnappingPanel: layout = self.layout col = layout.column() - col.prop(tool_settings, "use_snap_playhead") col.prop(tool_settings, "playhead_snap_distance") col.separator() col.label(text="Snap Target") diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt index 1bbf944123f..efb0df19bc9 100644 --- a/source/blender/editors/datafiles/CMakeLists.txt +++ b/source/blender/editors/datafiles/CMakeLists.txt @@ -723,6 +723,8 @@ if(WITH_BLENDER) play play_reverse play_sound + playhead_snap_off + playhead_snap_on plugin plus pmarker diff --git a/source/blender/editors/include/UI_icons.hh b/source/blender/editors/include/UI_icons.hh index b790928b0a6..8c5477bca6f 100644 --- a/source/blender/editors/include/UI_icons.hh +++ b/source/blender/editors/include/UI_icons.hh @@ -86,6 +86,8 @@ DEF_ICON(SELECT_INTERSECT) DEF_ICON(SELECT_DIFFERENCE) DEF_ICON(SNAP_OFF) DEF_ICON(SNAP_ON) +DEF_ICON(PLAYHEAD_SNAP_OFF) +DEF_ICON(PLAYHEAD_SNAP_ON) DEF_ICON(UNLOCKED) DEF_ICON(LOCKED) DEF_ICON(VIS_SEL_11) diff --git a/source/blender/makesrna/intern/rna_scene.cc b/source/blender/makesrna/intern/rna_scene.cc index 809ae3cd2d8..52fec3903c3 100644 --- a/source/blender/makesrna/intern/rna_scene.cc +++ b/source/blender/makesrna/intern/rna_scene.cc @@ -3756,6 +3756,7 @@ static void rna_def_tool_settings(BlenderRNA *brna) prop = RNA_def_property(srna, "use_snap_playhead", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, nullptr, "snap_flag_playhead", SCE_SNAP); + RNA_def_property_ui_icon(prop, ICON_PLAYHEAD_SNAP_OFF, 1); RNA_def_property_flag(prop, PROP_DEG_SYNC_ONLY); RNA_def_property_ui_text(prop, "Use Snapping", "Snap playhead when scrubbing"); RNA_def_property_boolean_default(prop, false);