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]
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>, '__annotations__': {}})
__module__ = 'fsleyes.actions.base'
__weakref__

list of weak references to the object (if defined)

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

Bases: __main__.docbuilder.run.<locals>.MockClass

Represents an action of some sort.

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

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

static title()[source]

May be overridden by sub-classes. Returns a title to be used in menus.

static supportedViews()[source]

May be overridden to declare that this Action should be associated with a specific ViewPanel. If overridden, must return a list containing all of the supported ViewPanel types.

static ignoreTool()[source]

Used by the FSLeyes plugins module for actions which are loaded as plugins. Can be used to tell the plugins module that a particular Action should not be added as an option to the FSLeyes Tools menu.

Note that this method must be implemented on the class that is to be ignored - inherited implementations from base classes are not considered.

__init__(overlayList, displayCtx, func, 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.

  • 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.

property actionName

Returns the name of this Action, often the method name of the ActionProvider that implements the action. Not to be confused with name().

property name

Not to be confused with actionName(). Returns a unique name for a specific Action instance, which can be used (e.g.) for registering property listeners.

property overlayList

Return a reference to the OverlayList.

property displayCtx

Return a reference to the DisplayContext.

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

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

property destroyed

Returns True if destroy() has been called, False otherwise.

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.

__unbindWidget(index)

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

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.

__enabledChanged(*args)

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

__annotations__ = {}
__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='140735756653168'>

Boolean which tracks the current state of the ToggleAction.

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

Create a ToggleAction.

Parameters

autoToggle – Must be specified as a keyword argument. If True (the default), the state of toggled is inverted every time this action is called. Otherwise, the state of toggled, and of all bound widgets/menu items, needs to be changed manually.

All other 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.

__setState(widget)

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

__toggledChanged(*a)

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

__annotations__ = {}
__module__ = 'fsleyes.actions.base'
class fsleyes.actions.base.NeedOverlayAction(overlayList, displayCtx, func=None, overlayType=<MagicMock name='mock.data.image.Image' id='140735756663104'>)[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='140735756663104'>)[source]

Create a NeedOverlayAction.

Parameters
  • overlayList – The OverlayList.

  • displayCtx – The DisplayContext.

  • func – The action function

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

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

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

__selectedOverlayChanged(*a)

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

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