Drivers UI (Part of T55145) - Show datablock that driven property belongs to instead of only the property

Otherwise, it's not clear where things are coming from.

FIXME: The icons for datablocks may not always be correct. It uses the
innermost struct's icon instead of the datablock's icon - e.g. Bone
vs Object/Armature. But, that may make more sense for users?
This commit is contained in:
2018-05-23 16:31:59 +02:00
parent d185f5be09
commit 9cb2b9b523
2 changed files with 15 additions and 3 deletions

View File

@@ -6801,7 +6801,7 @@ static bool ui_but_menu(bContext *C, uiBut *but)
}
uiItemO(layout, CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Open Drivers Editor"),
ICON_NONE, "SCREEN_OT_drivers_editor_show");
ICON_DRIVER, "SCREEN_OT_drivers_editor_show");
}
/* Keying Sets */

View File

@@ -724,6 +724,7 @@ static void graph_panel_driven_property(const bContext *C, Panel *pa)
FCurve *fcu;
PointerRNA fcu_ptr;
uiLayout *layout = pa->layout;
uiLayout *row;
char name[256];
int icon = 0;
@@ -733,7 +734,7 @@ static void graph_panel_driven_property(const bContext *C, Panel *pa)
/* F-Curve pointer */
RNA_pointer_create(ale->id, &RNA_FCurve, fcu, &fcu_ptr);
/* user-friendly 'name' for F-Curve */
/* get user-friendly 'name' for F-Curve */
if (ale->type == ANIMTYPE_FCURVE) {
/* get user-friendly name for F-Curve */
icon = getname_anim_fcurve(name, ale->id, fcu);
@@ -755,7 +756,18 @@ static void graph_panel_driven_property(const bContext *C, Panel *pa)
if (ale->type == ANIMTYPE_NLACURVE)
icon = ICON_NLA;
}
uiItemL(layout, name, icon);
/* panel layout... */
row = uiLayoutRow(layout, true);
uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_LEFT);
/* -> user friendly 'name' for datablock that owns F-Curve */
/* XXX: Actually, we may need the datablock icons only... (e.g. right now will show bone for bone props) */
uiItemL(row, ale->id->name + 2, icon);
/* -> user friendly 'name' for F-Curve/driver target */
uiItemL(row, "", VICO_SMALL_TRI_RIGHT_VEC);
uiItemL(row, name, ICON_RNA);
MEM_freeN(ale);
}