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

Skip to content

Commit b6d3d98

Browse files
committed
Remove deprecated parts of the toolbar.
1 parent d82e2d4 commit b6d3d98

File tree

5 files changed

+29
-135
lines changed

5 files changed

+29
-135
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
NavigationToolbar2._init_toolbar
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
Overriding this method to initialize third-party toolbars is no longer
4+
supported. Instead, the toolbar should be initialized in the ``__init__``
5+
method of the subclass (which should call the base-class' ``__init__`` as
6+
appropriate).
7+
8+
NavigationToolbar2.press and .release
9+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10+
These methods were called when pressing or releasing a mouse button, but *only*
11+
when an interactive pan or zoom was occurring (contrary to what the docs
12+
stated). They are no longer called; if you write a backend which needs to
13+
customize such events, please directly override
14+
``press_pan``/``press_zoom``/``release_pan``/``release_zoom`` instead.
15+
16+
NavigationToolbar2QT.parent and .basedir
17+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18+
These attributes have been removed. In order to access the parent window, use
19+
``toolbar.canvas.parent()`` or ``toolbar.parent()``. The base directory to the
20+
icons is ``os.path.join(mpl.get_data_path(), "images")``.
21+
22+
NavigationToolbar2QT.ctx
23+
~~~~~~~~~~~~~~~~~~~~~~~~
24+
This attribute has been removed.
25+
26+
NavigationToolbar2Wx attributes
27+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28+
The ``prevZoomRect``, ``retinaFix``, ``savedRetinaImage``, ``wxoverlay``,
29+
``zoomAxes``, ``zoomStartX``, and ``zoomStartY`` attributes have been removed.

lib/matplotlib/backend_bases.py

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -2944,14 +2944,6 @@ def __init__(self, canvas):
29442944
# This cursor will be set after the initial draw.
29452945
self._lastCursor = cursors.POINTER
29462946

2947-
init = _api.deprecate_method_override(
2948-
__class__._init_toolbar, self, allow_empty=True, since="3.3",
2949-
addendum="Please fully initialize the toolbar in your subclass' "
2950-
"__init__; a fully empty _init_toolbar implementation may be kept "
2951-
"for compatibility with earlier versions of Matplotlib.")
2952-
if init:
2953-
init()
2954-
29552947
self._id_press = self.canvas.mpl_connect(
29562948
'button_press_event', self._zoom_pan_handler)
29572949
self._id_release = self.canvas.mpl_connect(
@@ -3013,29 +3005,6 @@ def forward(self, *args):
30133005
self.set_history_buttons()
30143006
self._update_view()
30153007

3016-
@_api.deprecated("3.3", alternative="__init__")
3017-
def _init_toolbar(self):
3018-
"""
3019-
This is where you actually build the GUI widgets (called by
3020-
__init__). The icons ``home.xpm``, ``back.xpm``, ``forward.xpm``,
3021-
``hand.xpm``, ``zoom_to_rect.xpm`` and ``filesave.xpm`` are standard
3022-
across backends (there are ppm versions in CVS also).
3023-
3024-
You just need to set the callbacks
3025-
3026-
home : self.home
3027-
back : self.back
3028-
forward : self.forward
3029-
hand : self.pan
3030-
zoom_to_rect : self.zoom
3031-
filesave : self.save_figure
3032-
3033-
You only need to define the last one - the others are in the base
3034-
class implementation.
3035-
3036-
"""
3037-
raise NotImplementedError
3038-
30393008
def _update_cursor(self, event):
30403009
"""
30413010
Update the cursor after a mouse move event or a tool (de)activation.
@@ -3118,14 +3087,6 @@ def _zoom_pan_handler(self, event):
31183087
elif event.name == "button_release_event":
31193088
self.release_zoom(event)
31203089

3121-
@_api.deprecated("3.3")
3122-
def press(self, event):
3123-
"""Called whenever a mouse button is pressed."""
3124-
3125-
@_api.deprecated("3.3")
3126-
def release(self, event):
3127-
"""Callback for mouse button release."""
3128-
31293090
def pan(self, *args):
31303091
"""
31313092
Toggle the pan/zoom tool.
@@ -3161,12 +3122,6 @@ def press_pan(self, event):
31613122
id_drag = self.canvas.mpl_connect("motion_notify_event", self.drag_pan)
31623123
self._pan_info = self._PanInfo(
31633124
button=event.button, axes=axes, cid=id_drag)
3164-
press = _api.deprecate_method_override(
3165-
__class__.press, self, since="3.3", message="Calling an "
3166-
"overridden press() at pan start is deprecated since %(since)s "
3167-
"and will be removed %(removal)s; override press_pan() instead.")
3168-
if press is not None:
3169-
press(event)
31703125

31713126
def drag_pan(self, event):
31723127
"""Callback for dragging in pan/zoom mode."""
@@ -3185,12 +3140,6 @@ def release_pan(self, event):
31853140
'motion_notify_event', self.mouse_move)
31863141
for ax in self._pan_info.axes:
31873142
ax.end_pan()
3188-
release = _api.deprecate_method_override(
3189-
__class__.press, self, since="3.3", message="Calling an "
3190-
"overridden release() at pan stop is deprecated since %(since)s "
3191-
"and will be removed %(removal)s; override release_pan() instead.")
3192-
if release is not None:
3193-
release(event)
31943143
self._draw()
31953144
self._pan_info = None
31963145
self.push_current()
@@ -3225,12 +3174,6 @@ def press_zoom(self, event):
32253174
self._zoom_info = self._ZoomInfo(
32263175
direction="in" if event.button == 1 else "out",
32273176
start_xy=(event.x, event.y), axes=axes, cid=id_zoom)
3228-
press = _api.deprecate_method_override(
3229-
__class__.press, self, since="3.3", message="Calling an "
3230-
"overridden press() at zoom start is deprecated since %(since)s "
3231-
"and will be removed %(removal)s; override press_zoom() instead.")
3232-
if press is not None:
3233-
press(event)
32343177

