forked from bartvdbraak/blender
3d view header mode menu. A recent bugfix was incorrectly hiding pose and particle mode when the object data was library linked, but these modes edit object level settings so should be available.
This commit is contained in:
parent
dd8d24ff9d
commit
0bac3e17df
@ -281,31 +281,32 @@ static char *view3d_modeselect_pup(Scene *scene)
|
||||
str += sprintf(str, formatstr, "Object Mode", OB_MODE_OBJECT, ICON_OBJECT_DATA);
|
||||
|
||||
if(ob==NULL || ob->data==NULL) return string;
|
||||
if(ob->id.lib || ((ID *)ob->data)->lib) return string;
|
||||
if(ob->id.lib) return string;
|
||||
|
||||
/* if active object is editable */
|
||||
if ( ((ob->type == OB_MESH)
|
||||
|| (ob->type == OB_CURVE) || (ob->type == OB_SURF) || (ob->type == OB_FONT)
|
||||
|| (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) {
|
||||
|
||||
str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT);
|
||||
}
|
||||
else if (ob->type == OB_ARMATURE) {
|
||||
if (ob->mode & OB_MODE_POSE)
|
||||
str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT|OB_MODE_POSE, ICON_EDITMODE_HLT);
|
||||
else
|
||||
if(!((ID *)ob->data)->lib) {
|
||||
/* if active object is editable */
|
||||
if ( ((ob->type == OB_MESH)
|
||||
|| (ob->type == OB_CURVE) || (ob->type == OB_SURF) || (ob->type == OB_FONT)
|
||||
|| (ob->type == OB_MBALL) || (ob->type == OB_LATTICE))) {
|
||||
|
||||
str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT);
|
||||
}
|
||||
else if (ob->type == OB_ARMATURE) {
|
||||
if (ob->mode & OB_MODE_POSE)
|
||||
str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT|OB_MODE_POSE, ICON_EDITMODE_HLT);
|
||||
else
|
||||
str += sprintf(str, formatstr, "Edit Mode", OB_MODE_EDIT, ICON_EDITMODE_HLT);
|
||||
}
|
||||
|
||||
if (ob->type == OB_MESH) {
|
||||
|
||||
str += sprintf(str, formatstr, "Sculpt Mode", OB_MODE_SCULPT, ICON_SCULPTMODE_HLT);
|
||||
str += sprintf(str, formatstr, "Vertex Paint", OB_MODE_VERTEX_PAINT, ICON_VPAINT_HLT);
|
||||
str += sprintf(str, formatstr, "Texture Paint", OB_MODE_TEXTURE_PAINT, ICON_TPAINT_HLT);
|
||||
str += sprintf(str, formatstr, "Weight Paint", OB_MODE_WEIGHT_PAINT, ICON_WPAINT_HLT);
|
||||
}
|
||||
}
|
||||
|
||||
if (ob->type == OB_MESH) {
|
||||
|
||||
str += sprintf(str, formatstr, "Sculpt Mode", OB_MODE_SCULPT, ICON_SCULPTMODE_HLT);
|
||||
str += sprintf(str, formatstr, "Vertex Paint", OB_MODE_VERTEX_PAINT, ICON_VPAINT_HLT);
|
||||
str += sprintf(str, formatstr, "Texture Paint", OB_MODE_TEXTURE_PAINT, ICON_TPAINT_HLT);
|
||||
str += sprintf(str, formatstr, "Weight Paint", OB_MODE_WEIGHT_PAINT, ICON_WPAINT_HLT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* if active object is an armature */
|
||||
if (ob->type==OB_ARMATURE) {
|
||||
str += sprintf(str, formatstr, "Pose Mode", OB_MODE_POSE, ICON_POSE_HLT);
|
||||
|
Loading…
Reference in New Issue
Block a user