Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d18206f

Browse files
committed
removing unregister
1 parent 6739ee0 commit d18206f

3 files changed

Lines changed: 20 additions & 41 deletions

File tree

examples/user_interfaces/navigation.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import matplotlib
2-
# matplotlib.use('GTK3Cairo')
3-
matplotlib.use('TkAGG')
2+
matplotlib.use('GTK3Cairo')
3+
# matplotlib.use('TkAGG')
44
matplotlib.rcParams['toolbar'] = 'navigation'
55
import matplotlib.pyplot as plt
66
from matplotlib.backend_tools import ToolBase
@@ -53,7 +53,7 @@ def trigger(self, event):
5353
if matplotlib.rcParams['backend'] == 'GTK3Cairo':
5454
fig.canvas.manager.navigation.add_tool('copy', CopyToolGTK3)
5555

56-
# Just for fun, lets remove the back button
57-
# fig.canvas.manager.navigation.remove_tool('Back')
56+
# Just for fun, lets remove the forward button
57+
fig.canvas.manager.navigation.remove_tool('Forward')
5858

5959
plt.show()

lib/matplotlib/backend_bases.py

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -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

lib/matplotlib/backend_tools.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -92,19 +92,6 @@ def set_figure(self, figure):
9292
self.figure = figure
9393
self.navigation = figure.canvas.manager.navigation
9494

95-
def unregister(self, *args):
96-
"""Unregister the tool from the instances of Navigation
97-
98-
It is usually called by during destroy if it is a
99-
graphical Tool.
100-
101-
If the reference in navigation was the last reference
102-
to the instance of the tool, it will be garbage collected
103-
"""
104-
105-
# call this to unregister from navigation
106-
self.navigation.unregister(self._name)
107-
10895
@property
10996
def name(self):
11097
return self._name

0 commit comments

Comments
 (0)