diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c index 97b1ff58712..077c587be9a 100644 --- a/release/datafiles/userdef/userdef_default_theme.c +++ b/release/datafiles/userdef/userdef_default_theme.c @@ -287,17 +287,21 @@ const bTheme U_theme_default = { .text = RGBA(0xb8b8b8ff), .text_selected = RGBA(0xffaf23ff), }, + .scrubbing = { + .back = RGBA(0x161616ff), + .text = RGBA(0xc3c3c3ff), + .time_marker = RGBA(0xffffff4d), + .time_marker_selected = RGBA(0xffffffb3), + }, .sidebars = { .back = RGBA(0x30303000), .tab_back = RGBA(0x18181800), - } + }, }, .common = { .anim = { .playhead = RGBA(0x4772b3ff), .preview_range = RGBA(0xa14d0066), - .time_marker = RGBA(0xffffff4d), - .time_marker_selected = RGBA(0xffffffb3), .channels = RGBA(0x194e8080), .channels_sub = RGBA(0x0f2c4d80), .channel_group = RGBA(0x1a332d37), @@ -448,7 +452,6 @@ const bTheme U_theme_default = { .vertex = RGBA(0x000000ff), .vertex_select = RGBA(0xff8500ff), .vertex_active = RGBA(0xffffffff), - .time_scrub_background = RGBA(0x161616ff), .vertex_size = 6, .outline_width = 1, .facedot_size = 4, @@ -486,7 +489,6 @@ const bTheme U_theme_default = { .header_text_hi = RGBA(0xffffffff), .shade1 = RGBA(0xc0c0c000), .grid = RGBA(0x161616ff), - .time_scrub_background = RGBA(0x1d1d1dff), .ds_ipoline = RGBA(0x94e575cc), .keyborder = RGBA(0x000000ff), .keyborder_select = RGBA(0x000000ff), @@ -509,7 +511,6 @@ const bTheme U_theme_default = { .grid = RGBA(0x2a2a2aff), .strip = RGBA(0x0d0d0d80), .strip_select = RGBA(0xff8c00ff), - .time_scrub_background = RGBA(0x161616ff), .keyborder = RGBA(0x000000ff), .keyborder_select = RGBA(0x000000ff), .vertex_size = 3, @@ -540,7 +541,6 @@ const bTheme U_theme_default = { .bone_pose = RGBA(0x50c8ff50), .before_current_frame = RGBA(0xf22e23ff), .after_current_frame = RGBA(0x78f244ff), - .time_scrub_background = RGBA(0x121212ff), .keyborder = RGBA(0x000000ff), .keyborder_select = RGBA(0x000000ff), .vertex_size = 3, @@ -728,7 +728,6 @@ const bTheme U_theme_default = { .header_text = RGBA(0xeeeeeeff), .header_text_hi = RGBA(0xffffffff), .grid = RGBA(0x181818ff), - .time_scrub_background = RGBA(0x181818ff), .vertex_size = 3, .outline_width = 1, .facedot_size = 4, diff --git a/scripts/presets/interface_theme/Blender_Light.xml b/scripts/presets/interface_theme/Blender_Light.xml index fd11ed05a57..3f09efcb613 100644 --- a/scripts/presets/interface_theme/Blender_Light.xml +++ b/scripts/presets/interface_theme/Blender_Light.xml @@ -400,6 +400,15 @@ > + + + + diff --git a/scripts/startup/bl_ui/space_userpref.py b/scripts/startup/bl_ui/space_userpref.py index 292d6e1256d..8e670a4472b 100644 --- a/scripts/startup/bl_ui/space_userpref.py +++ b/scripts/startup/bl_ui/space_userpref.py @@ -985,6 +985,7 @@ class USERPREF_MT_interface_theme_presets(Menu): "ThemeRegions", "ThemeRegionsAssetShelf", "ThemeRegionsChannels", + "ThemeRegionsScrubbing", "ThemeRegionsSidebars", "ThemeSequenceEditor", "ThemeSpaceGeneric", diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 7a8f17aa9f0..6b13f9efbab 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -27,7 +27,7 @@ /* Blender file format version. */ #define BLENDER_FILE_VERSION BLENDER_VERSION -#define BLENDER_FILE_SUBVERSION 79 +#define BLENDER_FILE_SUBVERSION 80 /* Minimum Blender version that supports reading file written with the current * version. Older Blender versions will test this and cancel loading the file, showing a warning to diff --git a/source/blender/blenloader/intern/versioning_userdef.cc b/source/blender/blenloader/intern/versioning_userdef.cc index fa005614d55..05a67191fd7 100644 --- a/source/blender/blenloader/intern/versioning_userdef.cc +++ b/source/blender/blenloader/intern/versioning_userdef.cc @@ -302,8 +302,6 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) if (!USER_VERSION_ATLEAST(500, 56)) { FROM_DEFAULT_V4_UCHAR(common.anim.playhead); - FROM_DEFAULT_V4_UCHAR(common.anim.time_marker); - FROM_DEFAULT_V4_UCHAR(common.anim.time_marker_selected); FROM_DEFAULT_V4_UCHAR(common.anim.channel_group); FROM_DEFAULT_V4_UCHAR(common.anim.channel_group_active); } @@ -362,6 +360,13 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) FROM_DEFAULT_V4_UCHAR(common.anim.channel_selected); } + if (!USER_VERSION_ATLEAST(500, 80)) { + FROM_DEFAULT_V4_UCHAR(regions.scrubbing.back); + FROM_DEFAULT_V4_UCHAR(regions.scrubbing.text); + FROM_DEFAULT_V4_UCHAR(regions.scrubbing.time_marker); + FROM_DEFAULT_V4_UCHAR(regions.scrubbing.time_marker_selected); + } + /** * Always bump subversion in BKE_blender_version.h when adding versioning * code here, and wrap it inside a USER_VERSION_ATLEAST check. diff --git a/source/blender/editors/animation/anim_markers.cc b/source/blender/editors/animation/anim_markers.cc index 1f70dcfe84e..412f2fd05e0 100644 --- a/source/blender/editors/animation/anim_markers.cc +++ b/source/blender/editors/animation/anim_markers.cc @@ -401,11 +401,11 @@ void debug_markers_print_list(ListBase *markers) static void marker_color_get(const TimeMarker *marker, uchar *r_text_color, uchar *r_line_color) { if (marker->flag & SELECT) { - UI_GetThemeColor4ubv(TH_TEXT_HI, r_text_color); + UI_GetThemeColor4ubv(TH_TIME_MARKER_LINE_SELECTED, r_text_color); UI_GetThemeColor4ubv(TH_TIME_MARKER_LINE_SELECTED, r_line_color); } else { - UI_GetThemeColor4ubv(TH_TEXT, r_text_color); + UI_GetThemeColor4ubv(TH_TIME_MARKER_LINE, r_text_color); UI_GetThemeColor4ubv(TH_TIME_MARKER_LINE, r_line_color); } } @@ -502,7 +502,7 @@ static void draw_marker(const uiFontStyle *fstyle, UI_GetThemeColor4ubv(TH_TIME_MARKER_LINE_SELECTED, marker_color); } else { - UI_GetThemeColor4ubv(TH_TEXT, marker_color); + UI_GetThemeColor4ubv(TH_TIME_MARKER_LINE, marker_color); } UI_icon_draw_ex(xpos - (0.5f * UI_ICON_SIZE) - (0.5f * U.pixelsize), diff --git a/source/blender/editors/animation/time_scrub_ui.cc b/source/blender/editors/animation/time_scrub_ui.cc index f5831fceeb8..be12cff9da2 100644 --- a/source/blender/editors/animation/time_scrub_ui.cc +++ b/source/blender/editors/animation/time_scrub_ui.cc @@ -211,11 +211,11 @@ void ED_time_scrub_draw(const ARegion *region, numbers_rect.ymin = get_centered_text_y(&scrub_region_rect) - 4 * UI_SCALE_FAC; if (discrete_frames) { UI_view2d_draw_scale_x__discrete_frames_or_seconds( - region, v2d, &numbers_rect, scene, display_seconds, TH_TEXT); + region, v2d, &numbers_rect, scene, display_seconds, TH_TIME_SCRUB_TEXT); } else { UI_view2d_draw_scale_x__frames_or_seconds( - region, v2d, &numbers_rect, scene, display_seconds, TH_TEXT); + region, v2d, &numbers_rect, scene, display_seconds, TH_TIME_SCRUB_TEXT); } GPU_matrix_pop_projection(); diff --git a/source/blender/editors/include/UI_resources.hh b/source/blender/editors/include/UI_resources.hh index 9d8b9205807..76486d4a40c 100644 --- a/source/blender/editors/include/UI_resources.hh +++ b/source/blender/editors/include/UI_resources.hh @@ -118,6 +118,7 @@ enum ThemeColorID { TH_FRAME_BEFORE, TH_FRAME_AFTER, TH_TIME_SCRUB_BACKGROUND, + TH_TIME_SCRUB_TEXT, TH_TIME_MARKER_LINE, TH_TIME_MARKER_LINE_SELECTED, TH_TIME_GP_KEYFRAME, diff --git a/source/blender/editors/interface/resources.cc b/source/blender/editors/interface/resources.cc index 190d83caa70..c3832d806b2 100644 --- a/source/blender/editors/interface/resources.cc +++ b/source/blender/editors/interface/resources.cc @@ -323,13 +323,16 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid) cp = ts->grid; break; case TH_TIME_SCRUB_BACKGROUND: - cp = ts->time_scrub_background; + cp = btheme->regions.scrubbing.back; + break; + case TH_TIME_SCRUB_TEXT: + cp = btheme->regions.scrubbing.text; break; case TH_TIME_MARKER_LINE: - cp = btheme->common.anim.time_marker; + cp = btheme->regions.scrubbing.time_marker; break; case TH_TIME_MARKER_LINE_SELECTED: - cp = btheme->common.anim.time_marker_selected; + cp = btheme->regions.scrubbing.time_marker_selected; break; case TH_VIEW_OVERLAY: cp = ts->view_overlay; diff --git a/source/blender/makesdna/DNA_theme_types.h b/source/blender/makesdna/DNA_theme_types.h index cb593d99616..5a919253438 100644 --- a/source/blender/makesdna/DNA_theme_types.h +++ b/source/blender/makesdna/DNA_theme_types.h @@ -118,6 +118,12 @@ typedef struct ThemeRegionsChannels { char _pad0[4]; } ThemeRegionsChannels; +typedef struct ThemeRegionsScrubbing { + unsigned char back[4]; + unsigned char text[4]; + unsigned char time_marker[4], time_marker_selected[4]; +} ThemeRegionsScrubbing; + typedef struct ThemeRegionsSidebars { unsigned char back[4]; unsigned char tab_back[4]; @@ -126,6 +132,7 @@ typedef struct ThemeRegionsSidebars { typedef struct ThemeRegions { ThemeRegionsAssetShelf asset_shelf; ThemeRegionsChannels channels; + ThemeRegionsScrubbing scrubbing; ThemeRegionsSidebars sidebars; } ThemeRegions; @@ -133,8 +140,6 @@ typedef struct ThemeCommonAnim { unsigned char playhead[4]; unsigned char preview_range[4]; - unsigned char time_marker[4], time_marker_selected[4]; - unsigned char channels[4], channels_sub[4]; unsigned char channel_group[4], channel_group_active[4]; unsigned char channel[4], channel_selected[4]; @@ -301,8 +306,6 @@ typedef struct ThemeSpace { char _pad2[4]; /* button/tool regions */ - unsigned char _pad3[4]; - unsigned char shade1[4]; unsigned char shade2[4]; @@ -332,7 +335,6 @@ typedef struct ThemeSpace { unsigned char before_current_frame[4], after_current_frame[4]; unsigned char time_gp_keyframe[4]; unsigned char freestyle_edge_mark[4], freestyle_face_mark[4]; - unsigned char time_scrub_background[4]; unsigned char nurb_uline[4], nurb_vline[4]; unsigned char act_spline[4], nurb_sel_uline[4], nurb_sel_vline[4]; @@ -380,7 +382,7 @@ typedef struct ThemeSpace { float keyframe_scale_fac; unsigned char editmesh_active[4]; - char _pad6[1]; + char _pad3[1]; unsigned char clipping_border_3d[4]; diff --git a/source/blender/makesdna/intern/dna_rename_defs.h b/source/blender/makesdna/intern/dna_rename_defs.h index 0e2cc73b2fb..36adba13c3d 100644 --- a/source/blender/makesdna/intern/dna_rename_defs.h +++ b/source/blender/makesdna/intern/dna_rename_defs.h @@ -230,7 +230,6 @@ DNA_STRUCT_RENAME_MEMBER(SurfaceDeformModifierData, numverts, bind_verts_num) DNA_STRUCT_RENAME_MEMBER(Text, name, filepath) DNA_STRUCT_RENAME_MEMBER(TextVars, align_y, align_y_legacy) DNA_STRUCT_RENAME_MEMBER(TextVars, text, text_legacy) -DNA_STRUCT_RENAME_MEMBER(ThemeSpace, scrubbing_background, time_scrub_background) DNA_STRUCT_RENAME_MEMBER(ThemeSpace, show_back_grad, background_type) DNA_STRUCT_RENAME_MEMBER(UVProjectModifierData, num_projectors, projectors_num) DNA_STRUCT_RENAME_MEMBER(UnifiedPaintSettings, unprojected_radius, unprojected_size) diff --git a/source/blender/makesrna/intern/rna_userdef.cc b/source/blender/makesrna/intern/rna_userdef.cc index a3d7cb1640e..64b77a6e7ca 100644 --- a/source/blender/makesrna/intern/rna_userdef.cc +++ b/source/blender/makesrna/intern/rna_userdef.cc @@ -2195,6 +2195,37 @@ static void rna_def_userdef_theme_regions_channels(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); } +/* Scrubbing / Markers region */ +static void rna_def_userdef_theme_regions_scrubbing(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + srna = RNA_def_struct(brna, "ThemeRegionsScrubbing", nullptr); + RNA_def_struct_ui_text(srna, "Scrubbing & Markers Region Settings", ""); + + prop = RNA_def_property(srna, "back", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Background", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "text", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 3); + RNA_def_property_ui_text(prop, "Timestamp", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + /* Marker properties */ + prop = RNA_def_property(srna, "time_marker", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Marker", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + + prop = RNA_def_property(srna, "time_marker_selected", PROP_FLOAT, PROP_COLOR_GAMMA); + RNA_def_property_array(prop, 4); + RNA_def_property_ui_text(prop, "Marker Selected", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); +} + /* Sidebar & Toolbar region */ static void rna_def_userdef_theme_regions_sidebars(BlenderRNA *brna) { @@ -2222,6 +2253,7 @@ static void rna_def_userdef_theme_regions(BlenderRNA *brna) rna_def_userdef_theme_regions_channels(brna); rna_def_userdef_theme_regions_asset_shelf(brna); + rna_def_userdef_theme_regions_scrubbing(brna); rna_def_userdef_theme_regions_sidebars(brna); srna = RNA_def_struct(brna, "ThemeRegions", nullptr); @@ -2239,6 +2271,11 @@ static void rna_def_userdef_theme_regions(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Channels", ""); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + prop = RNA_def_property(srna, "scrubbing", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_NEVER_NULL); + RNA_def_property_ui_text(prop, "Scrubbing / Markers", ""); + RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); + prop = RNA_def_property(srna, "sidebars", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_NEVER_NULL); RNA_def_property_ui_text(prop, "Toolbar / Sidebar", ""); @@ -2266,17 +2303,6 @@ static void rna_def_userdef_theme_common_anim(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Preview Range", "Color of preview range overlay"); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - /* Marker properties */ - prop = RNA_def_property(srna, "time_marker", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Marker Line", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - - prop = RNA_def_property(srna, "time_marker_selected", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Marker Line Selected", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - /* Channel properties */ prop = RNA_def_property(srna, "channels", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 4); @@ -3042,11 +3068,6 @@ static void rna_def_userdef_theme_space_graph(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Grid", ""); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - prop = RNA_def_property(srna, "time_scrub_background", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Scrubbing/Markers Region", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - rna_def_userdef_theme_spaces_vertex(srna, true, false); } @@ -3762,11 +3783,6 @@ static void rna_def_userdef_theme_space_seq(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Selected Strips", ""); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - prop = RNA_def_property(srna, "time_scrub_background", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Scrubbing/Markers Region", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - prop = RNA_def_property(srna, "keyframe_border", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, nullptr, "keyborder"); RNA_def_property_array(prop, 4); @@ -3833,11 +3849,6 @@ static void rna_def_userdef_theme_space_action(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Grid", ""); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - prop = RNA_def_property(srna, "time_scrub_background", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Scrubbing/Markers Region", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - prop = RNA_def_property(srna, "keyframe_border", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, nullptr, "keyborder"); RNA_def_property_array(prop, 4); @@ -3987,11 +3998,6 @@ static void rna_def_userdef_theme_space_nla(BlenderRNA *brna) RNA_def_property_array(prop, 4); RNA_def_property_ui_text(prop, "Keyframe Border Selected", "Color of selected keyframe border"); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - - prop = RNA_def_property(srna, "time_scrub_background", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Scrubbing/Markers Region", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); } static void rna_def_userdef_theme_colorset(BlenderRNA *brna) @@ -4140,11 +4146,6 @@ static void rna_def_userdef_theme_space_clip(BlenderRNA *brna) prop, "Path Keyframe After", "Color of keyframes on a path after current frame"); RNA_def_property_update(prop, 0, "rna_userdef_update"); - prop = RNA_def_property(srna, "time_scrub_background", PROP_FLOAT, PROP_COLOR_GAMMA); - RNA_def_property_array(prop, 4); - RNA_def_property_ui_text(prop, "Scrubbing/Markers Region", ""); - RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); - prop = RNA_def_property(srna, "metadatabg", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_float_sdna(prop, nullptr, "metadatabg"); RNA_def_property_array(prop, 3);