Rename bgpic.add() to bgpic.new() to correspond others collections like

render layers, vertices groups and so.
Also added bgpig.remove() function to remove specified picture.
This commit is contained in:
Sergey Sharybin 2011-11-18 14:28:45 +00:00
parent d498dd3939
commit cc314e442c
4 changed files with 38 additions and 16 deletions

@ -211,7 +211,7 @@ class CLIP_OT_set_viewport_background(Operator):
break break
if not bgpic: if not bgpic:
bgpic = space_v3d.background_images.add() bgpic = space_v3d.background_images.new()
bgpic.source = 'MOVIE' bgpic.source = 'MOVIE'
bgpic.clip = clip bgpic.clip = clip

@ -290,6 +290,7 @@ void ED_view3d_camera_lock_init(struct View3D *v3d, struct RegionView3D *rv3d);
/* copy the view to the camera, return TRUE if */ /* copy the view to the camera, return TRUE if */
int ED_view3d_camera_lock_sync(struct View3D *v3d, struct RegionView3D *rv3d); int ED_view3d_camera_lock_sync(struct View3D *v3d, struct RegionView3D *rv3d);
struct BGpic *ED_view3D_background_image_add(struct View3D *v3d); struct BGpic *ED_view3D_background_image_new(struct View3D *v3d);
void ED_view3D_background_image_remove(struct View3D *v3d, struct BGpic *bgpic);
#endif /* ED_VIEW3D_H */ #endif /* ED_VIEW3D_H */

@ -2944,7 +2944,7 @@ static BGpic *background_image_add(bContext *C)
{ {
View3D *v3d= CTX_wm_view3d(C); View3D *v3d= CTX_wm_view3d(C);
return ED_view3D_background_image_add(v3d); return ED_view3D_background_image_new(v3d);
} }
static int background_image_add_exec(bContext *C, wmOperator *UNUSED(op)) static int background_image_add_exec(bContext *C, wmOperator *UNUSED(op))
@ -3014,16 +3014,13 @@ void VIEW3D_OT_background_image_add(wmOperatorType *ot)
/* ***** remove image operator ******* */ /* ***** remove image operator ******* */
static int background_image_remove_exec(bContext *C, wmOperator *op) static int background_image_remove_exec(bContext *C, wmOperator *op)
{ {
View3D *vd = CTX_wm_view3d(C); View3D *v3d = CTX_wm_view3d(C);
int index = RNA_int_get(op->ptr, "index"); int index = RNA_int_get(op->ptr, "index");
BGpic *bgpic_rem= BLI_findlink(&vd->bgpicbase, index); BGpic *bgpic_rem= BLI_findlink(&v3d->bgpicbase, index);
if(bgpic_rem) { if(bgpic_rem) {
BLI_remlink(&vd->bgpicbase, bgpic_rem); ED_view3D_background_image_remove(v3d, bgpic_rem);
if(bgpic_rem->ima) id_us_min(&bgpic_rem->ima->id); WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, v3d);
if(bgpic_rem->clip) id_us_min(&bgpic_rem->clip->id);
MEM_freeN(bgpic_rem);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, vd);
return OPERATOR_FINISHED; return OPERATOR_FINISHED;
} }
else { else {
@ -3529,7 +3526,7 @@ void ED_view3d_to_object(Object *ob, const float ofs[3], const float quat[4], co
object_apply_mat4(ob, mat, TRUE, TRUE); object_apply_mat4(ob, mat, TRUE, TRUE);
} }
BGpic *ED_view3D_background_image_add(View3D *v3d) BGpic *ED_view3D_background_image_new(View3D *v3d)
{ {
BGpic *bgpic= MEM_callocN(sizeof(BGpic), "Background Image"); BGpic *bgpic= MEM_callocN(sizeof(BGpic), "Background Image");
@ -3543,3 +3540,16 @@ BGpic *ED_view3D_background_image_add(View3D *v3d)
return bgpic; return bgpic;
} }
void ED_view3D_background_image_remove(struct View3D *v3d, struct BGpic *bgpic)
{
BLI_remlink(&v3d->bgpicbase, bgpic);
if(bgpic->ima)
id_us_min(&bgpic->ima->id);
if(bgpic->clip)
id_us_min(&bgpic->clip->id);
MEM_freeN(bgpic);
}

@ -891,15 +891,22 @@ static void rna_BackgroundImage_opacity_set(PointerRNA *ptr, float value)
bgpic->blend = 1.0f - value; bgpic->blend = 1.0f - value;
} }
static BGpic *rna_BackgroundImage_add(View3D *v3d) static BGpic *rna_BackgroundImage_new(View3D *v3d)
{ {
BGpic *bgpic= ED_view3D_background_image_add(v3d);; BGpic *bgpic= ED_view3D_background_image_new(v3d);
WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D, NULL); WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D, v3d);
return bgpic; return bgpic;
} }
static void rna_BackgroundImage_remove(View3D *v3d, BGpic *bgpic)
{
ED_view3D_background_image_remove(v3d, bgpic);
WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D, v3d);
}
/* Space Node Editor */ /* Space Node Editor */
static int rna_SpaceNodeEditor_node_tree_poll(PointerRNA *ptr, PointerRNA value) static int rna_SpaceNodeEditor_node_tree_poll(PointerRNA *ptr, PointerRNA value)
@ -1307,11 +1314,15 @@ static void rna_def_backgroundImages(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_struct_sdna(srna, "View3D"); RNA_def_struct_sdna(srna, "View3D");
RNA_def_struct_ui_text(srna, "Background Images", "Collection of background images"); RNA_def_struct_ui_text(srna, "Background Images", "Collection of background images");
func= RNA_def_function(srna, "add", "rna_BackgroundImage_add"); func= RNA_def_function(srna, "new", "rna_BackgroundImage_new");
RNA_def_function_ui_description(func, "Add new background image"); RNA_def_function_ui_description(func, "Add new background image");
parm= RNA_def_pointer(func, "image", "BackgroundImage", "", "Image displayed as viewport background"); parm= RNA_def_pointer(func, "image", "BackgroundImage", "", "Image displayed as viewport background");
RNA_def_function_return(func, parm); RNA_def_function_return(func, parm);
func= RNA_def_function(srna, "remove", "rna_BackgroundImage_remove");
RNA_def_function_ui_description(func, "Remove background image");
parm= RNA_def_pointer(func, "image", "BackgroundImage", "", "Image displayed as viewport background");
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
} }
static void rna_def_space_view3d(BlenderRNA *brna) static void rna_def_space_view3d(BlenderRNA *brna)