@@ -3288,6 +3288,11 @@ def get_tool_keymap(self, name):
32883288 keys = [k for k , i in six .iteritems (self ._keys ) if i == name ]
32893289 return keys
32903290
3291+ def _remove_keys (self , name ):
3292+ keys = [k for k , v in six .iteritems (self ._keys ) if v == name ]
3293+ for k in keys :
3294+ del self ._keys [k ]
3295+
32913296 def set_tool_keymap (self , name , * keys ):
32923297 """Set the keymap associated with a tool
32933298
@@ -3301,9 +3306,7 @@ def set_tool_keymap(self, name, *keys):
33013306 if name not in self ._tools :
33023307 raise AttributeError ('%s not in Tools' % name )
33033308
3304- active_keys = [k for k , i in six .iteritems (self ._keys ) if i == name ]
3305- for k in active_keys :
3306- del self ._keys [k ]
3309+ self ._remove_keys (name )
33073310
33083311 for key in keys :
33093312 for k in validate_stringlist (key ):
@@ -3312,21 +3315,6 @@ def set_tool_keymap(self, name, *keys):
33123315 (k , self ._keys [k ], name ))
33133316 self ._keys [k ] = name
33143317
3315- def unregister (self , name ):
3316- """Unregister the tool from Navigation
3317-
3318- Parameters
3319- ----------
3320- name : string
3321- Name of the tool to unregister
3322- """
3323-
3324- if self ._toggled == name :
3325- self ._handle_toggle (name , from_toolbar = False )
3326- if name in self ._tools :
3327- self ._tools [name ].destroy ()
3328- del self ._tools [name ]
3329-
33303318 def remove_tool (self , name ):
33313319 """Remove tool from the `Navigation`
33323320
@@ -3336,15 +3324,19 @@ def remove_tool(self, name):
33363324 Name of the Tool
33373325 """
33383326
3339- self .unregister (name )
3327+ tool = self ._tools [name ]
3328+ tool .destroy ()
33403329
3341- keys = [k for k , v in six .iteritems (self ._keys ) if v == name ]
3342- for k in keys :
3343- del self ._keys [k ]
3330+ if self ._toggled == name :
3331+ self ._handle_toggle (name , from_toolbar = False )
33443332
3345- if self .toolbar :
3333+ self ._remove_keys (name )
3334+
3335+ if self .toolbar and tool .intoolbar :
33463336 self .toolbar ._remove_toolitem (name )
33473337
3338+ del self ._tools [name ]
3339+
33483340 def add_tools (self , tools ):
33493341 """ Add multiple tools to `Navigation`
33503342
@@ -3491,7 +3483,7 @@ def get_tools(self):
34913483 for name in sorted (self ._tools .keys ()):
34923484 tool = self ._tools [name ]
34933485 keys = [k for k , i in six .iteritems (self ._keys ) if i == name ]
3494- d [name ] = {'cls ' : tool ,
3486+ d [name ] = {'obj ' : tool ,
34953487 'description' : tool .description ,
34963488 'keymap' : keys }
34973489 return d
0 commit comments