diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-07-13 12:33:51 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-07-13 12:33:51 +0400 |
commit | 89830ea0c87765aea30bc2b69abe417ef941ea55 (patch) | |
tree | 2769de7ebaf585412210c8566c6d52a7fbc38fc8 /source/blender/windowmanager | |
parent | 26ef6da24b3324fb6f8ab6cfe12f101f0d7dedb4 (diff) |
calling operators from python was raising an error without returning an error value.
brecht, switched the order back to fix this, added an argument for WM_operatortype_find() to fail without printing an error.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/WM_api.h | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 11 |
3 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 7fe98488ec0..c72da8fe593 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -132,7 +132,7 @@ int WM_operator_redo_popup (struct bContext *C, struct wmOperator *op); void WM_operator_free (struct wmOperator *op); void WM_operator_stack_clear(struct bContext *C); -wmOperatorType *WM_operatortype_find(const char *idname); +wmOperatorType *WM_operatortype_find(const char *idnamem, int quiet); wmOperatorType *WM_operatortype_exists(const char *idname); wmOperatorType *WM_operatortype_first(void); void WM_operatortype_append (void (*opfunc)(wmOperatorType*)); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 491b70deedc..3ef6e545dda 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -393,7 +393,7 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P /* invokes operator in context */ int WM_operator_name_call(bContext *C, const char *opstring, int context, PointerRNA *properties) { - wmOperatorType *ot= WM_operatortype_find(opstring); + wmOperatorType *ot= WM_operatortype_find(opstring, 0); wmWindow *window= CTX_wm_window(C); wmEvent *event; @@ -723,7 +723,7 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand printf("wm_handler_operator_call error\n"); } else { - wmOperatorType *ot= WM_operatortype_find(event->keymap_idname); + wmOperatorType *ot= WM_operatortype_find(event->keymap_idname, 0); if(ot) retval= wm_operator_invoke(C, ot, event, properties); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 330196a7a73..d7cac82ef90 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -82,7 +82,7 @@ static ListBase global_ops= {NULL, NULL}; /* ************ operator API, exported ********** */ -wmOperatorType *WM_operatortype_find(const char *idname) +wmOperatorType *WM_operatortype_find(const char *idname, int quiet) { wmOperatorType *ot; @@ -90,7 +90,10 @@ wmOperatorType *WM_operatortype_find(const char *idname) if(strncmp(ot->idname, idname, OP_MAX_TYPENAME)==0) return ot; } - printf("search for unknown operator %s\n", idname); + + if(!quiet) + printf("search for unknown operator %s\n", idname); + return NULL; } @@ -137,7 +140,7 @@ void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType*, void*), void *us int WM_operatortype_remove(const char *idname) { - wmOperatorType *ot = WM_operatortype_find(idname); + wmOperatorType *ot = WM_operatortype_find(idname, 0); if (ot==NULL) return 0; @@ -190,7 +193,7 @@ char *WM_operator_pystring(wmOperator *op) void WM_operator_properties_create(PointerRNA *ptr, const char *opstring) { - wmOperatorType *ot= WM_operatortype_find(opstring); + wmOperatorType *ot= WM_operatortype_find(opstring, 0); if(ot) RNA_pointer_create(NULL, ot->srna, NULL, ptr); |