Feature fix

When using Material Nodes, there was no indication in Material
Property window which node was active. The context/channel widget
now shows this.

Better would be to be able to browse nodes in this list, and
to have option to preview only this material (not node tree
result). Enough todo for future :)
This commit is contained in:
Ton Roosendaal 2010-11-18 16:38:32 +00:00
parent 23fbce5a5f
commit e76074da0b
2 changed files with 24 additions and 1 deletions

@ -38,6 +38,7 @@
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_texture.h"
#include "BKE_report.h"
@ -2000,6 +2001,28 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
uiBlockSetEmboss(block, UI_EMBOSS);
uiDefButR(block, OPTION, 0, "", 0, 0, UI_UNIT_X, UI_UNIT_Y, itemptr, "use", 0, 0, 0, 0, 0, NULL);
}
else if(RNA_struct_is_a(itemptr->type, &RNA_MaterialSlot)) {
/* provision to draw active node name */
Material *ma, *manode;
Object *ob= (Object*)ptr->id.data;
int index= (Material**)ptr->data - ob->mat;
/* default item with material base name */
uiItemL(sub, name, icon);
ma= give_current_material(ob, index+1);
if(ma) {
manode= give_node_material(ma);
if(manode) {
char str[MAX_ID_NAME + 12];
sprintf(str, "Node %s", manode->id.name+2);
uiItemL(sub, str, ui_id_icon_get(C, &manode->id, 1));
}
else if(ma->use_nodes) {
uiItemL(sub, "Node <none>", 0);
}
}
}
else if(itemptr->type == &RNA_ShapeKey) {
ob= (Object*)activeptr->data;

@ -869,7 +869,7 @@ int WM_operator_winactive(bContext *C)
return 1;
}
/* op->invoke */
/* op->exec */
static void redo_cb(bContext *C, void *arg_op, int UNUSED(event))
{
wmOperator *lastop= arg_op;