diff --git a/mscore/inspector/inspector.cpp b/mscore/inspector/inspector.cpp index 385fc5bfb5348..11dc61cd1cd49 100644 --- a/mscore/inspector/inspector.cpp +++ b/mscore/inspector/inspector.cpp @@ -72,6 +72,8 @@ #include "libmscore/accidental.h" #include "libmscore/articulation.h" #include "libmscore/fermata.h" +#include "libmscore/stafftypechange.h" +#include "libmscore/mscore.h" #include "libmscore/stafftextbase.h" namespace Ms { @@ -502,6 +504,31 @@ InspectorStaffTypeChange::InspectorStaffTypeChange(QWidget* parent) mapSignals(); } +//--------------------------------------------------------- +// setElement +//--------------------------------------------------------- + +void InspectorStaffTypeChange::setElement() + { + InspectorBase::setElement(); + bool hasTabStaff = false; + bool hasNonTabStaff = false; + for (Element* el : *(inspector->el())) { + StaffTypeChange* stc = toStaffTypeChange(el); + // tab staff shouldn't have key signature + if (stc->staffType()->group() == StaffGroup::TAB) { + hasTabStaff = true; + sl.genKeysig->setEnabled(false); + sl.resetGenKeysig->setEnabled(false); + } + else { + hasNonTabStaff = true; + } + } + if (hasTabStaff && !hasNonTabStaff) + sl.genKeysig->setChecked(false); + } + //--------------------------------------------------------- // InspectorVBox //--------------------------------------------------------- diff --git a/mscore/inspector/inspector.h b/mscore/inspector/inspector.h index 8cbe9ed041c43..bb2709d891b7c 100644 --- a/mscore/inspector/inspector.h +++ b/mscore/inspector/inspector.h @@ -104,6 +104,7 @@ class InspectorStaffTypeChange : public InspectorBase { public: InspectorStaffTypeChange(QWidget* parent); + virtual void setElement() override; }; //---------------------------------------------------------