MetaEventTabControls

class MetaEventTabControls()

Bases: MetaControls

Shared base for the control panels of the two event-oriented analysis tabs.

RawDataControls and EventAnalysisControls build the same three widgets below their tab’s plot: a multi-select channel combobox, a filter combobox, and an event-index field. The two carried three methods verbatim between them; this base holds that shared half so there is one copy to fix.

It extends MetaControls rather than replacing it - the widget factories, the icon buttons and the placeholder guard all still come from there. It also declares QObjectABCMeta as its metaclass, which is what makes @abstractmethod below actually fire: MetaControls is a plain QWidget, so its own metaclass is Shiboken’s ObjectType, which computes no __abstractmethods__ and would let an unimplemented hook through silently. MetaView uses the same metaclass for the same reason.

What a subclass inherits, on top of everything MetaControls gives it:

  • update_channels, the largest single duplicate in the analysis-tab layer, which repopulates the channel combobox from a plugin’s channel list while preserving whatever the user had selected.

  • update_filters, which keeps the filter combobox in step with the filters instantiated elsewhere in the app.

  • set_event_index_input, which writes an event index into the field and revalidates.

What a subclass owes it:

  • Its own logger = logging.getLogger(__name__), as MetaControls already requires, and its own placeholder_texts - the two tabs name different plugin families, so unlike the subset tabs they do not share it.

  • A ``setupUi`` that builds channel_comboBox, filters_comboBox and event_index_lineEdit. They are declared below but not created here, because each tab lays its panel out differently.

  • ``validate_inputs``, declared abstract below: each tab validates a different set of fields.

ivar logger:

the module logger the shared methods below log under

Public Methods

Abstract Methods

These methods must be implemented by subclasses.

abstractmethod MetaEventTabControls.validate_inputs() → None

Re-validate the panel’s input fields and enable or disable its actions.

Abstract because each tab validates a different set of fields.

Concrete Methods

MetaEventTabControls.set_event_index_input(value: str) → None
MetaEventTabControls.update_channels(channels: Sequence[int]) → None

Updates the channels displayed in the MultiSelectComboBox widget and restores previous selections.

Parameters:

channels (Sequence[int]) – Channel indices to display.

MetaEventTabControls.update_filters(filters: list[str]) → None

Private Methods

Abstract Methods

These methods must be implemented by subclasses.

(none)