Repository navigation
Extract docked plug-in hosting into ExtensionPanel - #368
Conversation
Assisted-by: OpenAI Codex
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to
|
Related to musescore/MuseScore#35226. Required by musescore/MuseScore#35277.
Summary
Extract docked plug-in hosting into an
ExtensionPanelcomponent inMuse.Extensions.Description
Following the review on musescore/MuseScore#35277, this moves the plug-in loading, unloading, content sizing and deferred-close handling out of MuseScore's
NotationPage.qmland into a reusable framework component.The component exposes the plug-in title, a close request and its requested initial width, with a 360-pixel fallback. Deferred close and width callbacks are associated with the current load request so they do not affect a replacement plug-in. Dock placement, navigation and score-context changes remain the consumer application's responsibility.
This follows the dockable plug-in infrastructure already merged in #366; it does not repeat that implementation. The corresponding MuseScore update already uses this component and pins framework commit
27ab1cfb1c0269330ebb0b72b35f80600e2fa302.I rebuilt MuseScore and manually retested switching between the Hello world and Test docked panel plug-ins, confirming that switching works.
Validation
From the MuseScore checkout:
The temporary QML harness uses a stub
ExtensionBuilderand is not committed. Its five focused checks cover requested/fallback width, content resizing, loading before activation, switching with a deferred close, and unloading with queued callbacks. All passed (seven QtTest passes including setup/cleanup). Real plug-in switching was also manually tested in the rebuilt application. No C++ files changed, so Uncrustify is not applicable to this refactor.michaelnorris.The commit describes the extraction but does not include the related issue number, so the commit-message checklist item is left unchecked.
Complete only if applicable:
AI tool: OpenAI Codex, used for implementation, local validation and description drafting. The commit includes an
Assisted-by: OpenAI Codextrailer.Build configuration
audacity: audacity/audacity/master
audacity platforms: linux_x64
musescore: mnorrisvuw/MuseScore/codex/fix-35226-dockable-plugins
musescore platforms: linux_x64