diff options
-rw-r--r-- | release/scripts/startup/bl_ui/space_clip.py | 1 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_dopesheet.py | 1 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_graph.py | 1 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_nla.py | 1 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/space_time.py | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_space.c | 55 |
6 files changed, 60 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index d1981c0b0e5..96ad70e0015 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -1147,6 +1147,7 @@ class CLIP_MT_view(Menu): layout.operator_context = 'INVOKE_DEFAULT' layout.prop(sc, "show_seconds") + layout.prop(sc, "show_locked_time") layout.separator() layout.separator() diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py index 269c960ee7e..eeb08916416 100644 --- a/release/scripts/startup/bl_ui/space_dopesheet.py +++ b/release/scripts/startup/bl_ui/space_dopesheet.py @@ -173,6 +173,7 @@ class DOPESHEET_MT_view(Menu): layout.prop(st, "use_marker_sync") layout.prop(st, "show_seconds") + layout.prop(st, "show_locked_time") layout.separator() layout.operator("anim.previewrange_set") diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py index 67fc2867536..353c689b484 100644 --- a/release/scripts/startup/bl_ui/space_graph.py +++ b/release/scripts/startup/bl_ui/space_graph.py @@ -105,6 +105,7 @@ class GRAPH_MT_view(Menu): layout.prop(st, "use_only_selected_keyframe_handles") layout.prop(st, "show_seconds") + layout.prop(st, "show_locked_time") layout.separator() layout.operator("anim.previewrange_set") diff --git a/release/scripts/startup/bl_ui/space_nla.py b/release/scripts/startup/bl_ui/space_nla.py index 06fe73a543c..baadc69d9f6 100644 --- a/release/scripts/startup/bl_ui/space_nla.py +++ b/release/scripts/startup/bl_ui/space_nla.py @@ -74,6 +74,7 @@ class NLA_MT_view(Menu): layout.prop(st, "show_frame_indicator") layout.prop(st, "show_seconds") + layout.prop(st, "show_locked_time") layout.prop(st, "show_strip_curves") diff --git a/release/scripts/startup/bl_ui/space_time.py b/release/scripts/startup/bl_ui/space_time.py index 691a6cde5f1..c96b8fd568e 100644 --- a/release/scripts/startup/bl_ui/space_time.py +++ b/release/scripts/startup/bl_ui/space_time.py @@ -126,6 +126,7 @@ class TIME_MT_view(Menu): st = context.space_data layout.prop(st, "show_seconds") + layout.prop(st, "show_locked_time") layout.operator("time.view_all") layout.separator() diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 85d0344e087..1afc413d590 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -289,6 +289,55 @@ static void rna_area_region_from_regiondata(PointerRNA *ptr, ScrArea **r_sa, ARe area_region_from_regiondata(sc, regiondata, r_sa, r_ar); } +static int rna_Space_view2d_sync_get(PointerRNA *ptr) +{ + ScrArea *sa; + ARegion *ar; + + sa = rna_area_from_space(ptr); /* can be NULL */ + ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW); + if (ar) { + View2D *v2d = &ar->v2d; + return (v2d->flag & V2D_VIEWSYNC_SCREEN_TIME) != 0; + } + + return false; +} + +static void rna_Space_view2d_sync_set(PointerRNA *ptr, int value) +{ + ScrArea *sa; + ARegion *ar; + + sa = rna_area_from_space(ptr); /* can be NULL */ + ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW); + if (ar) { + View2D *v2d = &ar->v2d; + if (value) { + v2d->flag |= V2D_VIEWSYNC_SCREEN_TIME; + } + else { + v2d->flag &= ~V2D_VIEWSYNC_SCREEN_TIME; + } + } +} + +static void rna_Space_view2d_sync_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) +{ + ScrArea *sa; + ARegion *ar; + + sa = rna_area_from_space(ptr); /* can be NULL */ + ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW); + + if (ar) { + bScreen *sc = (bScreen *)ptr->id.data; + View2D *v2d = &ar->v2d; + + UI_view2d_sync(sc, sa, v2d, V2D_LOCK_SET); + } +} + static PointerRNA rna_CurrentOrientation_get(PointerRNA *ptr) { Scene *scene = ((bScreen *)ptr->id.data)->scene; @@ -1320,6 +1369,12 @@ static void rna_def_space(BlenderRNA *brna) RNA_def_property_enum_items(prop, space_type_items); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Type", "Space data type"); + + /* access to V2D_VIEWSYNC_SCREEN_TIME */ + prop = RNA_def_property(srna, "show_locked_time", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_funcs(prop, "rna_Space_view2d_sync_get", "rna_Space_view2d_sync_set"); + RNA_def_property_ui_text(prop, "Lock Time to Other Windows", ""); + RNA_def_property_update(prop, NC_SPACE | ND_SPACE_TIME, "rna_Space_view2d_sync_update"); } /* for all spaces that use a mask */ |