Blender V5.0
versioning_userdef.cc File Reference
#include <cstring>
#include <fmt/format.h>
#include "BLI_listbase.h"
#include "BLI_map.hh"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLI_string_utils.hh"
#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_curve_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
#include "BKE_addon.h"
#include "BKE_blender_version.h"
#include "BKE_colorband.hh"
#include "BKE_idprop.hh"
#include "BKE_keyconfig.h"
#include "BKE_main.hh"
#include "BKE_preferences.h"
#include "BLO_readfile.hh"
#include "BLO_userdef_default.h"
#include "BLT_translation.hh"
#include "DNA_brush_enums.h"
#include "GPU_platform.hh"
#include "MEM_guardedalloc.h"
#include "readfile.hh"
#include "WM_keymap.hh"
#include "WM_types.hh"
#include "wm_event_types.hh"

Go to the source code of this file.

Macros

#define DNA_DEPRECATED_ALLOW
#define N_(msgid)
#define U   BLI_STATIC_ASSERT(false, "Global 'U' not allowed, only use arguments passed in!")
#define USER_VERSION_ATLEAST(ver, subver)
#define FROM_DEFAULT_V4_UCHAR(member)
#define USER_LMOUSESELECT   (1 << 14) /* deprecated */
#define USER_VERSION_ATLEAST(ver, subver)

Functions

static void do_versions_theme (const UserDef *userdef, bTheme *btheme)
static void do_version_select_mouse (const UserDef *userdef, wmKeyMapItem *kmi)
static void do_version_keyframe_jump (wmKeyMapItem *kmi)
static bool keymap_item_has_invalid_wm_context_data_path (wmKeyMapItem *kmi, void *)
static bool keymap_item_update_tweak_event (wmKeyMapItem *kmi, void *)
static void keymap_update_brushes_handle_add_item (const blender::StringRef asset_prefix, const blender::StringRef tool_property, const blender::Map< blender::StringRef, blender::StringRefNull > &tool_tool_map, const blender::Map< blender::StringRef, blender::StringRef > &tool_asset_map, const blender::Map< int, blender::StringRef > &id_asset_map, wmKeyMapItem *kmi)
static void keymap_update_brushes_handle_remove_item (const blender::StringRef asset_prefix, const blender::StringRef tool_property, const blender::Map< int, blender::StringRef > &id_asset_map, wmKeyMapItem *kmi)
static void keymap_update_brushes (wmKeyMap *keymap, const blender::StringRef asset_prefix, const blender::StringRef tool_property, const blender::Map< blender::StringRef, blender::StringRefNull > &tool_tool_map, const blender::Map< blender::StringRef, blender::StringRef > &tool_asset_map, const blender::Map< int, blender::StringRef > &id_asset_map)
static void keymap_update_mesh_sculpt_brushes (wmKeyMap *keymap)
static void keymap_update_mesh_vertex_paint_brushes (wmKeyMap *keymap)
static void keymap_update_mesh_weight_paint_brushes (wmKeyMap *keymap)
static void keymap_update_mesh_texture_paint_brushes (wmKeyMap *keymap)
void blo_do_versions_userdef (UserDef *userdef)
void BLO_sanitize_experimental_features_userpref_blend (UserDef *userdef)

Detailed Description

Version patch user preferences.

Definition in file versioning_userdef.cc.

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 10 of file versioning_userdef.cc.

◆ FROM_DEFAULT_V4_UCHAR

#define FROM_DEFAULT_V4_UCHAR ( member)
Value:
copy_v4_v4_uchar(btheme->member, U_theme_default.member)
MINLINE void copy_v4_v4_uchar(unsigned char r[4], const unsigned char a[4])
const bTheme U_theme_default

Referenced by do_versions_theme().

◆ N_

#define N_ ( msgid)
Value:
msgid

Definition at line 63 of file versioning_userdef.cc.

