-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Updating plugins for MuseScore Studio 4.4
MuseScore Studio 4.4 uses basically the same plugin framework as 4.3 and before, but some slight changes were inevitable.
Some imports have been renamed:
Before | After |
---|---|
MuseScore.Ui |
Muse.Ui |
MuseScore.UiComponents |
Muse.UiComponents |
Since MuseScore Studio has switched to Qt 6, the long-deprecated QtQuick.Controls 1
module has been removed. Use the QtQuick.Controls 2
module instead; documentation can be found on the Qt website. Another alternative would be to use Muse.UiComponents
, although these have a less stable API and no documentation other than MuseScore Studio's own source code.
The Settings
module is now included in the Musescore
module. The explicit import of Qt.labs.settings 1.0
must be removed. It leads to an "Module "Qt.labs.settings" is not installed" error and is not required for the Settings module to work.
For inspiration, you can look how we updated the "built-in" plugins for Qt 6: https://github.com/musescore/MuseScore/commits/7fe32bacbc9287b716d40462afb713da52bbde97/share/plugins?since=2024-02-20&until=2024-02-21
MuseScore Studio 4.4 contains some changes about how plugins are parsed; setting the title etc. via Component.onCompleted
doesn't work anymore because of this.
For plugins that target MSS4.4 only, you can use
title: "Some Title"
thumbnailName: "some_thumbnail.png"
categoryCode: "some_category"
For plugins that are also supposed to work with earlier versions, you can use special //4.4
comments, like this:
//4.4 title: "Some Title"
//4.4 thumbnailName: "some_thumbnail.png"
//4.4 categoryCode: "some_category"
Component.onCompleted: {
if (mscoreMajorVersion == 4 && mscoreMinorVersion <= 3) {
// for MS4.0-4.3
title = "Some Title";
thumbnailName = "some_thumbnail.png";
categoryCode = "some_category";
}
}
See "Plugins for 4.x" in the Developers' Handbook for more tricks, advices and observations on porting plugin's to MU4.4
We apologise for this inconvenience; MuseScore's plugins/extensions framework is undergoing a big transition, in order to be more stable, usable, and comprehensive in the future.
Testing
- Manual testing
- Automatic testing
Translation
Compilation
- Set up developer environment
- Install Qt and Qt Creator
- Get MuseScore's source code
- Install dependencies
- Compile on the command line
- Compile in Qt Creator
Beyond compiling
Misc. development
Architecture general
- Architecture overview
- AppShell
- Modularity
- Interact workflow
- Channels and Notifications
- Settings and Configuration
- Error handling
- Launcher and Interactive
- Keyboard Navigation
Audio
Engraving
- Style settings
- Working with style files
- Style parameter changes for 4.0
- Style parameter changes for 4.1
- Style parameter changes for 4.2
- Style parameter changes for 4.3
- Style parameter changes for 4.4
Extensions
- Extensions overview
- Manifest
- Forms
- Macros
- Api
- Legacy plugin API
Google Summer of Code
References