[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51101] trunk/blender/source/blender: Grease Pencil notifier/listener cleanup
Dan Eicher
dan at trollwerks.org
Fri Oct 5 21:51:12 CEST 2012
Revision: 51101
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51101
Author: dna
Date: 2012-10-05 19:51:11 +0000 (Fri, 05 Oct 2012)
Log Message:
-----------
Grease Pencil notifier/listener cleanup
As suggested by Campbell on the IRC gave grease pencil its own notifier type (NC_GPENCIL) and made the makesrna notifier functions actually update properly.
Also got the #ifdef'd GreasePencil.layers.[new/remove] functions working.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_gpencil.h
trunk/blender/source/blender/blenkernel/intern/gpencil.c
trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c
trunk/blender/source/blender/editors/gpencil/gpencil_edit.c
trunk/blender/source/blender/editors/gpencil/gpencil_paint.c
trunk/blender/source/blender/editors/gpencil/gpencil_undo.c
trunk/blender/source/blender/editors/space_action/space_action.c
trunk/blender/source/blender/editors/space_clip/space_clip.c
trunk/blender/source/blender/editors/space_image/space_image.c
trunk/blender/source/blender/editors/space_node/space_node.c
trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c
trunk/blender/source/blender/editors/space_view3d/space_view3d.c
trunk/blender/source/blender/makesrna/intern/rna_gpencil.c
trunk/blender/source/blender/windowmanager/WM_types.h
Modified: trunk/blender/source/blender/blenkernel/BKE_gpencil.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_gpencil.h 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/blenkernel/BKE_gpencil.h 2012-10-05 19:51:11 UTC (rev 51101)
@@ -44,7 +44,7 @@
void BKE_gpencil_free(struct bGPdata *gpd);
struct bGPDframe *gpencil_frame_addnew(struct bGPDlayer *gpl, int cframe);
-struct bGPDlayer *gpencil_layer_addnew(struct bGPdata *gpd);
+struct bGPDlayer *gpencil_layer_addnew(struct bGPdata *gpd, const char *name, int setactive);
struct bGPdata *gpencil_data_addnew(const char name[]);
struct bGPDframe *gpencil_frame_duplicate(struct bGPDframe *src);
@@ -62,6 +62,6 @@
void gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf);
struct bGPDlayer *gpencil_layer_getactive(struct bGPdata *gpd);
void gpencil_layer_setactive(struct bGPdata *gpd, struct bGPDlayer *active);
-void gpencil_layer_delactive(struct bGPdata *gpd);
+void gpencil_layer_delete(struct bGPdata *gpd, struct bGPDlayer *gpl);
#endif /* __BKE_GPENCIL_H__ */
Modified: trunk/blender/source/blender/blenkernel/intern/gpencil.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/gpencil.c 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/blenkernel/intern/gpencil.c 2012-10-05 19:51:11 UTC (rev 51101)
@@ -163,7 +163,7 @@
}
/* add a new gp-layer and make it the active layer */
-bGPDlayer *gpencil_layer_addnew(bGPdata *gpd)
+bGPDlayer *gpencil_layer_addnew(bGPdata *gpd, const char *name, int setactive)
{
bGPDlayer *gpl;
@@ -182,11 +182,12 @@
gpl->thickness = 3;
/* auto-name */
- strcpy(gpl->info, "GP_Layer");
+ strcpy(gpl->info, name);
BLI_uniquename(&gpd->layers, gpl, "GP_Layer", '.', offsetof(bGPDlayer, info), sizeof(gpl->info));
/* make this one the active one */
- gpencil_layer_setactive(gpd, gpl);
+ if (setactive)
+ gpencil_layer_setactive(gpd, gpl);
/* return layer */
return gpl;
@@ -509,10 +510,8 @@
}
/* delete the active gp-layer */
-void gpencil_layer_delactive(bGPdata *gpd)
+void gpencil_layer_delete(bGPdata *gpd, bGPDlayer *gpl)
{
- bGPDlayer *gpl = gpencil_layer_getactive(gpd);
-
/* error checking */
if (ELEM(NULL, gpd, gpl))
return;
Modified: trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c 2012-10-05 19:51:11 UTC (rev 51101)
@@ -75,17 +75,15 @@
/* make sure the layer we want to remove is the active one */
gpencil_layer_setactive(gpd, gpl);
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); /* XXX please work! */
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
}
/* delete 'active' layer */
static void gp_ui_dellayer_cb(bContext *C, void *gpd, void *gpl)
{
- /* make sure the layer we want to remove is the active one */
- gpencil_layer_setactive(gpd, gpl);
- gpencil_layer_delactive(gpd);
+ gpencil_layer_delete((bGPdata *)gpd, (bGPDlayer *)gpl);
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); /* XXX please work! */
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
}
Modified: trunk/blender/source/blender/editors/gpencil/gpencil_edit.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_edit.c 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_edit.c 2012-10-05 19:51:11 UTC (rev 51101)
@@ -224,7 +224,7 @@
}
/* notifiers */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX need a nicer one that will work
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -272,7 +272,7 @@
}
/* notifiers */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX need a nicer one that will work
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -306,10 +306,10 @@
*gpd_ptr = gpencil_data_addnew("GPencil");
/* add new layer now */
- gpencil_layer_addnew(*gpd_ptr);
+ gpencil_layer_addnew(*gpd_ptr, "GP_Layer", 1);
/* notifiers */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX please work!
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -360,7 +360,7 @@
gpencil_layer_delframe(gpl, gpf);
/* notifiers */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX please work!
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
Modified: trunk/blender/source/blender/editors/gpencil/gpencil_paint.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_paint.c 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_paint.c 2012-10-05 19:51:11 UTC (rev 51101)
@@ -1143,7 +1143,7 @@
/* get active layer (or add a new one if non-existent) */
p->gpl = gpencil_layer_getactive(p->gpd);
if (p->gpl == NULL) {
- p->gpl = gpencil_layer_addnew(p->gpd);
+ p->gpl = gpencil_layer_addnew(p->gpd, "GP_Layer", 1);
if (p->custom_color[3])
copy_v3_v3(p->gpl->color, p->custom_color);
@@ -1616,7 +1616,7 @@
gpencil_draw_exit(C, op);
/* refreshes */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX need a nicer one that will work
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1677,7 +1677,7 @@
//printf("\tGP - hotkey invoked... waiting for click-drag\n");
}
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL, NULL);
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
/* add a modal handler for this operator, so that we can then draw continuous strokes */
WM_event_add_modal_handler(C, op);
return OPERATOR_RUNNING_MODAL;
@@ -1790,7 +1790,7 @@
estate = OPERATOR_RUNNING_MODAL;
/* stroke could be smoothed, send notifier to refresh screen */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL);
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
}
else {
//printf("\t\tGP - end of stroke + op\n");
@@ -1880,7 +1880,7 @@
case OPERATOR_FINISHED:
/* one last flush before we're done */
gpencil_draw_exit(C, op);
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX need a nicer one that will work
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
break;
case OPERATOR_CANCELLED:
Modified: trunk/blender/source/blender/editors/gpencil/gpencil_undo.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_undo.c 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_undo.c 2012-10-05 19:51:11 UTC (rev 51101)
@@ -111,7 +111,7 @@
}
}
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL);
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
Modified: trunk/blender/source/blender/editors/space_action/space_action.c
===================================================================
--- trunk/blender/source/blender/editors/space_action/space_action.c 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/editors/space_action/space_action.c 2012-10-05 19:51:11 UTC (rev 51101)
@@ -357,8 +357,8 @@
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL) {
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED) {
/* only handle this event in GPencil mode for performance considerations */
if (saction->mode == SACTCONT_GPENCIL)
ED_area_tag_redraw(sa);
Modified: trunk/blender/source/blender/editors/space_clip/space_clip.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/space_clip.c 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/editors/space_clip/space_clip.c 2012-10-05 19:51:11 UTC (rev 51101)
@@ -407,8 +407,6 @@
case NC_SCREEN:
switch (wmn->data) {
case ND_ANIMPLAY:
- case ND_GPENCIL:
- clip_scopes_check_gpencil_change(sa);
ED_area_tag_redraw(sa);
break;
}
@@ -420,6 +418,12 @@
ED_area_tag_redraw(sa);
}
break;
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED) {
+ clip_scopes_check_gpencil_change(sa);
+ ED_area_tag_redraw(sa);
+ }
+ break;
}
}
@@ -1159,8 +1163,8 @@
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED)
ED_region_tag_redraw(ar);
break;
}
@@ -1373,8 +1377,8 @@
if (wmn->data == ND_SPACE_CLIP)
ED_region_tag_redraw(ar);
break;
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED)
ED_region_tag_redraw(ar);
break;
}
@@ -1406,8 +1410,8 @@
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->data == ND_DATA)
ED_region_tag_redraw(ar);
break;
case NC_BRUSH:
Modified: trunk/blender/source/blender/editors/space_image/space_image.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/space_image.c 2012-10-05 18:28:11 UTC (rev 51100)
+++ trunk/blender/source/blender/editors/space_image/space_image.c 2012-10-05 19:51:11 UTC (rev 51101)
@@ -708,8 +708,8 @@
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED)
ED_region_tag_redraw(ar);
break;
}
@@ -737,8 +737,8 @@
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->data == ND_DATA)
ED_region_tag_redraw(ar);
break;
case NC_BRUSH:
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list