Referenced by action_buttons_register(), blender::ed::vse::add_unassigned_assets_menu_type(), blender::ed::asset::asset_clear_poll(), BKE_appdir_folder_documents(), BKE_preferences_asset_library_default_add(), BKE_tracking_reconstruction_check(), blo_is_builtin_template(), buttons_context_register(), buttons_texture_modifier_foreach(), buttons_texture_modifier_geonodes_users_add(), buttons_texture_users_from_context(), blender::ed::transform::calculatePropRatio(), blender::ed::asset::shelf::catalog_selector_panel_register(), blender::ed::object::collection_exporter_register(), dynamicPaint_allocateSurfaceType(), dynamicPaint_bakeImageSequence(), dynamicPaint_createUVSurface(), dynamicPaint_doStep(), dynamicPaint_generateBakeData(), dynamicPaint_initAdjacencyData(), dynamicPaint_outputSurfaceImage(), ED_clip_buttons_register(), ED_screen_user_menu_register(), ED_uvedit_buttons_register(), blender::seq::edit_move_strip_to_meta(), blender::seq::edit_strip_swap(), file_attribute_columns_init(), file_draw_tooltip_custom_func(), file_execute_region_panels_register(), file_external_operations_menu_register(), file_tool_props_region_panels_register(), file_tools_region_panels_register(), fluid_bake_sequence(), fluid_initjob(), foreach_nodeclass(), foreach_nodeclass(), foreach_nodeclass(), foreach_nodeclass(), fsmenu_read_system(), fsmenu_xdg_insert_entry(), generator_panel_draw(), graph_buttons_register(), blender::ed::greasepencil::grease_pencil_merge_layer_exec(), heat_bone_weighting(), hud_panels_register(), image_buttons_register(), blender::ed::object::link_to_collection_menu_register(), blender::ed::object::modifier_add_unassigned_assets_menu_type(), blender::ed::object::move_to_collection_menu_register(), nla_buttons_register(), node_blend_label(), blender::nodes::node_composite_switchview_cc::node_declare(), blender::nodes::node_fn_axes_to_rotation_cc::node_declare(), blender::nodes::node_geo_attribute_statistic_cc::node_declare(), blender::nodes::node_geo_grid_prune_cc::node_declare(), blender::ed::geometry::node_group_operator_assets_menu_unassigned(), blender::nodes::node_fn_boolean_math_cc::node_label(), blender::nodes::node_fn_compare_cc::node_label(), blender::nodes::node_fn_match_string_cc::node_label(), blender::nodes::node_geo_warning_cc::node_label(), blender::nodes::node_fn_align_euler_to_vector_cc::node_register(), blender::nodes::node_fn_rotate_euler_cc::node_register(), blender::ed::space_node::node_tree_interface_panel_register(), blender::nodes::node_fn_integer_math_cc::node_update(), blender::nodes::node_geo_mesh_primitive_line_cc::node_update(), override_idtemplate_menu(), panel_draw(), blender::ed::asset::shelf::popover_panel_register(), recent_files_menu_register(), register_node_tree_type_cmp(), register_node_tree_type_geo(), register_node_tree_type_sh(), register_node_tree_type_tex(), blender::ed::spreadsheet::register_row_filter_panels(), register_undefined_types(), rna_property_editable_do(), blender::ed::vse::sequencer_buttons_register(), blender::nodes::node_sh_mix_cc::sh_node_mix_label(), blender::ed::spreadsheet::spreadsheet_data_set_region_panels_register(), surface_shader_ao(), surfaceGenerateGrid(), template_id_browse_tip(), template_operator_property_buts_draw_single(), ui_def_but_rna_propname(), blender::ed::space_node::ui_template_node_link_menu(), uiTemplateRecentFiles_tooltip_func(), blender::ed::space_node::unassigned_assets_menu_type(), undo_history_menu_register(), and view3d_buttons_register().

◆ U

#define U   BLI_STATIC_ASSERT(false, "Global 'U' not allowed, only use arguments passed in!")

Definition at line 67 of file versioning_userdef.cc.

◆ USER_LMOUSESELECT

#define USER_LMOUSESELECT   (1 << 14) /* deprecated */

◆ USER_VERSION_ATLEAST [1/2]

#define USER_VERSION_ATLEAST ( ver,
subver )
Value:
MAIN_VERSION_FILE_ATLEAST(userdef, ver, subver)
#define MAIN_VERSION_FILE_ATLEAST(main, ver, subver)
Definition BKE_main.hh:658

