diff --git a/src/engraving/api/v1/elements.cpp b/src/engraving/api/v1/elements.cpp index ef9c50af97f6e..2d9789ed8e26d 100644 --- a/src/engraving/api/v1/elements.cpp +++ b/src/engraving/api/v1/elements.cpp @@ -493,6 +493,11 @@ bool System::show(int staffIdx) return ss ? ss->show() : false; } +void System::setHideStaffIfEmpty(int staffIdx, int hide) +{ + system()->score()->cmdSetHideStaffIfEmptyOverride(static_cast(staffIdx), system(), AutoOnOff(hide)); +} + void System::setIsLocked(bool locked) { if (locked == isLocked()) { diff --git a/src/engraving/api/v1/elements.h b/src/engraving/api/v1/elements.h index 4085e3bdd6615..1e75569da1801 100644 --- a/src/engraving/api/v1/elements.h +++ b/src/engraving/api/v1/elements.h @@ -1891,6 +1891,12 @@ class System : public EngravingItem /// This can differ from \ref Staff.show (e.g. due to 'hide when empty' rules). /// \param staffIdx staff number Q_INVOKABLE bool show(int staffIdx); + /// Override the staff default behaviour for hiding when empty. + /// \param staffIdx staff number + /// \param hide controls the new hiding behaviour. + /// One of PluginAPI::PluginAPI::AutoOnOff values. + /// \since MuseScore 4.7 + Q_INVOKABLE void setHideStaffIfEmpty(int staffIdx, int hide); }; //---------------------------------------------------------