Fix T45016, mask animation data lost after layer rename
We need to fix up animation data.
This commit is contained in:
parent
8c2619a11a
commit
5114637967
|
@ -79,6 +79,7 @@ struct MaskSpline *BKE_mask_spline_copy(struct MaskSpline *spline);
|
|||
void BKE_mask_point_free(struct MaskSplinePoint *point);
|
||||
|
||||
void BKE_mask_layer_unique_name(struct Mask *mask, struct MaskLayer *masklay);
|
||||
void BKE_mask_layer_rename(struct Mask *mask, struct MaskLayer *masklay, char *oldname, char *newname);
|
||||
|
||||
struct MaskLayer *BKE_mask_layer_copy(struct MaskLayer *layer);
|
||||
void BKE_mask_layer_copy_list(struct ListBase *masklayers_new, struct ListBase *masklayers);
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include "DNA_space_types.h"
|
||||
#include "DNA_sequence_types.h"
|
||||
|
||||
#include "BKE_animsys.h"
|
||||
#include "BKE_curve.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_library.h"
|
||||
|
@ -181,6 +182,16 @@ void BKE_mask_layer_unique_name(Mask *mask, MaskLayer *masklay)
|
|||
sizeof(masklay->name));
|
||||
}
|
||||
|
||||
void BKE_mask_layer_rename(Mask *mask, MaskLayer *masklay, char *oldname, char *newname)
|
||||
{
|
||||
BLI_strncpy(masklay->name, newname, sizeof(masklay->name));
|
||||
|
||||
BKE_mask_layer_unique_name(mask, masklay);
|
||||
|
||||
/* now fix animation paths */
|
||||
BKE_animdata_fix_paths_rename_all(&mask->id, "layers", oldname, masklay->name);
|
||||
}
|
||||
|
||||
MaskLayer *BKE_mask_layer_copy(MaskLayer *masklay)
|
||||
{
|
||||
MaskLayer *masklay_new;
|
||||
|
|
|
@ -213,10 +213,13 @@ static void rna_MaskLayer_name_set(PointerRNA *ptr, const char *value)
|
|||
{
|
||||
Mask *mask = (Mask *)ptr->id.data;
|
||||
MaskLayer *masklay = (MaskLayer *)ptr->data;
|
||||
char oldname[sizeof(masklay->name)], newname[sizeof(masklay->name)];
|
||||
|
||||
BLI_strncpy(masklay->name, value, sizeof(masklay->name));
|
||||
/* need to be on the stack */
|
||||
BLI_strncpy(oldname, masklay->name, sizeof(masklay->name));
|
||||
BLI_strncpy_utf8(newname, value, sizeof(masklay->name));
|
||||
|
||||
BKE_mask_layer_unique_name(mask, masklay);
|
||||
BKE_mask_layer_rename(mask, masklay, oldname, newname);
|
||||
}
|
||||
|
||||
static PointerRNA rna_MaskLayer_active_spline_get(PointerRNA *ptr)
|
||||
|
|
Loading…
Reference in New Issue