[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