Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-01-03 04:26:36 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-01-03 04:34:55 +0300
commita8ce9a143abbb51eae28e5d0cae1fb310bd0c24c (patch)
treeb883f6e266a4e89693be856ee2fae0efd9f120d4 /source/blender/makesrna
parenta854840e76ae3e0724531524e8b1d7a4cd63ea1d (diff)
Tool System: store the fallback tool for re-use
The fallback tool was run-time only data, now it's stored in the blend file.
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r--source/blender/makesrna/intern/rna_workspace.c24
-rw-r--r--source/blender/makesrna/intern/rna_workspace_api.c4
2 files changed, 7 insertions, 21 deletions
diff --git a/source/blender/makesrna/intern/rna_workspace.c b/source/blender/makesrna/intern/rna_workspace.c
index 7c6e3c2730b..4d4ab64abb9 100644
--- a/source/blender/makesrna/intern/rna_workspace.c
+++ b/source/blender/makesrna/intern/rna_workspace.c
@@ -192,18 +192,6 @@ static int rna_WorkSpaceTool_widget_length(PointerRNA *ptr)
return tref->runtime ? strlen(tref->runtime->gizmo_group) : 0;
}
-static void rna_WorkSpaceTool_tool_fallback_get(PointerRNA *ptr, char *value)
-{
- bToolRef *tref = ptr->data;
- strcpy(value, tref->runtime ? tref->runtime->idname_fallback : "");
-}
-
-static int rna_WorkSpaceTool_tool_fallback_length(PointerRNA *ptr)
-{
- bToolRef *tref = ptr->data;
- return tref->runtime ? strlen(tref->runtime->idname_fallback) : 0;
-}
-
#else /* RNA_RUNTIME */
static void rna_def_workspace_owner(BlenderRNA *brna)
@@ -270,6 +258,10 @@ static void rna_def_workspace_tool(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Identifier", "");
RNA_def_struct_name_property(srna, prop);
+ prop = RNA_def_property(srna, "idname_fallback", PROP_STRING, PROP_NONE);
+ RNA_def_property_ui_text(prop, "Identifier Fallback", "");
+ RNA_def_struct_name_property(srna, prop);
+
prop = RNA_def_property(srna, "index", PROP_INT, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Index", "");
@@ -300,14 +292,6 @@ static void rna_def_workspace_tool(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Widget", "");
RNA_def_property_string_funcs(
prop, "rna_WorkSpaceTool_widget_get", "rna_WorkSpaceTool_widget_length", NULL);
- RNA_define_verify_sdna(1);
-
- prop = RNA_def_property(srna, "tool_fallback", PROP_STRING, PROP_NONE);
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Fallback", "");
- RNA_def_property_string_funcs(
- prop, "rna_WorkSpaceTool_tool_fallback_get", "rna_WorkSpaceTool_tool_fallback_length", NULL);
- RNA_define_verify_sdna(1);
RNA_api_workspace_tool(srna);
}
diff --git a/source/blender/makesrna/intern/rna_workspace_api.c b/source/blender/makesrna/intern/rna_workspace_api.c
index 5cc55bfad8a..4fb6677199f 100644
--- a/source/blender/makesrna/intern/rna_workspace_api.c
+++ b/source/blender/makesrna/intern/rna_workspace_api.c
@@ -63,7 +63,9 @@ static void rna_WorkSpaceTool_setup(ID *id,
STRNCPY(tref_rt.op, op_idname);
tref_rt.index = index;
- STRNCPY(tref_rt.idname_fallback, idname_fallback);
+ /* While it's logical to assign both these values from setup,
+ * it's useful to stored this in DNA for re-use, exceptional case: write to the 'tref'. */
+ STRNCPY(tref->idname_fallback, idname_fallback);
STRNCPY(tref_rt.keymap_fallback, keymap_fallback);
WM_toolsystem_ref_set_from_runtime(C, (WorkSpace *)id, tref, &tref_rt, idname);