Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove sender argument to trigger.
  • Loading branch information
anntzer committed Jan 4, 2018
commit 3a0ba93f314b02981b9619e56647fe4b6dd89c57
2 changes: 1 addition & 1 deletion lib/matplotlib/backend_bases.py
Original file line number Diff line number Diff line change
Expand Up @@ -3282,7 +3282,7 @@ def trigger_tool(self, name):
name : String
Name (id) of the tool triggered from within the container
"""
self.toolmanager.trigger_tool(name, sender=self)
self.toolmanager.trigger_tool(name)

def add_toolitem(self, name, group, position, image, description, toggle):
"""
Expand Down
48 changes: 17 additions & 31 deletions lib/matplotlib/backend_managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,15 @@

class ToolEvent(object):
"""Event for tool manipulation (add/remove)"""
def __init__(self, name, sender, tool):
def __init__(self, name, tool):
self.name = name
self.sender = sender
self.tool = tool


class ToolTriggerEvent(ToolEvent):
"""Event to inform that a tool has been triggered"""
def __init__(self, name, sender, tool, canvasevent=None):
ToolEvent.__init__(self, name, sender, tool)
def __init__(self, name, tool, canvasevent=None):
ToolEvent.__init__(self, name, tool)
self.canvasevent = canvasevent


Expand All @@ -36,9 +35,8 @@ class ToolManagerMessageEvent(object):

Messages usually get displayed to the user by the toolbar
"""
def __init__(self, name, sender, message):
def __init__(self, name, message):
self.name = name
self.sender = sender
self.message = message


Expand Down Expand Up @@ -149,13 +147,10 @@ def toolmanager_disconnect(self, cid):
"""
return self._callbacks.disconnect(cid)

def message_event(self, message, sender=None):
def message_event(self, message):
""" Emit a `ToolManagerMessageEvent`"""
if sender is None:
sender = self

s = 'tool_message_event'
event = ToolManagerMessageEvent(s, sender, message)
event = ToolManagerMessageEvent(s, message)
self._callbacks.process(s, event)

@property
Expand Down Expand Up @@ -228,7 +223,7 @@ def remove_tool(self, name):
self._remove_keys(name)

s = 'tool_removed_event'
event = ToolEvent(s, self, tool)
event = ToolEvent(s, tool)
self._callbacks.process(s, event)

del self._tools[name]
Expand Down Expand Up @@ -281,27 +276,25 @@ def add_tool(self, tool_name, *args, **kwargs):

# If initially toggled
if tool_obj.toggled:
self._handle_toggle(tool_obj, None, None)
self._handle_toggle(tool_obj, None)
tool_obj.set_figure(self.figure)

self._tool_added_event(tool_obj)
return tool_obj

def _tool_added_event(self, tool):
s = 'tool_added_event'
event = ToolEvent(s, self, tool)
event = ToolEvent(s, tool)
self._callbacks.process(s, event)

def _handle_toggle(self, tool, sender, canvasevent):
def _handle_toggle(self, tool, canvasevent):
"""
Toggle tools, need to untoggle prior to using other Toggle tool
Called from trigger_tool

Parameters
----------
tool: Tool object
sender: object
Object that wishes to trigger the tool
canvasevent : Event
Original Canvas event or None
"""
Expand All @@ -326,7 +319,7 @@ def _handle_toggle(self, tool, sender, canvasevent):
# Other tool in the radio_group is toggled
else:
# Untoggle previously toggled tool
self.trigger_tool(self._toggled[radio_group], self, canvasevent)
self.trigger_tool(self._toggled[radio_group], canvasevent)
toggled = tool.name

# Keep track of the toggled tool in the radio_group
Expand All @@ -349,33 +342,26 @@ def _get_cls_to_instantiate(self, callback_class):
else:
return None

def trigger_tool(self, name, sender=None, canvasevent=None):
def trigger_tool(self, name, canvasevent=None):
"""
Trigger a tool and emit the tool_trigger_[name] event

Parameters
----------
name : string
Name of the tool
sender: object
Object that wishes to trigger the tool
canvasevent : Event
Original Canvas event or None
"""
tool = self.get_tool(name)
if tool is None:
return

if sender is None:
sender = self

self._trigger_tool(name, sender, canvasevent)

self._trigger_tool(name, canvasevent)
s = 'tool_trigger_%s' % name
event = ToolTriggerEvent(s, sender, tool, canvasevent)
event = ToolTriggerEvent(s, tool, canvasevent)
self._callbacks.process(s, event)

def _trigger_tool(self, name, sender=None, canvasevent=None):
def _trigger_tool(self, name, canvasevent=None):
"""
Trigger on a tool

Expand All @@ -384,11 +370,11 @@ def _trigger_tool(self, name, sender=None, canvasevent=None):
tool = self.get_tool(name)

if isinstance(tool, tools.ToolToggleBase):
self._handle_toggle(tool, sender, canvasevent)
self._handle_toggle(tool, canvasevent)

# Important!!!
# This is where the Tool object gets triggered
tool.trigger(sender, canvasevent)
tool.trigger(canvasevent)

def _key_press(self, event):
if event.key is None or self.keypresslock.locked():
Expand Down
30 changes: 13 additions & 17 deletions lib/matplotlib/backend_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def set_figure(self, figure):
"""
self._figure = figure

def trigger(self, sender, event):
def trigger(self, event):
"""
Called when this tool gets used

Expand All @@ -156,12 +156,8 @@ def trigger(self, sender, event):
----------
event: `Event`
The Canvas event that caused this tool to be called
sender: object
Object that requested the tool to be triggered
"""

pass

@property
def name(self):
"""Tool Id"""
Expand Down Expand Up @@ -209,7 +205,7 @@ def __init__(self, *args, **kwargs):
self._toggled = kwargs.pop('toggled', self.default_toggled)
ToolBase.__init__(self, *args, **kwargs)

def trigger(self, sender, event):
def trigger(self, event):
"""Calls `enable` or `disable` based on `toggled` value"""
if self._toggled:
self.disable(event)
Expand Down Expand Up @@ -252,15 +248,15 @@ def set_figure(self, figure):
toggled = self.toggled
if toggled:
if self.figure:
self.trigger(self, None)
self.trigger(None)
else:
# if no figure the internal state is not changed
# we change it here so next call to trigger will change it back
self._toggled = False
ToolBase.set_figure(self, figure)
if toggled:
if figure:
self.trigger(self, None)
self.trigger(None)
else:
# if there is no figure, triggen wont change the internal state
# we change it back
Expand Down Expand Up @@ -382,7 +378,7 @@ def send_message(self, event):
s += ' [%s]' % a.format_cursor_data(data)

message = s
self.toolmanager.message_event(message, self)
self.toolmanager.message_event(message)


@register_tool("quit")
Expand All @@ -392,7 +388,7 @@ class ToolQuit(ToolBase):
description = 'Quit the figure'
default_keymap = rcParams['keymap.quit']

def trigger(self, sender, event):
def trigger(self, event):
Gcf.destroy_fig(self.figure)


Expand All @@ -403,7 +399,7 @@ class ToolQuitAll(ToolBase):
description = 'Quit all figures'
default_keymap = rcParams['keymap.quit_all']

def trigger(self, sender, event):
def trigger(self, event):
Gcf.destroy_all()


Expand All @@ -414,7 +410,7 @@ class ToolEnableAllNavigation(ToolBase):
description = 'Enables all axes toolmanager'
default_keymap = rcParams['keymap.all_axes']

def trigger(self, sender, event):
def trigger(self, event):
if event.inaxes is None:
return

Expand All @@ -431,7 +427,7 @@ class ToolEnableNavigation(ToolBase):
description = 'Enables one axes toolmanager'
default_keymap = (1, 2, 3, 4, 5, 6, 7, 8, 9)

def trigger(self, sender, event):
def trigger(self, event):
if event.inaxes is None:
return

Expand All @@ -447,7 +443,7 @@ class _ToolGridBase(ToolBase):

_cycle = [(False, False), (True, False), (True, True), (False, True)]

def trigger(self, sender, event):
def trigger(self, event):
ax = event.inaxes
if ax is None:
return
Expand Down Expand Up @@ -536,7 +532,7 @@ def disable(self, event):
class AxisScaleBase(ToolToggleBase):
"""Base Tool to toggle between linear and logarithmic"""

def trigger(self, sender, event):
def trigger(self, event):
if event.inaxes is None:
return
ToolToggleBase.trigger(self, event)
Expand Down Expand Up @@ -730,7 +726,7 @@ class ViewsPositionsBase(ToolBase):

_on_trigger = None

def trigger(self, sender, event):
def trigger(self, event):
self.toolmanager.get_tool("viewpos").add_figure(self.figure)
getattr(self.toolmanager.get_tool("viewpos"),
self._on_trigger)()
Expand Down Expand Up @@ -815,7 +811,7 @@ def disable(self, event):
self.figure.canvas.mpl_disconnect(self._idRelease)
self.figure.canvas.mpl_disconnect(self._idScroll)

def trigger(self, sender, event):
def trigger(self, event):
self.toolmanager.get_tool("viewpos").add_figure(self.figure)
ToolToggleBase.trigger(self, event)

Expand Down
4 changes: 2 additions & 2 deletions lib/matplotlib/backends/backend_gtk3.py
Original file line number Diff line number Diff line change
Expand Up @@ -791,7 +791,7 @@ def get_filechooser(self):
fc.set_current_name(self.figure.canvas.get_default_filename())
return fc

def trigger(self, *args, **kwargs):
def trigger(self, event):
chooser = self.get_filechooser()
fname, format_ = chooser.get_filename_from_user()
chooser.destroy()
Expand Down Expand Up @@ -865,7 +865,7 @@ def destroy(self, *args):
def _get_canvas(self, fig):
return self.canvas.__class__(fig)

def trigger(self, sender, event):
def trigger(self, event):
self.init_window()
self.window.present()

Expand Down
4 changes: 2 additions & 2 deletions lib/matplotlib/backends/backend_tkagg.py
Original file line number Diff line number Diff line change
Expand Up @@ -957,7 +957,7 @@ def set_message(self, s):

@backend_tools.register_tool("save", __name__)
class SaveFigureTk(backend_tools.SaveFigureBase):
def trigger(self, *args):
def trigger(self, event):
from six.moves import tkinter_tkfiledialog, tkinter_messagebox
filetypes = self.figure.canvas.get_supported_filetypes().copy()
default_filetype = self.figure.canvas.get_default_filetype()
Expand Down Expand Up @@ -1009,7 +1009,7 @@ def __init__(self, *args, **kwargs):
backend_tools.ConfigureSubplotsBase.__init__(self, *args, **kwargs)
self.window = None

def trigger(self, *args):
def trigger(self, event):
self.init_window()
self.window.lift()

Expand Down