forked from bartvdbraak/blender
- in pose mode, pose bone properties are edited rather then armature bone
- new id property array method convert_to_pyobject() - editing an array in the UI broke - fixed for own error when updating ID prop api
This commit is contained in:
parent
51f2dcd08c
commit
f7682e2e0f
@ -70,6 +70,8 @@ def draw(layout, context, context_member):
|
|||||||
for key, val in items:
|
for key, val in items:
|
||||||
row = layout.row()
|
row = layout.row()
|
||||||
convert_to_pyobject = getattr(val, "convert_to_pyobject", None)
|
convert_to_pyobject = getattr(val, "convert_to_pyobject", None)
|
||||||
|
|
||||||
|
val_orig = val
|
||||||
if convert_to_pyobject:
|
if convert_to_pyobject:
|
||||||
val_draw = val = val.convert_to_pyobject()
|
val_draw = val = val.convert_to_pyobject()
|
||||||
val_draw = str(val_draw)
|
val_draw = str(val_draw)
|
||||||
@ -96,7 +98,9 @@ def draw(layout, context, context_member):
|
|||||||
split = box.split(percentage=0.75)
|
split = box.split(percentage=0.75)
|
||||||
row = split.row()
|
row = split.row()
|
||||||
row.itemL(text=key)
|
row.itemL(text=key)
|
||||||
if convert_to_pyobject:
|
|
||||||
|
# explicit exception for arrays
|
||||||
|
if convert_to_pyobject and not hasattr(val_orig, "len"):
|
||||||
row.itemL(text=val_draw)
|
row.itemL(text=val_draw)
|
||||||
else:
|
else:
|
||||||
row.itemR(rna_item, key, text="")
|
row.itemR(rna_item, key, text="")
|
||||||
|
@ -281,10 +281,13 @@ class BONE_PT_properties(BoneButtonsPanel):
|
|||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
import rna_prop_ui
|
import rna_prop_ui
|
||||||
# reload(rna_prop_ui)
|
# reload(rna_prop_ui)
|
||||||
|
obj = context.object
|
||||||
|
if obj and obj.mode == 'POSE':
|
||||||
|
item = "active_pchan"
|
||||||
|
else:
|
||||||
|
item = "active_bone"
|
||||||
|
|
||||||
rna_prop_ui.draw(self.layout, context, "active_bone")
|
rna_prop_ui.draw(self.layout, context, item)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bpy.types.register(BONE_PT_context_bone)
|
bpy.types.register(BONE_PT_context_bone)
|
||||||
bpy.types.register(BONE_PT_transform)
|
bpy.types.register(BONE_PT_transform)
|
||||||
|
@ -346,7 +346,7 @@ int BPy_Wrap_SetMapItem(IDProperty *prop, PyObject *key, PyObject *val)
|
|||||||
|
|
||||||
static int BPy_IDGroup_Map_SetItem(BPy_IDProperty *self, PyObject *key, PyObject *val)
|
static int BPy_IDGroup_Map_SetItem(BPy_IDProperty *self, PyObject *key, PyObject *val)
|
||||||
{
|
{
|
||||||
BPy_Wrap_SetMapItem(self->prop, key, val);
|
return BPy_Wrap_SetMapItem(self->prop, key, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *BPy_IDGroup_SpawnIterator(BPy_IDProperty *self)
|
static PyObject *BPy_IDGroup_SpawnIterator(BPy_IDProperty *self)
|
||||||
@ -478,7 +478,7 @@ static PyObject *BPy_IDGroup_IterItems(BPy_IDProperty *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* utility function */
|
/* utility function */
|
||||||
static BPy_IDGroup_CorrectListLen(IDProperty *prop, PyObject *seq, int len)
|
static void BPy_IDGroup_CorrectListLen(IDProperty *prop, PyObject *seq, int len)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
@ -753,6 +753,17 @@ static PyGetSetDef BPy_IDArray_getseters[] = {
|
|||||||
{NULL, NULL, NULL, NULL, NULL},
|
{NULL, NULL, NULL, NULL, NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static PyObject *BPy_IDArray_ConvertToPy(BPy_IDArray *self)
|
||||||
|
{
|
||||||
|
return BPy_IDGroup_MapDataToPy(self->prop);
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyMethodDef BPy_IDArray_methods[] = {
|
||||||
|
{"convert_to_pyobject", (PyCFunction)BPy_IDArray_ConvertToPy, METH_NOARGS,
|
||||||
|
"return a purely python version of the group."},
|
||||||
|
{0, NULL, 0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
static int BPy_IDArray_Len(BPy_IDArray *self)
|
static int BPy_IDArray_Len(BPy_IDArray *self)
|
||||||
{
|
{
|
||||||
return self->prop->len;
|
return self->prop->len;
|
||||||
@ -893,7 +904,7 @@ PyTypeObject IDArray_Type = {
|
|||||||
NULL, /* iternextfunc tp_iternext; */
|
NULL, /* iternextfunc tp_iternext; */
|
||||||
|
|
||||||
/*** Attribute descriptor and subclassing stuff ***/
|
/*** Attribute descriptor and subclassing stuff ***/
|
||||||
NULL, /* struct PyMethodDef *tp_methods; */
|
BPy_IDArray_methods, /* struct PyMethodDef *tp_methods; */
|
||||||
NULL, /* struct PyMemberDef *tp_members; */
|
NULL, /* struct PyMemberDef *tp_members; */
|
||||||
BPy_IDArray_getseters, /* struct PyGetSetDef *tp_getset; */
|
BPy_IDArray_getseters, /* struct PyGetSetDef *tp_getset; */
|
||||||
NULL, /* struct _typeobject *tp_base; */
|
NULL, /* struct _typeobject *tp_base; */
|
||||||
|
Loading…
Reference in New Issue
Block a user