[Bf-blender-cvs] [e954082dda8] blender2.8: WM: warn when tool widget not found
Campbell Barton
noreply at git.blender.org
Thu May 3 07:33:56 CEST 2018
Commit: e954082dda865c7f731d75ad131ba499948fe3a2
Author: Campbell Barton
Date: Thu May 3 07:31:55 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBe954082dda865c7f731d75ad131ba499948fe3a2
WM: warn when tool widget not found
This happens when testing adding tools, assert isn't useful.
===================================================================
M source/blender/windowmanager/WM_types.h
M source/blender/windowmanager/intern/wm_init_exit.c
M source/blender/windowmanager/intern/wm_toolsystem.c
===================================================================
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 59a3f703614..bbd12ddfb0a 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -739,6 +739,7 @@ extern struct CLG_LogRef *WM_LOG_OPERATORS;
extern struct CLG_LogRef *WM_LOG_HANDLERS;
extern struct CLG_LogRef *WM_LOG_EVENTS;
extern struct CLG_LogRef *WM_LOG_KEYMAPS;
+extern struct CLG_LogRef *WM_LOG_TOOLS;
#ifdef __cplusplus
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index d452c1638c8..1f17efa0845 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -136,6 +136,7 @@ CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_OPERATORS, "wm.operator");
CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_HANDLERS, "wm.handler");
CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_EVENTS, "wm.event");
CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_KEYMAPS, "wm.keymap");
+CLG_LOGREF_DECLARE_GLOBAL(WM_LOG_TOOLS, "wm.tool");
static void wm_init_reports(bContext *C)
{
diff --git a/source/blender/windowmanager/intern/wm_toolsystem.c b/source/blender/windowmanager/intern/wm_toolsystem.c
index 690628bbd3b..e449695e3cf 100644
--- a/source/blender/windowmanager/intern/wm_toolsystem.c
+++ b/source/blender/windowmanager/intern/wm_toolsystem.c
@@ -26,6 +26,8 @@
#include <string.h>
+#include "CLG_log.h"
+
#include "BLI_utildefines.h"
#include "BLI_string.h"
@@ -78,7 +80,14 @@ void WM_toolsystem_unlink(bContext *C, WorkSpace *workspace)
void WM_toolsystem_link(bContext *C, WorkSpace *workspace)
{
if (workspace->tool.manipulator_group[0]) {
- WM_manipulator_group_type_ensure(workspace->tool.manipulator_group);
+ const char *idname = workspace->tool.manipulator_group;
+ wmManipulatorGroupType *wgt = WM_manipulatorgrouptype_find(idname, false);
+ if (wgt != NULL) {
+ WM_manipulator_group_type_ensure_ptr(wgt);
+ }
+ else {
+ CLOG_WARN(WM_LOG_TOOLS, "'%s' widget not found", idname);
+ }
}
if (workspace->tool.data_block[0]) {
More information about the Bf-blender-cvs
mailing list