◆ USER_VERSION_ATLEAST [2/2]

#define USER_VERSION_ATLEAST ( ver,
subver )
Value:
MAIN_VERSION_FILE_ATLEAST(userdef, ver, subver)

Referenced by blo_do_versions_userdef(), and do_versions_theme().

Function Documentation

◆ blo_do_versions_userdef()

void blo_do_versions_userdef ( UserDef * userdef)

Patching UserDef struct and Themes.

Always bump subversion in BKE_blender_version.h when adding versioning code here, and wrap it inside a USER_VERSION_ATLEAST check.

Note
Keep this message at the bottom of the function.

Definition at line 798 of file versioning_userdef.cc.

References UserDef::addons, wmKeyMapItem::alt, UserDef::animation_flag, UserDef::anisotropic_filter, ARRAY_SET_ITEMS, ARRAY_SIZE, ASSET_IMPORT_APPEND_REUSE, UserDef::asset_libraries, ASSET_LIBRARY_RELATIVE_PATH, UserDef::audiochannels, UserDef::audioformat, UserDef::audiorate, UserDef::auto_smoothing_new, AUTOKEY_FLAG_INSERTNEEDED, AUTOKEY_FLAG_ONLYKEYINGSET, UserDef::autokey_mode, BEZT_IPO_BEZ, BKE_addon_ensure(), BKE_addon_remove_safe(), BKE_colorband_init(), BKE_keyconfig_pref_filter_items(), BKE_keyconfig_pref_set_select_mouse(), BKE_preferences_asset_library_default_add(), BKE_preferences_asset_library_name_set(), BKE_preferences_asset_shelf_settings_ensure_catalog_path_enabled(), BKE_preferences_extension_repo_add_default_remote(), BKE_preferences_extension_repo_add_default_system(), BKE_preferences_extension_repo_add_default_user(), BKE_preferences_extension_repo_remove(), BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME, BLI_addhead(), BLI_listbase_is_empty(), BLI_string_replace_table_exact(), UserDef::border_width, UserDef::coba_weight, SolidLight::col, UserDef::collection_instance_empty_size, copy_v3_fl3(), copy_v4_fl4(), wmKeyMapItem::ctrl, DATA_, UserDef::dbl_click_time, DEG2RAD, DEG2RADF, bUserScriptDirectory::dir_path, UserDef_FileSpaceData::display_type, do_version_keyframe_jump(), do_version_select_mouse(), do_versions_theme(), UserDef::drag_threshold, UserDef::drag_threshold_mouse, UserDef::drag_threshold_tablet, UserDef::dupflag, UserDef::extension_repos, UserDef::fcu_inactive_alpha, FCURVE_SMOOTH_CONT_ACCEL, UserDef_TempWinBounds::file, FILE_DEFAULTDISPLAY, UserDef::file_preview_type, UserDef::file_space_data, UserDef::filebrowser_display_type, UserDef_FileSpaceData::filter_id, ListBase::first, SolidLight::flag, UserDef::flag, XrNavigation::flag, UserDef::gizmo_flag, UserDef::gizmo_size, UserDef::gizmo_size_navigate_v3d, UserDef::gp_euclideandist, UserDef::gp_manhattandist, GP_PAINT_UNUSED_0, UserDef::gp_settings, UserDef::gpencil_new_layer_col, UserDef::gpu_backend, GPU_BACKEND_METAL, GPU_BACKEND_OPENGL, GPU_BACKEND_VULKAN, UserDef::gpu_flag, UserDef::gpu_shader_workers, HD_AUTO, HD_AUTO_ANIM, wmKeyMapItem::hyper, i, UserDef::image_draw_method, IMAGE_DRAW_METHOD_AUTO, IMAGE_DRAW_METHOD_GLSL, UserDef::ipo_new, WalkNavigation::jump_height, UserDef::key_insert_channels, UserDef::keyconfigstr, UserDef::keyhandles_new, UserDef::keying_flag, keymap_item_has_invalid_wm_context_data_path(), keymap_item_update_tweak_event(), keymap_update_mesh_sculpt_brushes(), keymap_update_mesh_texture_paint_brushes(), keymap_update_mesh_vertex_paint_brushes(), keymap_update_mesh_weight_paint_brushes(), KM_ANY, UserDef::language, UserDef::light_ambient, UserDef::light_param, LISTBASE_FOREACH, UserDef::lookdev_sphere_size, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), MANUALKEY_FLAG_INSERTNEEDED, MEM_callocN(), UserDef::memcachelimit, MEMCPY_STRUCT_AFTER, UserDef::menuthreshold1, UserDef::menuthreshold2, UserDef::mixbufsize, WalkNavigation::mouse_speed, UserDef::move_threshold, bUserScriptDirectory::name, name, NDOF_CAMERA_PAN_ZOOM, UserDef::ndof_deadzone, UserDef::ndof_flag, NDOF_LOCK_HORIZON, NDOF_ORBIT_CENTER_AUTO, UserDef::ndof_rotation_sensitivity, NDOF_SHOULD_PAN, NDOF_SHOULD_ROTATE, NDOF_SHOULD_ZOOM, NDOF_SHOW_GUIDE_ORBIT_CENTER, UserDef::ndof_translation_sensitivity, NDOF_TURNTABLE, UserDef::network_connection_limit, UserDef::network_timeout, UserDef::node_margin, UserDef::node_preview_res, wmKeyMapItem::oskey, UserDef::pad_rot_angle, params, UserDef::pie_animation_timeout, UserDef::pie_menu_radius, UserDef::pie_menu_threshold, UserDef::pie_tap_timeout, UserDef::pixelsize, UserDef::playback_fps_samples, UserDef::pref_flag, UserDef::preferences_display_type, UserDef::pressure_threshold_max, UserDef::recent_files, UserDef::render_display_type, UserDef::rvibright, UserDef::rvisize, UserDef::savetime, SCE_DISPLAY_AA_FXAA, SCE_DISPLAY_AA_OFF, SCE_DISPLAY_AA_SAMPLES_16, SCE_DISPLAY_AA_SAMPLES_32, SCE_DISPLAY_AA_SAMPLES_8, UserDef::script_directories, UserDef::scrollback, UserDef::sequencer_editor_flag, UserDef::sequencer_proxy_setup, UserDef::shader_compilation_method, wmKeyMapItem::shift, SolidLight::smooth, UserDef::sounddir, SolidLight::spec, UserDef::statusbar_flag, STATUSBAR_SHOW_EXTENSIONS_UPDATES, STATUSBAR_SHOW_VERSION, UserDef::stored_bounds, STREQ, STRNCPY(), STRNCPY_UTF8, WalkNavigation::teleport_time, UserDef::texcollectrate, UserDef::text_render, UserDef::textimeout, UserDef::themes, ColorBand::tot, UserDef::transopts, XrNavigation::turn_amount, XrNavigation::turn_speed, U_default, U_theme_default, UserDef::uiflag, UserDef::uiflag2, UserDef::uistyles, ULANGUAGE_ENGLISH, UserDef::undosteps, USER_ADD_EDITMODE, USER_ADD_VIEWALIGNED, USER_ALWAYS_SHOW_NUMBER_ARROWS, USER_ANIM_HIGH_QUALITY_DRAWING, USER_ANIM_KEY_CHANNEL_CUSTOM_PROPERTIES, USER_ANIM_KEY_CHANNEL_LOCATION, USER_ANIM_KEY_CHANNEL_ROTATION, USER_ANIM_KEY_CHANNEL_SCALE, USER_ANIM_SHOW_CHANNEL_GROUP_COLORS, USER_AREA_CORNER_HANDLE, USER_DEVELOPER_UI, USER_DOTRANSLATE_DEPRECATED, USER_DUP_ARM, USER_DUP_CAMERA, USER_DUP_CURVES, USER_DUP_GPENCIL, USER_DUP_LATTICE, USER_DUP_LIGHTPROBE, USER_DUP_POINTCLOUD, USER_DUP_SPEAKER, USER_FILE_PREVIEW_AUTO, USER_FILE_PREVIEW_NONE, USER_FILECOMPRESS, USER_FILTER_BRUSHES_BY_TOOL, USER_FLAG_NUMINPUT_ADVANCED, USER_FLAG_UNUSED_4, USER_FLAG_UNUSED_5, USER_FLAG_UNUSED_6, USER_FLAG_UNUSED_7, USER_GIZMO_DRAW, USER_GLOBALUNDO, USER_GPU_FLAG_OVERLAY_SMOOTH_WIRE, USER_GPU_FLAG_UNUSED_0, USER_HEADER_BOTTOM, USER_HEADER_FROM_PREF, USER_INTERNET_ALLOW, UserDef::user_keyconfig_prefs, UserDef::user_keymaps, USER_LMOUSESELECT, USER_LOCK_CURSOR_ADJUST, USER_MENU_CLOSE_LEAVE, USER_NO_MULTITOUCH_GESTURES, USER_NODE_AUTO_OFFSET, USER_PLAINMENUS, USER_PREF_FLAG_SAVE, USER_REGISTER_ALL_USERS, USER_RENDER_DISPLAY_WINDOW, USER_SEQ_ED_CONNECT_STRIPS_BY_DEFAULT, USER_SEQ_PROXY_SETUP_AUTOMATIC, USER_SHADER_COMPILE_SUBPROCESS, USER_SHOW_GIZMO_NAVIGATE, USER_TEMP_SPACE_DISPLAY_WINDOW, USER_TEXT_RENDER_SUBPIXELAA, USER_TR_UNUSED_3, USER_TR_UNUSED_4, USER_TR_UNUSED_6, USER_TR_UNUSED_7, USER_TRACKBALL, USER_TWOBUTTONMOUSE, USER_VERSION_ATLEAST, USER_XR_NAV_SNAP_TURN, UserDef::v2d_min_gridsize, UserDef::vbocollectrate, UserDef::vbotimeout, SolidLight::vec, WalkNavigation::view_height, UserDef::view_rotate_sensitivity_trackball, UserDef::view_rotate_sensitivity_turntable, UserDef::viewport_aa, XrNavigation::vignette_intensity, UserDef::walk_navigation, WalkNavigation::walk_speed, WalkNavigation::walk_speed_factor, UserDef::widget_unit, WM_KEY_CONFIG_FILTER_ITEM_ALL, rctf::xmax, rctf::xmin, and UserDef::xr_navigation.

