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

Skip to content

Commit 9d3c977

Browse files
committed
removing unregister
1 parent 2cb4501 commit 9d3c977

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
@@ -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

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)