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

Reply via email to