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>2019-10-18 10:51:46 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-10-18 10:51:46 +0300
commiteb559f2b24580178ea60891077481df16c05aec6 (patch)
tree40cafc133c69d1bb4f9b5f266eef6a76fe29f231
parent3a3da6baa3e36577c2401069a0374d9a848e545e (diff)
parentacd98599ffe4197e32586d6beb807638395d3e31 (diff)
Merge branch 'blender-v2.81-release'
-rw-r--r--release/scripts/startup/bl_operators/wm.py4
-rw-r--r--source/blender/makesrna/RNA_access.h3
-rw-r--r--source/blender/makesrna/intern/rna_action.c6
-rw-r--r--source/blender/makesrna/intern/rna_scene.c6
-rw-r--r--source/blender/makesrna/intern/rna_space.c12
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c75
6 files changed, 75 insertions, 31 deletions
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 5a6db45c329..0dad29ce683 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -80,10 +80,6 @@ rna_module_prop = StringProperty(
def context_path_validate(context, data_path):
- # Silently ignore invalid data paths created by T65397.
- if "(null)" in data_path:
- return Ellipsis
-
try:
value = eval("context.%s" % data_path) if data_path else Ellipsis
except AttributeError as ex:
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index cefc5aded7c..24e604179f2 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -266,6 +266,7 @@ extern StructRNA RNA_FreestyleLineStyle;
extern StructRNA RNA_FreestyleModuleSettings;
extern StructRNA RNA_FreestyleSettings;
extern StructRNA RNA_Function;
+extern StructRNA RNA_GPUFXSettings;
extern StructRNA RNA_GPencilFrame;
extern StructRNA RNA_GPencilInterpolateSettings;
extern StructRNA RNA_GPencilLayer;
@@ -392,7 +393,6 @@ extern StructRNA RNA_Mesh;
extern StructRNA RNA_MeshCacheModifier;
extern StructRNA RNA_MeshColor;
extern StructRNA RNA_MeshColorLayer;
-extern StructRNA RNA_MeshLoopColor;
extern StructRNA RNA_MeshDeformModifier;
extern StructRNA RNA_MeshEdge;
extern StructRNA RNA_MeshFloatProperty;
@@ -400,6 +400,7 @@ extern StructRNA RNA_MeshFloatPropertyLayer;
extern StructRNA RNA_MeshIntProperty;
extern StructRNA RNA_MeshIntPropertyLayer;
extern StructRNA RNA_MeshLoop;
+extern StructRNA RNA_MeshLoopColor;
extern StructRNA RNA_MeshLoopColorLayer;
extern StructRNA RNA_MeshLoopTriangle;
extern StructRNA RNA_MeshPolygon;
diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c
index 24f8d5c4e3d..6eaf303ce2d 100644
--- a/source/blender/makesrna/intern/rna_action.c
+++ b/source/blender/makesrna/intern/rna_action.c
@@ -306,6 +306,11 @@ bool rna_Action_actedit_assign_poll(PointerRNA *ptr, PointerRNA value)
return 0;
}
+static char *rna_DopeSheet_path(PointerRNA *UNUSED(ptr))
+{
+ return BLI_strdup("dopesheet");
+}
+
#else
static void rna_def_dopesheet(BlenderRNA *brna)
@@ -315,6 +320,7 @@ static void rna_def_dopesheet(BlenderRNA *brna)
srna = RNA_def_struct(brna, "DopeSheet", NULL);
RNA_def_struct_sdna(srna, "bDopeSheet");
+ RNA_def_struct_path_func(srna, "rna_DopeSheet_path");
RNA_def_struct_ui_text(
srna, "Dope Sheet", "Settings for filtering the channels shown in animation editors");
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index ef97b184491..9e2d2cd9c4b 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -2492,6 +2492,11 @@ static char *rna_UnitSettings_path(PointerRNA *UNUSED(ptr))
return BLI_strdup("unit_settings");
}
+static char *rna_GPUFXSettings_path(PointerRNA *UNUSED(ptr))
+{
+ return BLI_strdup("fx_settings");
+}
+
#else
/* Grease Pencil Interpolation tool settings */
@@ -4848,6 +4853,7 @@ static void rna_def_gpu_fx(BlenderRNA *brna)
rna_def_gpu_ssao_fx(brna);
srna = RNA_def_struct(brna, "GPUFXSettings", NULL);
+ RNA_def_struct_path_func(srna, "rna_GPUFXSettings_path");
RNA_def_struct_ui_text(srna, "GPU FX Settings", "Settings for GPU based compositing");
prop = RNA_def_property(srna, "ssao", PROP_POINTER, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 59f139b47d2..58902a35a08 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -1279,6 +1279,11 @@ static char *rna_View3DOverlay_path(PointerRNA *UNUSED(ptr))
/* Space Image Editor */
+static char *rna_SpaceUVEditor_path(PointerRNA *UNUSED(ptr))
+{
+ return BLI_strdup("uv_editor");
+}
+
static PointerRNA rna_SpaceImageEditor_uvedit_get(PointerRNA *ptr)
{
return rna_pointer_inherit_refine(ptr, &RNA_SpaceUVEditor, ptr->data);
@@ -2187,6 +2192,11 @@ static void rna_SpaceClipEditor_view_type_update(Main *UNUSED(bmain),
/* File browser. */
+static char *rna_FileSelectParams_path(PointerRNA *UNUSED(ptr))
+{
+ return BLI_strdup("params");
+}
+
int rna_FileSelectParams_filename_editable(struct PointerRNA *ptr, const char **r_info)
{
FileSelectParams *params = ptr->data;
@@ -2701,6 +2711,7 @@ static void rna_def_space_image_uv(BlenderRNA *brna)
srna = RNA_def_struct(brna, "SpaceUVEditor", NULL);
RNA_def_struct_sdna(srna, "SpaceImage");
RNA_def_struct_nested(brna, srna, "SpaceImageEditor");
+ RNA_def_struct_path_func(srna, "rna_SpaceUVEditor_path");
RNA_def_struct_ui_text(srna, "Space UV Editor", "UV editor data for the image editor space");
/* selection */
@@ -5334,6 +5345,7 @@ static void rna_def_fileselect_params(BlenderRNA *brna)
};
srna = RNA_def_struct(brna, "FileSelectParams", NULL);
+ RNA_def_struct_path_func(srna, "rna_FileSelectParams_path");
RNA_def_struct_ui_text(srna, "File Select Parameters", "File Select Parameters");
prop = RNA_def_property(srna, "title", PROP_STRING, PROP_NONE);
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 292e27c3cbf..96b7f3a7273 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -429,26 +429,16 @@ static const char *wm_context_member_from_ptr(bContext *C, const PointerRNA *ptr
} \
(void)0
-# define CTX_TEST_PTR_DATA_TYPE(C, member, rna_type, rna_ptr, dataptr_cmp) \
+# define TEST_PTR_DATA_TYPE(member, rna_type, rna_ptr, dataptr_cmp) \
{ \
const char *ctx_member = member; \
- if (RNA_struct_is_a((ptr)->type, &(rna_type)) && (ptr)->data == (dataptr_cmp)) { \
+ if (RNA_struct_is_a((rna_ptr)->type, &(rna_type)) && (rna_ptr)->data == (dataptr_cmp)) { \
member_id = ctx_member; \
break; \
} \
} \
(void)0
-# define CTX_TEST_SPACE_TYPE(space_data_type, member_full, dataptr_cmp) \
- { \
- const char *ctx_member_full = member_full; \
- if (space_data->spacetype == space_data_type && ptr->data == dataptr_cmp) { \
- member_id = ctx_member_full; \
- break; \
- } \
- } \
- (void)0
-
switch (GS(ptr->owner_id->name)) {
case ID_SCE: {
CTX_TEST_PTR_ID(C, "scene", ptr->owner_id);
@@ -484,19 +474,52 @@ static const char *wm_context_member_from_ptr(bContext *C, const PointerRNA *ptr
SpaceLink *space_data = CTX_wm_space_data(C);
- CTX_TEST_PTR_DATA_TYPE(C, "space_data", RNA_Space, ptr, space_data);
- CTX_TEST_PTR_DATA_TYPE(C, "space_data", RNA_View3DOverlay, ptr, space_data);
- CTX_TEST_PTR_DATA_TYPE(C, "space_data", RNA_View3DShading, ptr, space_data);
- CTX_TEST_PTR_DATA_TYPE(C, "area", RNA_Area, ptr, CTX_wm_area(C));
- CTX_TEST_PTR_DATA_TYPE(C, "region", RNA_Region, ptr, CTX_wm_region(C));
-
- CTX_TEST_SPACE_TYPE(SPACE_IMAGE, "space_data.uv_editor", space_data);
- CTX_TEST_SPACE_TYPE(
- SPACE_VIEW3D, "space_data.fx_settings", &(CTX_wm_view3d(C)->fx_settings));
- CTX_TEST_SPACE_TYPE(SPACE_NLA, "space_data.dopesheet", CTX_wm_space_nla(C)->ads);
- CTX_TEST_SPACE_TYPE(SPACE_GRAPH, "space_data.dopesheet", CTX_wm_space_graph(C)->ads);
- CTX_TEST_SPACE_TYPE(SPACE_ACTION, "space_data.dopesheet", &(CTX_wm_space_action(C)->ads));
- CTX_TEST_SPACE_TYPE(SPACE_FILE, "space_data.params", CTX_wm_space_file(C)->params);
+ TEST_PTR_DATA_TYPE("space_data", RNA_Space, ptr, space_data);
+ TEST_PTR_DATA_TYPE("area", RNA_Area, ptr, CTX_wm_area(C));
+ TEST_PTR_DATA_TYPE("region", RNA_Region, ptr, CTX_wm_region(C));
+
+ switch (space_data->spacetype) {
+ case SPACE_VIEW3D: {
+ const View3D *v3d = (View3D *)space_data;
+ const View3DShading *shading = &v3d->shading;
+ const GPUFXSettings *fx_settings = &v3d->fx_settings;
+
+ TEST_PTR_DATA_TYPE("space_data", RNA_View3DOverlay, ptr, v3d);
+ TEST_PTR_DATA_TYPE("space_data", RNA_View3DShading, ptr, shading);
+ TEST_PTR_DATA_TYPE("space_data", RNA_GPUFXSettings, ptr, fx_settings);
+ break;
+ }
+ case SPACE_GRAPH: {
+ const SpaceGraph *sipo = (SpaceGraph *)space_data;
+ const bDopeSheet *ads = sipo->ads;
+ TEST_PTR_DATA_TYPE("space_data", RNA_DopeSheet, ptr, ads);
+ break;
+ }
+ case SPACE_FILE: {
+ const SpaceFile *sfile = (SpaceFile *)space_data;
+ const FileSelectParams *params = sfile->params;
+ TEST_PTR_DATA_TYPE("space_data", RNA_FileSelectParams, ptr, params);
+ break;
+ }
+ case SPACE_IMAGE: {
+ const SpaceImage *sima = (SpaceImage *)space_data;
+ TEST_PTR_DATA_TYPE("space_data", RNA_SpaceUVEditor, ptr, sima);
+ break;
+ }
+ case SPACE_NLA: {
+ const SpaceNla *snla = (SpaceNla *)space_data;
+ const bDopeSheet *ads = snla->ads;
+ TEST_PTR_DATA_TYPE("space_data", RNA_DopeSheet, ptr, ads);
+ break;
+ }
+ case SPACE_ACTION: {
+ const SpaceAction *sact = (SpaceAction *)space_data;
+ const bDopeSheet *ads = &sact->ads;
+ TEST_PTR_DATA_TYPE("space_data", RNA_DopeSheet, ptr, ads);
+ break;
+ }
+ }
+
break;
}
default:
@@ -504,7 +527,7 @@ static const char *wm_context_member_from_ptr(bContext *C, const PointerRNA *ptr
}
# undef CTX_TEST_PTR_ID
# undef CTX_TEST_PTR_ID_CAST
-# undef CTX_TEST_SPACE_TYPE
+# undef TEST_PTR_DATA_TYPE
}
return member_id;