Cleanup: split out context member query
This commit is contained in:
parent
bdc1108e8c
commit
bea62c5c1a
|
@ -742,9 +742,8 @@ bool WM_operator_pystring_abbreviate(char *str, int str_len_max)
|
|||
|
||||
/* return NULL if no match is found */
|
||||
#if 0
|
||||
static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index)
|
||||
static const char *wm_context_member_from_ptr(bContext *C, PointerRNA *ptr)
|
||||
{
|
||||
|
||||
/* loop over all context items and do 2 checks
|
||||
*
|
||||
* - see if the pointer is in the context.
|
||||
|
@ -758,13 +757,9 @@ static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, Propert
|
|||
const char *member_found = NULL;
|
||||
const char *member_id = NULL;
|
||||
|
||||
char *prop_str = NULL;
|
||||
char *ret = NULL;
|
||||
|
||||
|
||||
for (link = lb.first; link; link = link->next) {
|
||||
const char *identifier = link->data;
|
||||
PointerRNA ctx_item_ptr = {{0}} // CTX_data_pointer_get(C, identifier); // XXX, this isnt working
|
||||
PointerRNA ctx_item_ptr = {{0}}; // CTX_data_pointer_get(C, identifier); // XXX, this isnt working
|
||||
|
||||
if (ctx_item_ptr.type == NULL) {
|
||||
continue;
|
||||
|
@ -785,36 +780,27 @@ static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, Propert
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (member_found) {
|
||||
prop_str = RNA_path_property_py(ptr, prop, index);
|
||||
if (prop_str) {
|
||||
ret = BLI_sprintfN("bpy.context.%s.%s", member_found, prop_str);
|
||||
MEM_freeN(prop_str);
|
||||
}
|
||||
}
|
||||
else if (member_id) {
|
||||
prop_str = RNA_path_struct_property_py(ptr, prop, index);
|
||||
if (prop_str) {
|
||||
ret = BLI_sprintfN("bpy.context.%s.%s", member_id, prop_str);
|
||||
MEM_freeN(prop_str);
|
||||
}
|
||||
}
|
||||
|
||||
BLI_freelistN(&lb);
|
||||
|
||||
return ret;
|
||||
if (member_found) {
|
||||
return member_found;
|
||||
}
|
||||
else if (member_id) {
|
||||
return member_id;
|
||||
}
|
||||
else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* use hard coded checks for now */
|
||||
static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index)
|
||||
|
||||
static const char *wm_context_member_from_ptr(bContext *C, PointerRNA *ptr)
|
||||
{
|
||||
const char *member_id = NULL;
|
||||
|
||||
char *prop_str = NULL;
|
||||
char *ret = NULL;
|
||||
|
||||
if (ptr->id.data) {
|
||||
|
||||
#define CTX_TEST_PTR_ID(C, member, idptr) \
|
||||
|
@ -911,23 +897,29 @@ static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, Propert
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (member_id) {
|
||||
prop_str = RNA_path_struct_property_py(ptr, prop, index);
|
||||
if (prop_str) {
|
||||
ret = BLI_sprintfN("bpy.context.%s.%s", member_id, prop_str);
|
||||
MEM_freeN(prop_str);
|
||||
}
|
||||
}
|
||||
#undef CTX_TEST_PTR_ID
|
||||
#undef CTX_TEST_PTR_ID_CAST
|
||||
#undef CTX_TEST_SPACE_TYPE
|
||||
}
|
||||
|
||||
return ret;
|
||||
return member_id;
|
||||
}
|
||||
#endif
|
||||
|
||||
static char *wm_prop_pystring_from_context(bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index)
|
||||
{
|
||||
const char *member_id = wm_context_member_from_ptr(C, ptr);
|
||||
char *ret = NULL;
|
||||
if (member_id != NULL) {
|
||||
char *prop_str = RNA_path_struct_property_py(ptr, prop, index);
|
||||
if (prop_str) {
|
||||
ret = BLI_sprintfN("bpy.context.%s.%s", member_id, prop_str);
|
||||
MEM_freeN(prop_str);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
char *WM_prop_pystring_assign(bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index)
|
||||
{
|
||||
char *lhs, *rhs, *ret;
|
||||
|
|
Loading…
Reference in New Issue