32353178
def drag_zoom(self, event):
32363179
"""Callback for dragging in zoom mode."""
@@ -3261,13 +3204,6 @@ def release_zoom(self, event):
32613204
or (abs(event.y - start_y) < 5 and event.key != "x")):
32623205
self._draw()
32633206
self._zoom_info = None
3264-
release = _api.deprecate_method_override(
3265-
__class__.press, self, since="3.3", message="Calling an "
3266-
"overridden release() at zoom stop is deprecated since "
3267-
"%(since)s and will be removed %(removal)s; override "
3268-
"release_zoom() instead.")
3269-
if release is not None:
3270-
release(event)
32713207
return
32723208

32733209
for i, ax in enumerate(self._zoom_info.axes):
@@ -3285,14 +3221,6 @@ def release_zoom(self, event):
32853221
self._zoom_info = None
32863222
self.push_current()
32873223

3288-
release = _api.deprecate_method_override(
3289-
__class__.release, self, since="3.3", message="Calling an "
3290-
"overridden release() at zoom stop is deprecated since %(since)s "
3291-
"and will be removed %(removal)s; override release_zoom() "
3292-
"instead.")
3293-
if release is not None:
3294-
release(event)
3295-
32963224
def push_current(self):
32973225
"""Push the current view limits and position onto the stack."""
32983226
self._nav_stack.push(

lib/matplotlib/backends/backend_gtk3.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -443,9 +443,6 @@ def resize(self, width, height):
443443

444444

445445
class NavigationToolbar2GTK3(NavigationToolbar2, Gtk.Toolbar):
446-
ctx = _api.deprecated("3.3")(property(
447-
lambda self: self.canvas.get_property("window").cairo_create()))
448-
449446
def __init__(self, canvas, window):
450447
self.win = window
451448
GObject.GObject.__init__(self)

lib/matplotlib/backends/backend_qt5.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -651,22 +651,6 @@ def __init__(self, canvas, parent, coordinates=True):
651651

652652
NavigationToolbar2.__init__(self, canvas)
653653

654-
@_api.deprecated("3.3", alternative="self.canvas.parent()")
655-
@property
656-
def parent(self):
657-
return self.canvas.parent()
658-
659-
@_api.deprecated("3.3", alternative="self.canvas.setParent()")
660-
@parent.setter
661-
def parent(self, value):
662-
pass
663-
664-
@_api.deprecated(
665-
"3.3", alternative="os.path.join(mpl.get_data_path(), 'images')")
666-
@property
667-
def basedir(self):
668-
return str(cbook._get_data_path('images'))
669-
670654
def _icon(self, name):
671655
"""
672656
Construct a `.QIcon` from an image file *name*, including the extension

lib/matplotlib/backends/backend_wx.py

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1110,21 +1110,6 @@ def __init__(self, canvas, coordinates=True):
11101110

11111111
NavigationToolbar2.__init__(self, canvas)
11121112

1113-
self._prevZoomRect = None
1114-
# for now, use alternate zoom-rectangle drawing on all
1115-
# Macs. N.B. In future versions of wx it may be possible to
1116-
# detect Retina displays with window.GetContentScaleFactor()
1117-
# and/or dc.GetContentScaleFactor()
1118-
self._retinaFix = 'wxMac' in wx.PlatformInfo
1119-
1120-
prevZoomRect = _api.deprecate_privatize_attribute("3.3")
1121-
retinaFix = _api.deprecate_privatize_attribute("3.3")
1122-
savedRetinaImage = _api.deprecate_privatize_attribute("3.3")
1123-
wxoverlay = _api.deprecate_privatize_attribute("3.3")
1124-
zoomAxes = _api.deprecate_privatize_attribute("3.3")
1125-
zoomStartX = _api.deprecate_privatize_attribute("3.3")
1126-
zoomStartY = _api.deprecate_privatize_attribute("3.3")
1127-
11281113
@staticmethod
11291114
def _icon(name):
11301115
"""
@@ -1198,35 +1183,6 @@ def set_cursor(self, cursor):
11981183
self.canvas.SetCursor(cursor)
11991184
self.canvas.Update()
12001185

1201-
def press_zoom(self, event):
1202-
super().press_zoom(event)
1203-
if self.mode.name == 'ZOOM':
1204-
if not self._retinaFix:
1205-
self._wxoverlay = wx.Overlay()
1206-
else:
1207-
if event.inaxes is not None:
1208-
self._savedRetinaImage = self.canvas.copy_from_bbox(
1209-
event.inaxes.bbox)
1210-
self._zoomStartX = event.xdata
1211-
self._zoomStartY = event.ydata
1212-
self._zoomAxes = event.inaxes
1213-
1214-
def release_zoom(self, event):
1215-
super().release_zoom(event)
1216-
if self.mode.name == 'ZOOM':
1217-
# When the mouse is released we reset the overlay and it
1218-
# restores the former content to the window.
1219-
if not self._retinaFix:
1220-
self._wxoverlay.Reset()
1221-
del self._wxoverlay
1222-
else:
1223-
del self._savedRetinaImage
1224-
if self._prevZoomRect:
1225-
self._prevZoomRect.pop(0).remove()
1226-
self._prevZoomRect = None
1227-
if self._zoomAxes:
1228-
self._zoomAxes = None
1229-
12301186
def draw_rubberband(self, event, x0, y0, x1, y1):
12311187
height = self.canvas.figure.bbox.height
12321188
self.canvas._rubberband_rect = (x0, height - y0, x1, height - y1)

0 commit comments

Comments
 (0)