diff options
author | Antonioya <blendergit@gmail.com> | 2016-08-16 23:28:34 +0300 |
---|---|---|
committer | Antonioya <blendergit@gmail.com> | 2016-08-16 23:29:13 +0300 |
commit | b90421019b0257f52a6b75dcc57a0c96fa4159b6 (patch) | |
tree | f1b51c7ef27c27ab4dfc3eef02e7ea9ccd8fdd21 /source/blender | |
parent | a67ca5e30cc92ad65d93434a6c2a699d7563b04f (diff) |
Fix T49097: GP ruler data reinstances GP_Palette Color
If the ruler is saved, a new color was created for each ruler. With the
change, a color is created for the first instance, and it reused in the
following instances. The default color is the current default color for
GP.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_ruler.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/view3d_ruler.c b/source/blender/editors/space_view3d/view3d_ruler.c index 37b068e3e49..dda1a64726c 100644 --- a/source/blender/editors/space_view3d/view3d_ruler.c +++ b/source/blender/editors/space_view3d/view3d_ruler.c @@ -297,6 +297,8 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info) bGPDlayer *gpl; bGPDframe *gpf; bGPDstroke *gps; + bGPDpalette *palette; + bGPDpalettecolor *palcolor; RulerItem *ruler_item; const char *ruler_name = RULER_ID; bool changed = false; @@ -312,6 +314,17 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info) gpl->flag |= GP_LAYER_HIDE; } + /* try to get active palette or create a new one */ + palette = BKE_gpencil_palette_getactive(scene->gpd); + if (palette == NULL) { + palette = BKE_gpencil_palette_addnew(scene->gpd, DATA_("GP_Palette"), true); + } + /* try to get color with the ruler name or create a new one */ + palcolor = BKE_gpencil_palettecolor_getbyname(palette, (char *)ruler_name); + if (palcolor == NULL) { + palcolor = BKE_gpencil_palettecolor_addnew(palette, (char *)ruler_name, true); + } + gpf = BKE_gpencil_layer_getframe(gpl, CFRA, true); BKE_gpencil_free_strokes(gpf); @@ -342,6 +355,9 @@ static bool view3d_ruler_to_gpencil(bContext *C, RulerInfo *ruler_info) } } gps->flag = GP_STROKE_3DSPACE; + /* assign color to stroke */ + strcpy(gps->colorname, palcolor->info); + gps->palcolor = palcolor; BLI_addtail(&gpf->strokes, gps); changed = true; } |