Skip to content

improvement(plugin): better architecture, introduced slot loading and module registry.#41

Open
xZepyx wants to merge 1 commit intomainfrom
improvement/plugins
Open

improvement(plugin): better architecture, introduced slot loading and module registry.#41
xZepyx wants to merge 1 commit intomainfrom
improvement/plugins

Conversation

@xZepyx
Copy link
Copy Markdown
Member

@xZepyx xZepyx commented Apr 5, 2026

Describe your changes

Introduce ModuleRegistry, ModuleHost, SlotHost, SlotLoader, and PluginBus
to replace the flat LazyLoader/Contracts pattern in shell.qml.

  • Add modules/hosts/{ModuleLoader,SlotHost,SlotLoader}.qml as qs.modules.hosts
  • Add services/{ModuleRegistry,ModuleHost,PluginBus}.qml singletons
  • Replace services/Contracts.qml with backward-compat shim over ModuleRegistry
  • Collapse 10 raw LazyLoader blocks in shell.qml into single ModuleHost{}
  • Fix loader resurrection bug: null _liveSource on deactivate, restore on
    activate, guaranteeing Loader sees a genuine source change every cycle
  • Forward implicitHeight/implicitWidth from loaded item through SlotLoader
    so ColumnLayout can size slot children correctly
  • Split SidebarRightContent into individual named slots: header, volumeSlider,
    brightnessSlider, networkToggle, flightModeToggle, bluetoothToggle,
    themeToggle, nightModeToggle, notifModal
  • Add SidebarRightHeader.qml extracting header row from SidebarRightContent
  • PluginBus.hookSlot/injectSlot API lets plugins replace, remove, or inject
    slots without holding direct references to any loader

Is it ready? Questions/feedback needed?

Almost, but not yet. Still needs a lot of stuff. I also need to implement slots for all modules.
Long story short it's not ready for merge rn.

@xZepyx
Copy link
Copy Markdown
Member Author

xZepyx commented Apr 6, 2026

Has errors and issues. Not ready for merge rn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant