Refactor: RNA property undo push only when there is an owner ID

RNA pointers should always have valid owner IDs. And most structs
using STRUCT_UNDO do not need it because the owner is a UI datablock
which already determines if undo is needed.

With this change, it is possible to have structs used both in UI and scene
datablocks and have undo work depending on the owner. This is needed for
collections storing operator properties for export (#116646).

Pull Request: https://projects.blender.org/blender/blender/pulls/117640
This commit is contained in:
Brecht Van Lommel
2024-02-08 15:08:09 +01:00
parent 0ed2d3e260
commit 2b0caf00a8
6 changed files with 15 additions and 75 deletions

View File

@@ -1104,21 +1104,17 @@ void UI_but_execute(const bContext *C, ARegion *region, uiBut *but)
* returns false if undo needs to be disabled. */
static bool ui_but_is_rna_undo(const uiBut *but)
{
if (but->rnapoin.owner_id) {
/* avoid undo push for buttons who's ID are screen or wm level
* we could disable undo for buttons with no ID too but may have
* unforeseen consequences, so best check for ID's we _know_ are not
* handled by undo - campbell */
ID *id = but->rnapoin.owner_id;
if (ID_CHECK_UNDO(id) == false) {
return false;
}
if (but->rnaprop == nullptr) {
return true;
}
if (but->rnapoin.type && !RNA_struct_undo_check(but->rnapoin.type)) {
/* No owner or type known. Assume we do not undo push as it may be a property from
* the preferences stored outside datablocks. */
if (but->rnapoin.owner_id == nullptr || but->rnapoin.type == nullptr) {
return false;
}
return true;
return ID_CHECK_UNDO(but->rnapoin.owner_id) && RNA_struct_undo_check(but->rnapoin.type);
}
/* assigns automatic keybindings to menu items for fast access

View File

@@ -6025,7 +6025,6 @@ static void rna_def_image_format_stereo3d_format(BlenderRNA *brna)
srna = RNA_def_struct(brna, "Stereo3dFormat", nullptr);
RNA_def_struct_sdna(srna, "Stereo3dFormat");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Stereo Output", "Settings for stereo output");
prop = RNA_def_property(srna, "display_mode", PROP_ENUM, PROP_NONE);

View File

@@ -1340,7 +1340,6 @@ static void rna_def_userdef_theme_ui_font_style(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeFontStyle", nullptr);
RNA_def_struct_sdna(srna, "uiFontStyle");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Font Style", "Theme settings for Font");
prop = RNA_def_property(srna, "points", PROP_FLOAT, PROP_UNSIGNED);
@@ -1396,7 +1395,6 @@ static void rna_def_userdef_theme_ui_style(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeStyle", nullptr);
RNA_def_struct_sdna(srna, "uiStyle");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Style", "Theme settings for style sets");
prop = RNA_def_property(srna, "panel_title", PROP_POINTER, PROP_NONE);
@@ -1428,7 +1426,6 @@ static void rna_def_userdef_theme_ui_wcol(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeWidgetColors", nullptr);
RNA_def_struct_sdna(srna, "uiWidgetColors");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Widget Color Set", "Theme settings for widget color sets");
prop = RNA_def_property(srna, "outline", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -1490,7 +1487,6 @@ static void rna_def_userdef_theme_ui_wcol_state(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeWidgetStateColors", nullptr);
RNA_def_struct_sdna(srna, "uiWidgetStateColors");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(
srna, "Theme Widget State Color", "Theme settings for widget state colors");
@@ -1556,7 +1552,6 @@ static void rna_def_userdef_theme_ui_panel(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemePanelColors", nullptr);
RNA_def_struct_sdna(srna, "uiPanelColors");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Panel Color", "Theme settings for panel colors");
prop = RNA_def_property(srna, "header", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -1599,7 +1594,6 @@ static void rna_def_userdef_theme_ui_gradient(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeGradientColors", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(
srna, "Theme Background Color", "Theme settings for background colors and gradient");
@@ -1634,7 +1628,6 @@ static void rna_def_userdef_theme_ui(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeUserInterface", nullptr);
RNA_def_struct_sdna(srna, "ThemeUI");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(
srna, "Theme User Interface", "Theme settings for user interface elements");
@@ -2124,7 +2117,6 @@ static void rna_def_userdef_theme_asset_shelf(BlenderRNA *brna)
PropertyRNA *prop;
srna = RNA_def_struct(brna, "ThemeAssetShelf", nullptr);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Asset Shelf Color", "Theme settings for asset shelves");
prop = RNA_def_property(srna, "header_back", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -2449,7 +2441,6 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeView3D", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme 3D Viewport", "Theme settings for the 3D viewport");
rna_def_userdef_theme_spaces_gradient(srna);
@@ -2679,7 +2670,6 @@ static void rna_def_userdef_theme_space_graph(BlenderRNA *brna)
/* space_graph */
srna = RNA_def_struct(brna, "ThemeGraphEditor", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Graph Editor", "Theme settings for the graph editor");
rna_def_userdef_theme_spaces_main(srna);
@@ -2766,7 +2756,6 @@ static void rna_def_userdef_theme_space_file(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeFileBrowser", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme File Browser", "Theme settings for the File Browser");
rna_def_userdef_theme_spaces_main(srna);
@@ -2792,7 +2781,6 @@ static void rna_def_userdef_theme_space_outliner(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeOutliner", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Outliner", "Theme settings for the Outliner");
rna_def_userdef_theme_spaces_main(srna);
@@ -2841,7 +2829,6 @@ static void rna_def_userdef_theme_space_userpref(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemePreferences", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Preferences", "Theme settings for the Blender Preferences");
rna_def_userdef_theme_spaces_main(srna);
@@ -2856,7 +2843,6 @@ static void rna_def_userdef_theme_space_console(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeConsole", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Console", "Theme settings for the Console");
rna_def_userdef_theme_spaces_main(srna);
@@ -2907,7 +2893,6 @@ static void rna_def_userdef_theme_space_info(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeInfo", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Info", "Theme settings for Info");
rna_def_userdef_theme_spaces_main(srna);
@@ -2992,7 +2977,6 @@ static void rna_def_userdef_theme_space_text(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeTextEditor", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Text Editor", "Theme settings for the Text Editor");
rna_def_userdef_theme_spaces_main(srna);
@@ -3088,7 +3072,6 @@ static void rna_def_userdef_theme_space_node(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeNodeEditor", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Node Editor", "Theme settings for the Node Editor");
rna_def_userdef_theme_spaces_main(srna);
@@ -3292,7 +3275,6 @@ static void rna_def_userdef_theme_space_buts(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeProperties", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Properties", "Theme settings for the Properties");
prop = RNA_def_property(srna, "match", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -3318,7 +3300,6 @@ static void rna_def_userdef_theme_space_image(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeImageEditor", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Image Editor", "Theme settings for the Image Editor");
rna_def_userdef_theme_spaces_main(srna);
@@ -3431,7 +3412,6 @@ static void rna_def_userdef_theme_space_seq(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeSequenceEditor", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Sequence Editor", "Theme settings for the Sequence Editor");
rna_def_userdef_theme_spaces_main(srna);
@@ -3638,7 +3618,6 @@ static void rna_def_userdef_theme_space_action(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeDopeSheet", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Dope Sheet", "Theme settings for the Dope Sheet");
rna_def_userdef_theme_spaces_main(srna);
@@ -3848,7 +3827,6 @@ static void rna_def_userdef_theme_space_nla(BlenderRNA *brna)
/* space_nla */
srna = RNA_def_struct(brna, "ThemeNLAEditor", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Nonlinear Animation", "Theme settings for the NLA Editor");
rna_def_userdef_theme_spaces_main(srna);
@@ -4011,7 +3989,6 @@ static void rna_def_userdef_theme_colorset(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeBoneColorSet", nullptr);
RNA_def_struct_sdna(srna, "ThemeWireColor");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Bone Color Set", "Theme settings for bone color sets");
prop = RNA_def_property(srna, "normal", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -4048,7 +4025,6 @@ static void rna_def_userdef_theme_collection_color(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeCollectionColor", nullptr);
RNA_def_struct_sdna(srna, "ThemeCollectionColor");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Collection Color", "Theme settings for collection colors");
prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -4065,7 +4041,6 @@ static void rna_def_userdef_theme_strip_color(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeStripColor", nullptr);
RNA_def_struct_sdna(srna, "ThemeStripColor");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Strip Color", "Theme settings for strip colors");
prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -4084,7 +4059,6 @@ static void rna_def_userdef_theme_space_clip(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeClipEditor", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Clip Editor", "Theme settings for the Movie Clip Editor");
rna_def_userdef_theme_spaces_main(srna);
@@ -4209,7 +4183,6 @@ static void rna_def_userdef_theme_space_topbar(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeTopBar", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Top Bar", "Theme settings for the Top Bar");
rna_def_userdef_theme_spaces_main(srna);
@@ -4223,7 +4196,6 @@ static void rna_def_userdef_theme_space_statusbar(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeStatusBar", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Status Bar", "Theme settings for the Status Bar");
rna_def_userdef_theme_spaces_main(srna);
@@ -4238,7 +4210,6 @@ static void rna_def_userdef_theme_space_spreadsheet(BlenderRNA *brna)
srna = RNA_def_struct(brna, "ThemeSpreadsheet", nullptr);
RNA_def_struct_sdna(srna, "ThemeSpace");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme Spreadsheet", "Theme settings for the Spreadsheet");
prop = RNA_def_property(srna, "row_alternate", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -4282,7 +4253,6 @@ static void rna_def_userdef_themes(BlenderRNA *brna)
srna = RNA_def_struct(brna, "Theme", nullptr);
RNA_def_struct_sdna(srna, "bTheme");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Theme", "User interface styling and color settings");
prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
@@ -4439,7 +4409,6 @@ static void rna_def_userdef_addon(BlenderRNA *brna)
srna = RNA_def_struct(brna, "Addon", nullptr);
RNA_def_struct_sdna(srna, "bAddon");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Add-on", "Python add-ons to be loaded automatically");
prop = RNA_def_property(srna, "module", PROP_STRING, PROP_NONE);
@@ -4508,7 +4477,6 @@ static void rna_def_userdef_studiolight(BlenderRNA *brna)
RNA_define_verify_sdna(false);
srna = RNA_def_struct(brna, "StudioLight", nullptr);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Studio Light", "Studio light");
prop = RNA_def_property(srna, "index", PROP_INT, PROP_NONE);
@@ -4584,7 +4552,6 @@ static void rna_def_userdef_pathcompare(BlenderRNA *brna)
srna = RNA_def_struct(brna, "PathCompare", nullptr);
RNA_def_struct_sdna(srna, "bPathCompare");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Path Compare", "Match paths against this value");
prop = RNA_def_property(srna, "path", PROP_STRING, PROP_DIRPATH);
@@ -4668,7 +4635,6 @@ static void rna_def_userdef_solidlight(BlenderRNA *brna)
srna = RNA_def_struct(brna, "UserSolidLight", nullptr);
RNA_def_struct_sdna(srna, "SolidLight");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(
srna, "Solid Light", "Light used for Studio lighting in solid shading mode");
@@ -4714,7 +4680,6 @@ static void rna_def_userdef_walk_navigation(BlenderRNA *brna)
srna = RNA_def_struct(brna, "WalkNavigation", nullptr);
RNA_def_struct_sdna(srna, "WalkNavigation");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Walk Navigation", "Walk navigation settings");
prop = RNA_def_property(srna, "mouse_speed", PROP_FLOAT, PROP_NONE);
@@ -4879,7 +4844,6 @@ static void rna_def_userdef_view(BlenderRNA *brna)
srna = RNA_def_struct(brna, "PreferencesView", nullptr);
RNA_def_struct_sdna(srna, "UserDef");
RNA_def_struct_nested(brna, srna, "Preferences");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "View & Controls", "Preferences related to viewing data");
/* View. */
@@ -5369,7 +5333,6 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
srna = RNA_def_struct(brna, "PreferencesEdit", nullptr);
RNA_def_struct_sdna(srna, "UserDef");
RNA_def_struct_nested(brna, srna, "Preferences");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Edit Methods", "Settings for interacting with Blender data");
/* Edit Methods */
@@ -5876,7 +5839,6 @@ static void rna_def_userdef_system(BlenderRNA *brna)
srna = RNA_def_struct(brna, "PreferencesSystem", nullptr);
RNA_def_struct_sdna(srna, "UserDef");
RNA_def_struct_nested(brna, srna, "Preferences");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "System & OpenGL", "Graphics driver and operating system settings");
/* UI settings. */
@@ -6243,7 +6205,6 @@ static void rna_def_userdef_input(BlenderRNA *brna)
srna = RNA_def_struct(brna, "PreferencesInput", nullptr);
RNA_def_struct_sdna(srna, "UserDef");
RNA_def_struct_nested(brna, srna, "Preferences");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Input", "Settings for input devices");
prop = RNA_def_property(srna, "view_zoom_method", PROP_ENUM, PROP_NONE);
@@ -6549,7 +6510,6 @@ static void rna_def_userdef_keymap(BlenderRNA *brna)
StructRNA *srna = RNA_def_struct(brna, "PreferencesKeymap", nullptr);
RNA_def_struct_sdna(srna, "UserDef");
RNA_def_struct_nested(brna, srna, "Preferences");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Keymap", "Shortcut setup for keyboards and other input devices");
prop = RNA_def_property(srna, "show_ui_keyconfig", PROP_BOOLEAN, PROP_NONE);
@@ -6569,7 +6529,6 @@ static void rna_def_userdef_filepaths_asset_library(BlenderRNA *brna)
srna = RNA_def_struct(brna, "UserAssetLibrary", nullptr);
RNA_def_struct_sdna(srna, "bUserAssetLibrary");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(
srna, "Asset Library", "Settings to define a reusable library for Asset Browsers to use");
@@ -6626,7 +6585,6 @@ static void rna_def_userdef_filepaths_extension_repo(BlenderRNA *brna)
srna = RNA_def_struct(brna, "UserExtensionRepo", nullptr);
RNA_def_struct_sdna(srna, "bUserExtensionRepo");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(
srna, "Extension Repository", "Settings to define an extension repository");
@@ -6690,7 +6648,6 @@ static void rna_def_userdef_script_directory(BlenderRNA *brna)
{
StructRNA *srna = RNA_def_struct(brna, "ScriptDirectory", nullptr);
RNA_def_struct_sdna(srna, "bUserScriptDirectory");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Python Scripts Directory", "");
PropertyRNA *prop;
@@ -6734,7 +6691,6 @@ static void rna_def_userdef_script_directory_collection(BlenderRNA *brna, Proper
RNA_def_property_srna(cprop, "ScriptDirectoryCollection");
srna = RNA_def_struct(brna, "ScriptDirectoryCollection", nullptr);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Python Scripts Directories", "");
func = RNA_def_function(srna, "new", "rna_userdef_script_directory_new");
@@ -6760,7 +6716,6 @@ static void rna_def_userdef_asset_library_collection(BlenderRNA *brna, PropertyR
RNA_def_property_srna(cprop, "AssetLibraryCollection");
srna = RNA_def_struct(brna, "AssetLibraryCollection", nullptr);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "User Asset Libraries", "Collection of user asset libraries");
func = RNA_def_function(srna, "new", "rna_userdef_asset_library_new");
@@ -6788,7 +6743,6 @@ static void rna_def_userdef_extension_repos_collection(BlenderRNA *brna, Propert
RNA_def_property_srna(cprop, "UserExtensionRepoCollection");
srna = RNA_def_struct(brna, "UserExtensionRepoCollection", nullptr);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(
srna, "User Extension Repositories", "Collection of user extension repositories");
@@ -6845,7 +6799,6 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
srna = RNA_def_struct(brna, "PreferencesFilePaths", nullptr);
RNA_def_struct_sdna(srna, "UserDef");
RNA_def_struct_nested(brna, srna, "Preferences");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "File Paths", "Default paths for external files");
prop = RNA_def_property(srna, "show_hidden_files_datablocks", PROP_BOOLEAN, PROP_NONE);
@@ -7057,7 +7010,6 @@ static void rna_def_userdef_apps(BlenderRNA *brna)
srna = RNA_def_struct(brna, "PreferencesApps", nullptr);
RNA_def_struct_sdna(srna, "UserDef");
RNA_def_struct_nested(brna, srna, "Preferences");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Apps", "Preferences that work only for apps");
prop = RNA_def_property(srna, "show_corner_split", PROP_BOOLEAN, PROP_NONE);
@@ -7086,7 +7038,6 @@ static void rna_def_userdef_experimental(BlenderRNA *brna)
srna = RNA_def_struct(brna, "PreferencesExperimental", nullptr);
RNA_def_struct_sdna(srna, "UserDef_Experimental");
RNA_def_struct_nested(brna, srna, "Preferences");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Experimental", "Experimental features");
prop = RNA_def_property(srna, "use_undo_legacy", PROP_BOOLEAN, PROP_NONE);
@@ -7218,7 +7169,6 @@ static void rna_def_userdef_addon_collection(BlenderRNA *brna, PropertyRNA *cpro
RNA_def_property_srna(cprop, "Addons");
srna = RNA_def_struct(brna, "Addons", nullptr);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "User Add-ons", "Collection of add-ons");
func = RNA_def_function(srna, "new", "rna_userdef_addon_new");
@@ -7244,7 +7194,6 @@ static void rna_def_userdef_autoexec_path_collection(BlenderRNA *brna, PropertyR
RNA_def_property_srna(cprop, "PathCompareCollection");
srna = RNA_def_struct(brna, "PathCompareCollection", nullptr);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Paths Compare", "Collection of paths");
func = RNA_def_function(srna, "new", "rna_userdef_pathcompare_new");
@@ -7275,7 +7224,6 @@ void RNA_def_userdef(BlenderRNA *brna)
srna = RNA_def_struct(brna, "Preferences", nullptr);
RNA_def_struct_sdna(srna, "UserDef");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Preferences", "Global preferences");
prop = RNA_def_property(srna, "active_section", PROP_ENUM, PROP_NONE);

View File

@@ -565,14 +565,16 @@ const EnumPropertyItem rna_enum_wm_report_items[] = {
static wmOperator *rna_OperatorProperties_find_operator(PointerRNA *ptr)
{
if (ptr->owner_id == nullptr || GS(ptr->owner_id->name) != ID_WM) {
return nullptr;
}
wmWindowManager *wm = (wmWindowManager *)ptr->owner_id;
if (wm) {
IDProperty *properties = (IDProperty *)ptr->data;
for (wmOperator *op = static_cast<wmOperator *>(wm->operators.last); op; op = op->prev) {
if (op->properties == properties) {
return op;
}
IDProperty *properties = (IDProperty *)ptr->data;
for (wmOperator *op = static_cast<wmOperator *>(wm->operators.last); op; op = op->prev) {
if (op->properties == properties) {
return op;
}
}
@@ -2041,7 +2043,6 @@ static void rna_def_operator(BlenderRNA *brna)
RNA_def_struct_idprops_func(srna, "rna_OperatorProperties_idprops");
RNA_def_struct_property_tags(srna, rna_enum_operator_property_tag_items);
RNA_def_struct_flag(srna, STRUCT_NO_DATABLOCK_IDPROPERTIES | STRUCT_NO_CONTEXT_WITHOUT_OWNER_ID);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
}
static void rna_def_macro_operator(BlenderRNA *brna)
@@ -2378,7 +2379,6 @@ static void rna_def_window_stereo3d(BlenderRNA *brna)
srna = RNA_def_struct(brna, "Stereo3dDisplay", nullptr);
RNA_def_struct_sdna(srna, "Stereo3dFormat");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Stereo 3D Display", "Settings for stereo 3D display");
prop = RNA_def_property(srna, "display_mode", PROP_ENUM, PROP_NONE);

View File

@@ -212,7 +212,6 @@ static void rna_def_workspace_owner(BlenderRNA *brna)
srna = RNA_def_struct(brna, "wmOwnerID", nullptr);
RNA_def_struct_sdna(srna, "wmOwnerID");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Work Space UI Tag", "");
prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
@@ -262,7 +261,6 @@ static void rna_def_workspace_tool(BlenderRNA *brna)
srna = RNA_def_struct(brna, "WorkSpaceTool", nullptr);
RNA_def_struct_sdna(srna, "bToolRef");
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Work Space Tool", "");
prop = RNA_def_property(srna, "idname", PROP_STRING, PROP_NONE);

View File

@@ -2088,7 +2088,6 @@ static void rna_def_xr_session_state(BlenderRNA *brna)
PropertyRNA *parm, *prop;
srna = RNA_def_struct(brna, "XrSessionState", nullptr);
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
RNA_def_struct_ui_text(srna, "Session State", "Runtime state information about the VR session");
func = RNA_def_function(srna, "is_running", "rna_XrSessionState_is_running");