Merge pull request #10056 from Howard-C/keymode
fix GH#10055: setting key signature mode in the inspector crashes
This commit is contained in:
commit
1d93c0b03f
4 changed files with 22 additions and 20 deletions
|
@ -61,24 +61,6 @@ enum class Key {
|
|||
DELTA_ENHARMONIC = 12
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
// KeyMode
|
||||
//---------------------------------------------------------
|
||||
|
||||
enum class KeyMode {
|
||||
UNKNOWN = -1,
|
||||
NONE,
|
||||
MAJOR,
|
||||
MINOR,
|
||||
DORIAN,
|
||||
PHRYGIAN,
|
||||
LYDIAN,
|
||||
MIXOLYDIAN,
|
||||
AEOLIAN,
|
||||
IONIAN,
|
||||
LOCRIAN
|
||||
};
|
||||
|
||||
static inline bool operator<(Key a, Key b) { return static_cast<int>(a) < static_cast<int>(b); }
|
||||
static inline bool operator>(Key a, Key b) { return static_cast<int>(a) > static_cast<int>(b); }
|
||||
static inline bool operator>(Key a, int b) { return static_cast<int>(a) > b; }
|
||||
|
|
|
@ -170,9 +170,9 @@ QVariant PropertyValue::toQVariant() const
|
|||
case P_TYPE::DYNAMIC_RANGE: return static_cast<int>(value<DynamicRange>());
|
||||
case P_TYPE::DYNAMIC_SPEED: return static_cast<int>(value<DynamicSpeed>());
|
||||
case P_TYPE::HOOK_TYPE: return static_cast<int>(value<HookType>());
|
||||
case P_TYPE::KEYMODE: return static_cast<int>(value<KeyMode>());
|
||||
|
||||
// other
|
||||
|
||||
case P_TYPE::ACCIDENTAL_ROLE: return static_cast<int>(value<Ms::AccidentalRole>());
|
||||
default:
|
||||
UNREACHABLE; //! TODO
|
||||
|
@ -237,7 +237,8 @@ PropertyValue PropertyValue::fromQVariant(const QVariant& v, P_TYPE type)
|
|||
case P_TYPE::DYNAMIC_TYPE: return PropertyValue(DynamicType(v.toInt()));
|
||||
case P_TYPE::DYNAMIC_RANGE: return PropertyValue(DynamicRange(v.toInt()));
|
||||
case P_TYPE::DYNAMIC_SPEED: return PropertyValue(DynamicSpeed(v.toInt()));
|
||||
case P_TYPE::HOOK_TYPE: return PropertyValue(HookType(v.toInt()));
|
||||
case P_TYPE::HOOK_TYPE: return PropertyValue(HookType(v.toInt()));
|
||||
case P_TYPE::KEYMODE: return PropertyValue(KeyMode(v.toInt()));
|
||||
|
||||
// other
|
||||
case P_TYPE::ACCIDENTAL_ROLE: return PropertyValue(Ms::AccidentalRole(v.toInt()));
|
||||
|
|
|
@ -216,6 +216,9 @@ public:
|
|||
PropertyValue(DynamicSpeed v)
|
||||
: m_type(P_TYPE::DYNAMIC_SPEED), m_data(make_data<DynamicSpeed>(v)) {}
|
||||
|
||||
PropertyValue(KeyMode v)
|
||||
: m_type(P_TYPE::KEYMODE), m_data(make_data<KeyMode>(v)) {}
|
||||
|
||||
PropertyValue(HookType v)
|
||||
: m_type(P_TYPE::HOOK_TYPE), m_data(make_data<HookType>(v)) {}
|
||||
|
||||
|
|
|
@ -363,6 +363,21 @@ enum class DynamicSpeed : char {
|
|||
enum class HookType : char {
|
||||
NONE, HOOK_90, HOOK_45, HOOK_90T
|
||||
};
|
||||
|
||||
// P_TYPE::KEYMODE
|
||||
enum class KeyMode : char {
|
||||
UNKNOWN = -1,
|
||||
NONE,
|
||||
MAJOR,
|
||||
MINOR,
|
||||
DORIAN,
|
||||
PHRYGIAN,
|
||||
LYDIAN,
|
||||
MIXOLYDIAN,
|
||||
AEOLIAN,
|
||||
IONIAN,
|
||||
LOCRIAN
|
||||
};
|
||||
} // mu::engraving
|
||||
|
||||
//! NOTE compat
|
||||
|
@ -387,6 +402,7 @@ using DynamicType = mu::engraving::DynamicType;
|
|||
using DynamicRange = mu::engraving::DynamicRange;
|
||||
using DynamicSpeed = mu::engraving::DynamicSpeed;
|
||||
using HookType = mu::engraving::HookType;
|
||||
using KeyMode = mu::engraving::KeyMode;
|
||||
}
|
||||
|
||||
#endif // MU_ENGRAVING_TYPES_H
|
||||
|
|
Loading…
Reference in a new issue