Revision: 48825
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48825
Author: vino
Date: 2012-07-11 07:47:09 +0000 (Wed, 11 Jul 2012)
Log Message:
-----------
By request, X button for each item on the UV Maps list box.
Modified Paths:
--------------
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
branches/soc-2012-bratwurst/source/blender/editors/mesh/mesh_data.c
Modified:
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
===================================================================
---
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
2012-07-11 07:46:36 UTC (rev 48824)
+++
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
2012-07-11 07:47:09 UTC (rev 48825)
@@ -2137,10 +2137,16 @@
/* hardcoded types */
if (itemptr->type == &RNA_MeshTexturePolyLayer || itemptr->type ==
&RNA_MeshLoopColorLayer) {
+ PointerRNA remove_rna;
+
uiItemL(sub, name, icon);
uiBlockSetEmboss(block, UI_EMBOSSN);
uiDefIconButR(block, TOG, 0, ICON_SCENE, 0, 0, UI_UNIT_X,
UI_UNIT_Y, itemptr, "active_render", 0, 0, 0, 0, 0, NULL);
uiBlockSetEmboss(block, UI_EMBOSS);
+
+ WM_operator_properties_create(&remove_rna,
"MESH_OT_uv_texture_remove");
+ RNA_int_set(&remove_rna, "index", i);
+ uiItemFullO(sub, "mesh.uv_texture_remove", "", ICON_X,
remove_rna.data, uiLayoutGetOperatorContext(layout),
UI_ITEM_O_RETURN_PROPS|UI_ITEM_R_NO_BG);
}
else if (RNA_struct_is_a(itemptr->type, &RNA_MaterialTextureSlot)) {
uiItemL(sub, name, icon);
Modified: branches/soc-2012-bratwurst/source/blender/editors/mesh/mesh_data.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/mesh/mesh_data.c
2012-07-11 07:46:36 UTC (rev 48824)
+++ branches/soc-2012-bratwurst/source/blender/editors/mesh/mesh_data.c
2012-07-11 07:47:09 UTC (rev 48825)
@@ -382,17 +382,28 @@
return layernum_dst;
}
-int ED_mesh_uv_texture_remove(bContext *C, Object *ob, Mesh *me)
+int ED_mesh_uv_texture_remove(bContext *C, Object *ob, Mesh *me, int
delete_index)
{
CustomData *pdata = GET_CD_DATA(me, pdata), *ldata = GET_CD_DATA(me,
ldata);
CustomDataLayer *cdlp, *cdlu;
int index;
- index = CustomData_get_active_layer_index(pdata, CD_MTEXPOLY);
- cdlp = (index == -1) ? NULL : &pdata->layers[index];
+ if (delete_index < 0)
+ {
+ index = CustomData_get_active_layer_index(pdata, CD_MTEXPOLY);
+ cdlp = (index == -1) ? NULL : &pdata->layers[index];
- index = CustomData_get_active_layer_index(ldata, CD_MLOOPUV);
- cdlu = (index == -1) ? NULL : &ldata->layers[index];
+ index = CustomData_get_active_layer_index(ldata, CD_MLOOPUV);
+ cdlu = (index == -1) ? NULL : &ldata->layers[index];
+ }
+ else
+ {
+ index = CustomData_get_layer_index_n(pdata, CD_MTEXPOLY,
delete_index);
+ cdlp = (index == -1) ? NULL : &pdata->layers[index];
+
+ index = CustomData_get_layer_index_n(ldata, CD_MLOOPUV,
delete_index);
+ cdlu = (index == -1) ? NULL : &ldata->layers[index];
+ }
if (!cdlp || !cdlu)
return 0;
@@ -620,12 +631,13 @@
RNA_def_string(ot->srna, "filepath", "Path", FILE_MAX, "Filepath",
"Path to image file");
}
-static int mesh_uv_texture_remove_exec(bContext *C, wmOperator *UNUSED(op))
+static int mesh_uv_texture_remove_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_context(C);
Mesh *me = ob->data;
+ int index = RNA_int_get(op->ptr, "index");
- if (!ED_mesh_uv_texture_remove(C, ob, me))
+ if (!ED_mesh_uv_texture_remove(C, ob, me, index))
return OPERATOR_CANCELLED;
return OPERATOR_FINISHED;
@@ -644,6 +656,8 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "index", -1, INT_MIN, INT_MAX, "Index to remove",
"< 0 means selection", INT_MIN, INT_MAX);
}
/*********************** vertex color operators ************************/
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs