fsleyes.actions.base

This module provides the Action, NeedOverlayAction, and ToggleAction classes. See the actions package documentation for more details.

exception fsleyes.actions.base.ActionDisabledError[source]

Bases: Exception

Exception raised when an attempt is made to call a disabled Action.

__module__ = 'fsleyes.actions.base'
__weakref__

list of weak references to the object (if defined)

class fsleyes.actions.base.BoundWidget(parent, evType, widget)[source]

Bases: object

Container class used by Action instances to store references to widgets that are currently bound to them.

__init__(parent, evType, widget)[source]

Initialize self. See help(type(self)) for accurate signature.

isAlive()[source]

Returns True if the widget contained by this BoundWidget is still alive, False otherwise.

__dict__ = mappingproxy({'__module__': 'fsleyes.actions.base', '__doc__': 'Container class used by :class:`Action` instances to store references\n to widgets that are currently bound to them.\n ', '__init__': <function BoundWidget.__init__>, 'isAlive': <function BoundWidget.isAlive>, '__dict__': <attribute '__dict__' of 'BoundWidget' objects>, '__weakref__': <attribute '__weakref__' of 'BoundWidget' objects>})
__module__ = 'fsleyes.actions.base'
__weakref__

list of weak references to the object (if defined)

class fsleyes.actions.base.Action(overlayList, displayCtx, func, instance=None, name=None)[source]

Bases: __main__.MockClass

Represents an action of some sort.

enabled = <MagicMock name='mock.Boolean()' id='3031712864'>

Controls whether the action is currently enabled or disabled. When this property is False calls to the action will result in a ActionDisabledError.

__init__(overlayList, displayCtx, func, instance=None, name=None)[source]

Create an Action.

Parameters
  • overlayList – The OverlayList.

  • displayCtx – The DisplayContext associated with this Action; note that this is not necessarily the master DisplayContext.

  • func – The action function.

  • instance – Object associated with the function, if this Action is encapsulating an instance method.

  • name – Action name. Defaults to func.__name__.

Note

If an Action encapsulates a method of an ActionProvider instance, it is assumed that the name is the name of the method on the instance.

__str__()[source]

Returns a string representation of this Action.

__repr__()[source]

Returns a string representation of this Action.

name()[source]

Returns the name of this Action.

property overlayList

Return a reference to the OverlayList.

property displayCtx

Return a reference to the DisplayContext.

property instance

Return the instance which owns this Action, if relevant. Returns None otherwise.

__call__(*args, **kwargs)[source]

Calls this action. An ActionDisabledError will be raised if enabled is False.

destroy()[source]

Must be called when this Action is no longer needed.

bindToWidget(parent, evType, widget, wrapper=None)[source]

Binds this action to the given wx widget.

Parameters
  • parent – The wx object on which the event should be bound.

  • evType – The wx event type.

  • widget – The wx widget.

  • wrapper – Optional custom wrapper function used to execute the action.

unbindWidget(widget)[source]

Unbinds the given widget from this Action.

unbindAllWidgets()[source]

Unbinds all widgets which have been bound via bindToWidget().

getBoundWidgets()[source]

Returns a list of BoundWidget instances, containing all widgets which have been bound to this Action.

_Action__enabledChanged(*args)

Internal method which is called when the enabled property changes. Enables/disables any bound widgets.

_Action__unbindWidget(index)

Unbinds the widget at the specified index into the __boundWidgets list. Does not remove it from the list.

__module__ = 'fsleyes.actions.base'
class fsleyes.actions.base.ToggleAction(*args, **kwargs)[source]

Bases: fsleyes.actions.base.Action

A ToggleAction an Action which is intended to encapsulate actions that toggle some sort of state. For example, a ToggleAction could be used to encapsulate an action which opens and/or closes a dialog window.

toggled = <MagicMock name='mock.Boolean()' id='3031712864'>

Boolean which tracks the current state of the ToggleAction.

__init__(*args, **kwargs)[source]

Create a ToggleAction. All arguments are passed to Action.__init__().

__call__(*args, **kwargs)[source]

Call this ToggleAction. The value of the toggled property is flipped.

bindToWidget(parent, evType, widget, wrapper=None)[source]

Bind this ToggleAction to a widget. If the widget is a wx.MenuItem, its Check is called whenever the toggled state changes.

_ToggleAction__setState(widget)

Sets the toggled state of the given widget to the current value of toggled.

_ToggleAction__toggledChanged(*a)

Internal method called when toggled changes. Updates the state of any bound widgets.

__module__ = 'fsleyes.actions.base'
class fsleyes.actions.base.NeedOverlayAction(overlayList, displayCtx, func=None, overlayType=<MagicMock name='mock.data.image.Image' id='3031725128'>)[source]

Bases: fsleyes.actions.base.Action

The NeedOverlayAction is a convenience base class for actions which can only be executed when an overlay of a specific type is selected. It enables/disables itself based on the type of the currently selected overlay.

__init__(overlayList, displayCtx, func=None, overlayType=<MagicMock name='mock.data.image.Image' id='3031725128'>)[source]

Create a NeedOverlayAction.

Parameters
  • overlayList – The OverlayList.

  • displayCtx – The DisplayContext.

  • func – The action function

  • overlayType – The required overlay type (defaults to Image)

_NeedOverlayAction__selectedOverlayChanged(*a)

Called when the selected overlay, or overlay list, changes.

Enables/disables this action depending on the nature of the selected overlay.

__module__ = 'fsleyes.actions.base'
destroy()[source]

Removes listeners from the DisplayContext and OverlayList, and calls Action.destroy().