New operator: Copy Color
Duplicate active palette color
This commit is contained in:
@@ -718,6 +718,7 @@ class GPENCIL_MT_palettecolor_specials(Menu):
|
||||
|
||||
layout.operator("gpencil.palettecolor_lock_all", icon='LOCKED', text="Lock All")
|
||||
layout.operator("gpencil.palettecolor_unlock_all", icon='UNLOCKED', text="UnLock All")
|
||||
layout.operator("gpencil.palettecolor_copy", icon='PASTEDOWN', text="Copy Color")
|
||||
|
||||
|
||||
class GreasePencilDataPanel:
|
||||
|
@@ -1895,7 +1895,7 @@ void GPENCIL_OT_palettecolor_remove(wmOperatorType *ot)
|
||||
|
||||
/* callbacks */
|
||||
ot->exec = gp_palettecolor_remove_exec;
|
||||
ot->poll = gp_active_layer_poll;
|
||||
ot->poll = gp_active_palettecolor_poll;
|
||||
}
|
||||
|
||||
/* ********************** Isolate palette color **************************** */
|
||||
@@ -2264,3 +2264,42 @@ void GPENCIL_OT_palettecolor_select(wmOperatorType *ot)
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
}
|
||||
|
||||
/* ***************** Copy Palette color ************************ */
|
||||
static int gp_palettecolor_copy_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
bGPdata *gpd = ED_gpencil_data_get_active(C);
|
||||
bGPDpalette *palette = gpencil_palette_getactive(gpd);
|
||||
bGPDpalettecolor *palcolor = gpencil_palettecolor_getactive(palette);
|
||||
bGPDpalettecolor *newcolor;
|
||||
|
||||
/* sanity checks */
|
||||
if (ELEM(NULL, gpd, palette, palcolor))
|
||||
return OPERATOR_CANCELLED;
|
||||
|
||||
/* create a new color and duplicate data */
|
||||
newcolor = gpencil_palettecolor_addnew(palette, DATA_("Color"), true);
|
||||
copy_v4_v4(newcolor->color, palcolor->color);
|
||||
copy_v4_v4(newcolor->fill, palcolor->fill);
|
||||
newcolor->flag = palcolor->flag;
|
||||
|
||||
/* notifiers */
|
||||
WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
void GPENCIL_OT_palettecolor_copy(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name = "Copy Color";
|
||||
ot->idname = "GPENCIL_OT_palettecolor_copy";
|
||||
ot->description = "Copy current palette color";
|
||||
|
||||
/* callbacks */
|
||||
ot->exec = gp_palettecolor_copy_exec;
|
||||
ot->poll = gp_active_palettecolor_poll;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
}
|
||||
|
@@ -277,6 +277,7 @@ void GPENCIL_OT_palettecolor_lock_all(struct wmOperatorType *ot);
|
||||
void GPENCIL_OT_palettecolor_unlock_all(struct wmOperatorType *ot);
|
||||
void GPENCIL_OT_palettecolor_move(struct wmOperatorType *ot);
|
||||
void GPENCIL_OT_palettecolor_select(struct wmOperatorType *ot);
|
||||
void GPENCIL_OT_palettecolor_copy(struct wmOperatorType *ot);
|
||||
|
||||
/* undo stack ---------- */
|
||||
|
||||
|
@@ -389,6 +389,7 @@ void ED_operatortypes_gpencil(void)
|
||||
WM_operatortype_append(GPENCIL_OT_palettecolor_unlock_all);
|
||||
WM_operatortype_append(GPENCIL_OT_palettecolor_move);
|
||||
WM_operatortype_append(GPENCIL_OT_palettecolor_select);
|
||||
WM_operatortype_append(GPENCIL_OT_palettecolor_copy);
|
||||
|
||||
WM_operatortype_append(GPENCIL_OT_brush_add);
|
||||
WM_operatortype_append(GPENCIL_OT_brush_remove);
|
||||
|
Reference in New Issue
Block a user