Merge pull request #10056 from Howard-C/keymode

fix GH#10055: setting key signature mode in the inspector crashes
This commit is contained in:
RomanPudashkin 2021-12-14 15:04:35 +02:00 committed by GitHub
commit 1d93c0b03f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 20 deletions

View file

@ -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; }

View file

@ -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()));

View file

@ -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)) {}

View file

@ -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