diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-03-05 10:33:09 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-03-05 10:39:02 +0300 |
commit | b8ef725497e45648ac7214927294e3ab60b71bc2 (patch) | |
tree | 27ec6c9d7739ad55ff607dc53a82a8d6d33dc82a /source/blender/editors/space_clip/tracking_select.c | |
parent | e83854e759f61ed82c9c0ceedadf55c9a670245a (diff) |
Cemara tracking: move select all into a utility function
Diffstat (limited to 'source/blender/editors/space_clip/tracking_select.c')
-rw-r--r-- | source/blender/editors/space_clip/tracking_select.c | 84 |
1 files changed, 3 insertions, 81 deletions
diff --git a/source/blender/editors/space_clip/tracking_select.c b/source/blender/editors/space_clip/tracking_select.c index 920c984676f..c9d24db7ba6 100644 --- a/source/blender/editors/space_clip/tracking_select.c +++ b/source/blender/editors/space_clip/tracking_select.c @@ -792,90 +792,12 @@ static int select_all_exec(bContext *C, wmOperator *op) SpaceClip *sc = CTX_wm_space_clip(C); MovieClip *clip = ED_space_clip_get_clip(sc); MovieTracking *tracking = &clip->tracking; - MovieTrackingTrack *track = NULL; /* selected track */ - MovieTrackingPlaneTrack *plane_track = NULL; /* selected plane track */ - MovieTrackingMarker *marker; - ListBase *tracksbase = BKE_tracking_get_active_tracks(tracking); - ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(tracking); - int action = RNA_enum_get(op->ptr, "action"); - int framenr = ED_space_clip_get_clip_frame_number(sc); - bool has_selection = false; - - if (action == SEL_TOGGLE) { - action = SEL_SELECT; - - for (track = tracksbase->first; track; track = track->next) { - if (TRACK_VIEW_SELECTED(sc, track)) { - marker = BKE_tracking_marker_get(track, framenr); - - if (MARKER_VISIBLE(sc, track, marker)) { - action = SEL_DESELECT; - break; - } - } - } - - for (plane_track = plane_tracks_base->first; - plane_track; - plane_track = plane_track->next) - { - if (PLANE_TRACK_VIEW_SELECTED(plane_track)) { - action = SEL_DESELECT; - break; - } - } - } - - for (track = tracksbase->first; track; track = track->next) { - if ((track->flag & TRACK_HIDDEN) == 0) { - marker = BKE_tracking_marker_get(track, framenr); - if (MARKER_VISIBLE(sc, track, marker)) { - switch (action) { - case SEL_SELECT: - track->flag |= SELECT; - track->pat_flag |= SELECT; - track->search_flag |= SELECT; - break; - case SEL_DESELECT: - track->flag &= ~SELECT; - track->pat_flag &= ~SELECT; - track->search_flag &= ~SELECT; - break; - case SEL_INVERT: - track->flag ^= SELECT; - track->pat_flag ^= SELECT; - track->search_flag ^= SELECT; - break; - } - } - } + int action = RNA_enum_get(op->ptr, "action"); - if (TRACK_VIEW_SELECTED(sc, track)) - has_selection = true; - } + bool has_selection = false; - for (plane_track = plane_tracks_base->first; - plane_track; - plane_track = plane_track->next) - { - if ((plane_track->flag & PLANE_TRACK_HIDDEN) == 0) { - switch (action) { - case SEL_SELECT: - plane_track->flag |= SELECT; - break; - case SEL_DESELECT: - plane_track->flag &= ~SELECT; - break; - case SEL_INVERT: - plane_track->flag ^= SELECT; - break; - } - if (plane_track->flag & SELECT) { - has_selection = true; - } - } - } + ED_clip_select_all(sc, action, &has_selection); if (!has_selection) sc->flag &= ~SC_LOCK_SELECTION; |