From b1006fb949d5b437f7ab0514ee779ba24fcfc1f8 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 3 May 2012 19:28:41 +0000 Subject: Clip editor: sort order for dopesheet channels Supported sorting by name, longest tracked segment and total tracked frames. Internally tracks are stored in Tracking datablock, but sort order is a clip editor space property and sorting happens on clip editor draw. If there's no dopesheet opened with different sort orders it's not a problem due to re-sorting wouldn't happen. Also fixed draw issue of tracked segments introduced in previous commit. --- source/blender/makesdna/DNA_space_types.h | 15 +++++++++++++-- source/blender/makesdna/DNA_tracking_types.h | 5 ++++- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'source/blender/makesdna') diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index c2fbc611bc3..0bc91907d6e 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -523,6 +523,12 @@ typedef struct SpaceClip { int postproc_flag, pad2; void *draw_context; + + /* dopesheet */ + short dope_sort; /* sort order in dopesheet view */ + short dope_flag; /* dopsheet view flags */ + + int pad3; } SpaceClip; /* view3d Now in DNA_view3d_types.h */ @@ -916,8 +922,13 @@ enum { #define SC_VIEW_GRAPH 1 #define SC_VIEW_DOPESHEET 2 -/* SpaceClip->runtime_flag */ -#define SC_GRAPH_BOTTOM (1<<0) +/* SpaceClip->dope_sort */ +#define SC_DOPE_SORT_NAME 0 +#define SC_DOPE_SORT_LONGEST 1 +#define SC_DOPE_SORT_TOTAL 2 + +/* SpaceClip->dope_flag */ +#define SC_DOPE_SORT_INVERSE 1 /* space types, moved from DNA_screen_types.h */ /* Do NOT change order, append on end. types are hardcoded needed */ diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h index db1899ab31b..4e2b3c46aa4 100644 --- a/source/blender/makesdna/DNA_tracking_types.h +++ b/source/blender/makesdna/DNA_tracking_types.h @@ -206,7 +206,10 @@ typedef struct MovieTrackingDopesheetChannel { typedef struct MovieTrackingDopesheet { ListBase channels; - int tot_channel, pad; + int tot_channel; + + short sort_order; /* order in which tracks are stored */ + short sort_inverse; /* order of tracks is inverted */ } MovieTrackingDopesheet; typedef struct MovieTracking { -- cgit v1.2.3