Referenced by do_versions_userdef().

◆ BLO_sanitize_experimental_features_userpref_blend()

void BLO_sanitize_experimental_features_userpref_blend ( UserDef * userdef)

Disable unwanted experimental feature settings on startup.

Definition at line 1751 of file versioning_userdef.cc.

References BKE_blender_version_is_alpha(), UserDef::experimental, and MEMSET_STRUCT_AFTER.

Referenced by wm_init_userdef().

◆ do_version_keyframe_jump()

void do_version_keyframe_jump ( wmKeyMapItem * kmi)
static

Definition at line 461 of file versioning_userdef.cc.

References wmKeyMapItem::idname, STREQ, and STRNCPY().

Referenced by blo_do_versions_userdef().

◆ do_version_select_mouse()

void do_version_select_mouse ( const UserDef * userdef,
wmKeyMapItem * kmi )
static

◆ do_versions_theme()

◆ keymap_item_has_invalid_wm_context_data_path()

bool keymap_item_has_invalid_wm_context_data_path ( wmKeyMapItem * kmi,
void *  )
static

◆ keymap_item_update_tweak_event()

bool keymap_item_update_tweak_event ( wmKeyMapItem * kmi,
void *  )
static

Tweak event types have been removed, replace with click-drag.

Definition at line 482 of file versioning_userdef.cc.

References wmKeyMapItem::direction, KM_ANY, KM_DIRECTION_N, KM_DIRECTION_NW, KM_PRESS_DRAG, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE, wmKeyMapItem::type, and wmKeyMapItem::val.

Referenced by blo_do_versions_userdef().

◆ keymap_update_brushes()

◆ keymap_update_brushes_handle_add_item()

◆ keymap_update_brushes_handle_remove_item()

◆ keymap_update_mesh_sculpt_brushes()

◆ keymap_update_mesh_texture_paint_brushes()

◆ keymap_update_mesh_vertex_paint_brushes()

◆ keymap_update_mesh_weight_paint_brushes()