yasmin_editor.editor_gui.plugin_catalog module

Pure helpers for building plugin-sidebar entries.

The sidebar lists are part of the original editor surface, so their display names should remain stable even while the Qt wiring around them evolves. This module keeps the naming rules and ordering outside the Qt widgets so they are easy to unit test and reuse.

class yasmin_editor.editor_gui.plugin_catalog.PluginListEntry(list_name: str, display_name: str, payload: object)

Bases: object

A single sidebar entry for one plugin source item.

display_name: str
list_name: str
payload: object
yasmin_editor.editor_gui.plugin_catalog.build_cpp_plugin_display_name(plugin: object) str

Return the stable sidebar label for a C++ state plugin.

yasmin_editor.editor_gui.plugin_catalog.build_python_plugin_display_name(plugin: object) str

Return the stable sidebar label for a Python state plugin.

yasmin_editor.editor_gui.plugin_catalog.build_xml_plugin_display_name(xml_plugin: object) str

Return the stable sidebar label for an XML state-machine file.

yasmin_editor.editor_gui.plugin_catalog.iter_plugin_list_entries(plugin_manager: object) Iterator[PluginListEntry]

Yield sidebar entries in the same order as the original editor.

The order matters because the left sidebar is a high-frequency discovery surface. Keeping it deterministic also makes snapshot-like tests easier.

yasmin_editor.editor_gui.plugin_catalog.list_widget_targets() Sequence[str]

Return the canonical sidebar widget attribute names.

yasmin_editor.editor_gui.plugin_catalog.matches_plugin_filter(display_name: str, filter_text: str) bool

Return whether one sidebar entry matches the current filter text.

The sidebar filtering stays case-insensitive and treats an empty filter as a match for every entry. Keeping this rule outside Qt makes it easier to test and reuse anywhere the project needs the same list filtering semantics.