Exemplo n.º 1
0
static void rna_Mask_layers_remove(Mask *mask, ReportList *reports, PointerRNA *masklay_ptr)
{
	MaskLayer *masklay = masklay_ptr->data;
	if (BLI_findindex(&mask->masklayers, masklay) == -1) {
		BKE_reportf(reports, RPT_ERROR, "Mask layer '%s' not found in mask '%s'", masklay->name, mask->id.name + 2);
		return;
	}

	BKE_mask_layer_remove(mask, masklay);
	RNA_POINTER_INVALIDATE(masklay_ptr);

	WM_main_add_notifier(NC_MASK | NA_EDITED, mask);
}
Exemplo n.º 2
0
static int masklay_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
	Mask *mask = CTX_data_edit_mask(C);
	MaskLayer *masklay = BKE_mask_layer_active(mask);

	if (masklay) {
		BKE_mask_layer_remove(mask, masklay);

		WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask);
	}

	return OPERATOR_FINISHED;
}