@@ -3246,6 +3246,11 @@ def get_tool_keymap(self, name):
32463246 keys = [k for k , i in six .iteritems (self ._keys ) if i == name ]
32473247 return keys
32483248
3249+ def _remove_keys (self , name ):
3250+ keys = [k for k , v in six .iteritems (self ._keys ) if v == name ]
3251+ for k in keys :
3252+ del self ._keys [k ]
3253+
32493254 def set_tool_keymap (self , name , * keys ):
32503255 """Set the keymap associated with a tool
32513256
@@ -3259,9 +3264,7 @@ def set_tool_keymap(self, name, *keys):
32593264 if name not in self ._tools :
32603265 raise AttributeError ('%s not in Tools' % name )
32613266
3262- active_keys = [k for k , i in six .iteritems (self ._keys ) if i == name ]
3263- for k in active_keys :
3264- del self ._keys [k ]
3267+ self ._remove_keys (name )
32653268
32663269 for key in keys :
32673270 for k in validate_stringlist (key ):
@@ -3270,21 +3273,6 @@ def set_tool_keymap(self, name, *keys):
32703273 (k , self ._keys [k ], name ))
32713274 self ._keys [k ] = name
32723275
3273- def unregister (self , name ):
3274- """Unregister the tool from Navigation
3275-
3276- Parameters
3277- ----------
3278- name : string
3279- Name of the tool to unregister
3280- """
3281-
3282- if self ._toggled == name :
3283- self ._handle_toggle (name , from_toolbar = False )
3284- if name in self ._tools :
3285- self ._tools [name ].destroy ()
3286- del self ._tools [name ]
3287-
32883276 def remove_tool (self , name ):
32893277 """Remove tool from the `Navigation`
32903278
@@ -3294,15 +3282,19 @@ def remove_tool(self, name):
32943282 Name of the Tool
32953283 """
32963284
3297- self .unregister (name )
3285+ tool = self ._tools [name ]
3286+ tool .destroy ()
32983287
3299- keys = [k for k , v in six .iteritems (self ._keys ) if v == name ]
3300- for k in keys :
3301- del self ._keys [k ]
3288+ if self ._toggled == name :
3289+ self ._handle_toggle (name , from_toolbar = False )
33023290
3303- if self .toolbar :
3291+ self ._remove_keys (name )
3292+
3293+ if self .toolbar and tool .intoolbar :
33043294 self .toolbar ._remove_toolitem (name )
33053295
3296+ del self ._tools [name ]
3297+
33063298 def add_tools (self , tools ):
33073299 """ Add multiple tools to `Navigation`
33083300
@@ -3449,7 +3441,7 @@ def get_tools(self):
34493441 for name in sorted (self ._tools .keys ()):
34503442 tool = self ._tools [name ]
34513443 keys = [k for k , i in six .iteritems (self ._keys ) if i == name ]
3452- d [name ] = {'cls ' : tool ,
3444+ d [name ] = {'obj ' : tool ,
34533445 'description' : tool .description ,
34543446 'keymap' : keys }
34553447 return d
0 commit comments