Plugin: make available Accidental.accType and Accidental.role properties and enums
This commit is contained in:
parent
45c50c13a8
commit
105eb1f241
13 changed files with 191 additions and 180 deletions
|
@ -336,7 +336,7 @@ const char* Accidental::subtype2name(AccidentalType st)
|
|||
// value2subtype
|
||||
//---------------------------------------------------------
|
||||
|
||||
AccidentalType Accidental::value2subtype(AccidentalVal v)
|
||||
Accidental::AccidentalType Accidental::value2subtype(AccidentalVal v)
|
||||
{
|
||||
switch(v) {
|
||||
case NATURAL: return ACC_NONE;
|
||||
|
@ -355,7 +355,7 @@ AccidentalType Accidental::value2subtype(AccidentalVal v)
|
|||
// name2subtype
|
||||
//---------------------------------------------------------
|
||||
|
||||
AccidentalType Accidental::name2subtype(const QString& tag)
|
||||
Accidental::AccidentalType Accidental::name2subtype(const QString& tag)
|
||||
{
|
||||
int n = sizeof(accList)/sizeof(*accList);
|
||||
for (int i = 0; i < n; ++i) {
|
||||
|
|
|
@ -35,25 +35,63 @@ struct SymElement {
|
|||
SymElement(int _sym, qreal _x) : sym(_sym), x(_x) {}
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
// AccidentalRole
|
||||
//---------------------------------------------------------
|
||||
|
||||
enum AccidentalRole {
|
||||
ACC_AUTO, // layout created accidental
|
||||
ACC_USER // user created accidental
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
// @@ Accidental
|
||||
// @P hasBracket bool
|
||||
// @P small bool
|
||||
// @P acctype enum ACC_NONE, ACC_SHARP, ACC_FLAT, ACC_SHARP2, ACC_FLAT2, ACC_NATURAL, ...
|
||||
// @P role enum ACC_AUTO, ACC_USER
|
||||
//---------------------------------------------------------
|
||||
|
||||
class Accidental : public Element {
|
||||
public:
|
||||
enum AccidentalRole {
|
||||
ACC_AUTO, // layout created accidental
|
||||
ACC_USER // user created accidental
|
||||
};
|
||||
enum AccidentalType {
|
||||
ACC_NONE,
|
||||
ACC_SHARP,
|
||||
ACC_FLAT,
|
||||
ACC_SHARP2,
|
||||
ACC_FLAT2,
|
||||
ACC_NATURAL,
|
||||
|
||||
ACC_FLAT_SLASH,
|
||||
ACC_FLAT_SLASH2,
|
||||
ACC_MIRRORED_FLAT2,
|
||||
ACC_MIRRORED_FLAT,
|
||||
ACC_MIRRIRED_FLAT_SLASH,
|
||||
ACC_FLAT_FLAT_SLASH,
|
||||
|
||||
ACC_SHARP_SLASH,
|
||||
ACC_SHARP_SLASH2,
|
||||
ACC_SHARP_SLASH3,
|
||||
ACC_SHARP_SLASH4,
|
||||
|
||||
ACC_SHARP_ARROW_UP,
|
||||
ACC_SHARP_ARROW_DOWN,
|
||||
ACC_SHARP_ARROW_BOTH,
|
||||
ACC_FLAT_ARROW_UP,
|
||||
ACC_FLAT_ARROW_DOWN,
|
||||
ACC_FLAT_ARROW_BOTH,
|
||||
ACC_NATURAL_ARROW_UP,
|
||||
ACC_NATURAL_ARROW_DOWN,
|
||||
ACC_NATURAL_ARROW_BOTH,
|
||||
ACC_SORI,
|
||||
ACC_KORON,
|
||||
ACC_END
|
||||
};
|
||||
|
||||
|
||||
private:
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(bool hasBracket READ hasBracket WRITE undoSetHasBracket)
|
||||
Q_PROPERTY(bool small READ small WRITE undoSetSmall)
|
||||
Q_PROPERTY(bool hasBracket READ hasBracket WRITE undoSetHasBracket)
|
||||
Q_PROPERTY(bool small READ small WRITE undoSetSmall)
|
||||
Q_PROPERTY(AccidentalType accType READ subtype)
|
||||
Q_PROPERTY(AccidentalRole role READ role)
|
||||
Q_ENUMS(AccidentalType)
|
||||
Q_ENUMS(AccidentalRole)
|
||||
|
||||
QList<SymElement> el;
|
||||
AccidentalType _subtype;
|
||||
|
@ -104,6 +142,9 @@ class Accidental : public Element {
|
|||
static AccidentalType name2subtype(const QString&);
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(Accidental::AccidentalRole)
|
||||
Q_DECLARE_METATYPE(Accidental::AccidentalType)
|
||||
|
||||
//---------------------------------------------------------
|
||||
// @@ AccidentalBracket
|
||||
// used as icon in palette
|
||||
|
|
|
@ -1245,7 +1245,7 @@ void Score::addArticulation(ArticulationType attr)
|
|||
/// notes.
|
||||
//---------------------------------------------------------
|
||||
|
||||
void Score::changeAccidental(AccidentalType idx)
|
||||
void Score::changeAccidental(Accidental::AccidentalType idx)
|
||||
{
|
||||
foreach(Note* note, selection().noteList())
|
||||
changeAccidental(note, idx);
|
||||
|
@ -1257,7 +1257,7 @@ void Score::changeAccidental(AccidentalType idx)
|
|||
/// note \a note.
|
||||
//---------------------------------------------------------
|
||||
|
||||
void Score::changeAccidental(Note* note, AccidentalType accidental)
|
||||
void Score::changeAccidental(Note* note, Accidental::AccidentalType accidental)
|
||||
{
|
||||
QList<Staff*> staffList;
|
||||
Staff* ostaff = note->chord()->staff();
|
||||
|
@ -1284,14 +1284,14 @@ void Score::changeAccidental(Note* note, AccidentalType accidental)
|
|||
//
|
||||
AccidentalVal acc = Accidental::subtype2value(accidental);
|
||||
AccidentalVal acc2 = measure->findAccidental(note);
|
||||
AccidentalType accType;
|
||||
Accidental::AccidentalType accType;
|
||||
|
||||
int pitch, tpc;
|
||||
if (accidental == ACC_NONE) {
|
||||
if (accidental == Accidental::ACC_NONE) {
|
||||
//
|
||||
// delete accidentals
|
||||
//
|
||||
accType = ACC_NONE;
|
||||
accType = Accidental::ACC_NONE;
|
||||
pitch = line2pitch(note->line(), clef, 0) + acc2;
|
||||
tpc = step2tpc(step, acc2);
|
||||
// check if there's accidentals left, previously set as
|
||||
|
@ -1312,7 +1312,7 @@ void Score::changeAccidental(Note* note, AccidentalType accidental)
|
|||
Accidental* a = new Accidental(this);
|
||||
a->setParent(note);
|
||||
a->setSubtype(accidental);
|
||||
a->setRole(ACC_USER);
|
||||
a->setRole(Accidental::ACC_USER);
|
||||
undoAddElement(a);
|
||||
}
|
||||
else {
|
||||
|
@ -2115,15 +2115,15 @@ void Score::cmd(const QAction* a)
|
|||
else if (cmd == "beam-32")
|
||||
cmdSetBeamMode(BEAM_BEGIN32);
|
||||
else if (cmd == "sharp2")
|
||||
changeAccidental(ACC_SHARP2);
|
||||
changeAccidental(Accidental::ACC_SHARP2);
|
||||
else if (cmd == "sharp")
|
||||
changeAccidental(ACC_SHARP);
|
||||
changeAccidental(Accidental::ACC_SHARP);
|
||||
else if (cmd == "nat")
|
||||
changeAccidental(ACC_NATURAL);
|
||||
changeAccidental(Accidental::ACC_NATURAL);
|
||||
else if (cmd == "flat")
|
||||
changeAccidental(ACC_FLAT);
|
||||
changeAccidental(Accidental::ACC_FLAT);
|
||||
else if (cmd == "flat2")
|
||||
changeAccidental(ACC_FLAT2);
|
||||
changeAccidental(Accidental::ACC_FLAT2);
|
||||
else if (cmd == "repitch")
|
||||
_is.setRepitchMode(a->isChecked());
|
||||
else if (cmd == "flip")
|
||||
|
|
|
@ -1131,7 +1131,7 @@ void Score::deleteItem(Element* el)
|
|||
break;
|
||||
|
||||
case Element::ACCIDENTAL:
|
||||
changeAccidental(static_cast<Note*>(el->parent()), ACC_NONE);
|
||||
changeAccidental(static_cast<Note*>(el->parent()), Accidental::ACC_NONE);
|
||||
break;
|
||||
|
||||
case Element::BAR_LINE:
|
||||
|
|
|
@ -266,13 +266,13 @@ void Score::layoutChords1(Segment* segment, int staffIdx)
|
|||
|
||||
int st1 = aclist[0].note->accidental()->subtype();
|
||||
int st2 = acc->subtype();
|
||||
int ldiff = st1 == ACC_FLAT ? 4 : 5;
|
||||
int ldiff = st1 == Accidental::ACC_FLAT ? 4 : 5;
|
||||
|
||||
if (qAbs(l1-l2) > ldiff) {
|
||||
aclist[nAcc-1].x = -pnd * acc->mag() - acc->width() - acc->bbox().x();
|
||||
}
|
||||
else {
|
||||
if ((st1 == ACC_FLAT) && (st2 == ACC_FLAT) && (qAbs(l1-l2) > 2))
|
||||
if ((st1 == Accidental::ACC_FLAT) && (st2 == Accidental::ACC_FLAT) && (qAbs(l1-l2) > 2))
|
||||
aclist[nAcc-1].x = aclist[0].x - acc->width() * .5;
|
||||
else
|
||||
aclist[nAcc-1].x = aclist[0].x - acc->width();
|
||||
|
@ -295,15 +295,15 @@ void Score::layoutChords1(Segment* segment, int staffIdx)
|
|||
int st1 = aclist[i-1].note->accidental()->subtype();
|
||||
int st2 = acc->subtype();
|
||||
|
||||
int ldiff = st1 == ACC_FLAT ? 4 : 5;
|
||||
int ldiff = st1 == Accidental::ACC_FLAT ? 4 : 5;
|
||||
if (qAbs(l1-l2) <= ldiff) { // overlap accidental above
|
||||
if ((st1 == ACC_FLAT) && (st2 == ACC_FLAT) && (qAbs(l1-l2) > 2))
|
||||
if ((st1 == Accidental::ACC_FLAT) && (st2 == Accidental::ACC_FLAT) && (qAbs(l1-l2) > 2))
|
||||
x = aclist[i-1].x + acc->width() * .5; // undercut flats
|
||||
else
|
||||
x = aclist[i-1].x;
|
||||
}
|
||||
|
||||
ldiff = acc->subtype() == ACC_FLAT ? 4 : 5;
|
||||
ldiff = acc->subtype() == Accidental::ACC_FLAT ? 4 : 5;
|
||||
if (qAbs(l2-l3) <= ldiff) { // overlap accidental below
|
||||
if (aclist[n].x < x)
|
||||
x = aclist[n].x;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "style.h"
|
||||
#include "mscore.h"
|
||||
#include "sequencer.h"
|
||||
#include "accidental.h"
|
||||
#include "figuredbass.h"
|
||||
#include "stafftype.h"
|
||||
#include "note.h"
|
||||
|
@ -72,6 +73,8 @@ void MScore::init()
|
|||
qRegisterMetaType<MScore::ValueType>("ValueType");
|
||||
qRegisterMetaType<MScore::Direction>("Direction");
|
||||
qRegisterMetaType<MScore::DirectionH>("DirectionH");
|
||||
qRegisterMetaType<Accidental::AccidentalRole>("AccidentalRole");
|
||||
qRegisterMetaType<Accidental::AccidentalType>("AccidentalType");
|
||||
qRegisterMetaType<Spanner::Anchor>("Anchor");
|
||||
qRegisterMetaType<Note::NoteHeadGroup>("NoteHeadGroup");
|
||||
qRegisterMetaType<Note::NoteHeadType>("NoteHeadType");
|
||||
|
|
|
@ -212,43 +212,9 @@ enum NoteType {
|
|||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
// AccidentalType
|
||||
// AccidentalVal
|
||||
//---------------------------------------------------------
|
||||
|
||||
enum AccidentalType {
|
||||
ACC_NONE,
|
||||
ACC_SHARP,
|
||||
ACC_FLAT,
|
||||
ACC_SHARP2,
|
||||
ACC_FLAT2,
|
||||
ACC_NATURAL,
|
||||
|
||||
ACC_FLAT_SLASH,
|
||||
ACC_FLAT_SLASH2,
|
||||
ACC_MIRRORED_FLAT2,
|
||||
ACC_MIRRORED_FLAT,
|
||||
ACC_MIRRIRED_FLAT_SLASH,
|
||||
ACC_FLAT_FLAT_SLASH,
|
||||
|
||||
ACC_SHARP_SLASH,
|
||||
ACC_SHARP_SLASH2,
|
||||
ACC_SHARP_SLASH3,
|
||||
ACC_SHARP_SLASH4,
|
||||
|
||||
ACC_SHARP_ARROW_UP,
|
||||
ACC_SHARP_ARROW_DOWN,
|
||||
ACC_SHARP_ARROW_BOTH,
|
||||
ACC_FLAT_ARROW_UP,
|
||||
ACC_FLAT_ARROW_DOWN,
|
||||
ACC_FLAT_ARROW_BOTH,
|
||||
ACC_NATURAL_ARROW_UP,
|
||||
ACC_NATURAL_ARROW_DOWN,
|
||||
ACC_NATURAL_ARROW_BOTH,
|
||||
ACC_SORI,
|
||||
ACC_KORON,
|
||||
ACC_END
|
||||
};
|
||||
|
||||
enum AccidentalVal {
|
||||
SHARP2 = 2,
|
||||
SHARP = 1,
|
||||
|
|
|
@ -782,51 +782,51 @@ void Note::read(const QDomElement& de)
|
|||
// TODO: for backward compatibility
|
||||
bool bracket = k & 0x8000;
|
||||
k &= 0xfff;
|
||||
AccidentalType at = ACC_NONE;
|
||||
Accidental::AccidentalType at = Accidental::ACC_NONE;
|
||||
switch(k) {
|
||||
case 0: at = ACC_NONE; break;
|
||||
case 0: at = Accidental::ACC_NONE; break;
|
||||
case 1:
|
||||
case 11: at = ACC_SHARP; break;
|
||||
case 11: at = Accidental::ACC_SHARP; break;
|
||||
case 2:
|
||||
case 12: at = ACC_FLAT; break;
|
||||
case 12: at = Accidental::ACC_FLAT; break;
|
||||
case 3:
|
||||
case 13: at = ACC_SHARP2; break;
|
||||
case 13: at = Accidental::ACC_SHARP2; break;
|
||||
case 4:
|
||||
case 14: at = ACC_FLAT2; break;
|
||||
case 14: at = Accidental::ACC_FLAT2; break;
|
||||
case 5:
|
||||
case 15: at = ACC_NATURAL; break;
|
||||
case 15: at = Accidental::ACC_NATURAL; break;
|
||||
|
||||
case 6: at = ACC_SHARP; bracket = true; break;
|
||||
case 7: at = ACC_FLAT; bracket = true; break;
|
||||
case 8: at = ACC_SHARP2; bracket = true; break;
|
||||
case 9: at = ACC_FLAT2; bracket = true; break;
|
||||
case 10: at = ACC_NATURAL; bracket = true; break;
|
||||
case 6: at = Accidental::ACC_SHARP; bracket = true; break;
|
||||
case 7: at = Accidental::ACC_FLAT; bracket = true; break;
|
||||
case 8: at = Accidental::ACC_SHARP2; bracket = true; break;
|
||||
case 9: at = Accidental::ACC_FLAT2; bracket = true; break;
|
||||
case 10: at = Accidental::ACC_NATURAL; bracket = true; break;
|
||||
|
||||
case 16: at = ACC_FLAT_SLASH; break;
|
||||
case 17: at = ACC_FLAT_SLASH2; break;
|
||||
case 18: at = ACC_MIRRORED_FLAT2; break;
|
||||
case 19: at = ACC_MIRRORED_FLAT; break;
|
||||
case 20: at = ACC_MIRRIRED_FLAT_SLASH; break;
|
||||
case 21: at = ACC_FLAT_FLAT_SLASH; break;
|
||||
case 16: at = Accidental::ACC_FLAT_SLASH; break;
|
||||
case 17: at = Accidental::ACC_FLAT_SLASH2; break;
|
||||
case 18: at = Accidental::ACC_MIRRORED_FLAT2; break;
|
||||
case 19: at = Accidental::ACC_MIRRORED_FLAT; break;
|
||||
case 20: at = Accidental::ACC_MIRRIRED_FLAT_SLASH; break;
|
||||
case 21: at = Accidental::ACC_FLAT_FLAT_SLASH; break;
|
||||
|
||||
case 22: at = ACC_SHARP_SLASH; break;
|
||||
case 23: at = ACC_SHARP_SLASH2; break;
|
||||
case 24: at = ACC_SHARP_SLASH3; break;
|
||||
case 25: at = ACC_SHARP_SLASH4; break;
|
||||
case 22: at = Accidental::ACC_SHARP_SLASH; break;
|
||||
case 23: at = Accidental::ACC_SHARP_SLASH2; break;
|
||||
case 24: at = Accidental::ACC_SHARP_SLASH3; break;
|
||||
case 25: at = Accidental::ACC_SHARP_SLASH4; break;
|
||||
|
||||
case 26: at = ACC_SHARP_ARROW_UP; break;
|
||||
case 27: at = ACC_SHARP_ARROW_DOWN; break;
|
||||
case 28: at = ACC_SHARP_ARROW_BOTH; break;
|
||||
case 29: at = ACC_FLAT_ARROW_UP; break;
|
||||
case 30: at = ACC_FLAT_ARROW_DOWN; break;
|
||||
case 31: at = ACC_FLAT_ARROW_BOTH; break;
|
||||
case 32: at = ACC_NATURAL_ARROW_UP; break;
|
||||
case 33: at = ACC_NATURAL_ARROW_DOWN; break;
|
||||
case 34: at = ACC_NATURAL_ARROW_BOTH; break;
|
||||
case 26: at = Accidental::ACC_SHARP_ARROW_UP; break;
|
||||
case 27: at = Accidental::ACC_SHARP_ARROW_DOWN; break;
|
||||
case 28: at = Accidental::ACC_SHARP_ARROW_BOTH; break;
|
||||
case 29: at = Accidental::ACC_FLAT_ARROW_UP; break;
|
||||
case 30: at = Accidental::ACC_FLAT_ARROW_DOWN; break;
|
||||
case 31: at = Accidental::ACC_FLAT_ARROW_BOTH; break;
|
||||
case 32: at = Accidental::ACC_NATURAL_ARROW_UP; break;
|
||||
case 33: at = Accidental::ACC_NATURAL_ARROW_DOWN; break;
|
||||
case 34: at = Accidental::ACC_NATURAL_ARROW_BOTH; break;
|
||||
}
|
||||
_accidental->setSubtype(at);
|
||||
_accidental->setHasBracket(bracket);
|
||||
_accidental->setRole(ACC_USER);
|
||||
_accidental->setRole(Accidental::ACC_USER);
|
||||
hasAccidental = true; // we now have an accidental
|
||||
}
|
||||
}
|
||||
|
@ -1386,11 +1386,11 @@ void Note::layout10(AccidentalState* as)
|
|||
|
||||
// calculate accidental
|
||||
|
||||
AccidentalType acci = ACC_NONE;
|
||||
if (_accidental && _accidental->role() == ACC_USER) {
|
||||
Accidental::AccidentalType acci = Accidental::ACC_NONE;
|
||||
if (_accidental && _accidental->role() == Accidental::ACC_USER) {
|
||||
acci = _accidental->subtype();
|
||||
if (acci == ACC_SHARP || acci == ACC_FLAT) {
|
||||
int ntpc = pitch2tpc2(_pitch, acci == ACC_SHARP);
|
||||
if (acci == Accidental::ACC_SHARP || acci == Accidental::ACC_FLAT) {
|
||||
int ntpc = pitch2tpc2(_pitch, acci == Accidental::ACC_SHARP);
|
||||
if (ntpc != _tpc) {
|
||||
qDebug("note has wrong tpc: %d, expected %d", _tpc, ntpc);
|
||||
// setColor(QColor(255, 0, 0));
|
||||
|
@ -1406,12 +1406,12 @@ void Note::layout10(AccidentalState* as)
|
|||
as->setAccidentalVal(int(_line), accVal, _tieBack != 0);
|
||||
if (!_tieBack) {
|
||||
acci = Accidental::value2subtype(accVal);
|
||||
if (acci == ACC_NONE)
|
||||
acci = ACC_NATURAL;
|
||||
if (acci == Accidental::ACC_NONE)
|
||||
acci = Accidental::ACC_NATURAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (acci != ACC_NONE && !_tieBack && !_hidden) {
|
||||
if (acci != Accidental::ACC_NONE && !_tieBack && !_hidden) {
|
||||
if (_accidental == 0) {
|
||||
_accidental = new Accidental(score());
|
||||
_accidental->setGenerated(true);
|
||||
|
@ -1632,31 +1632,31 @@ void Note::updateAccidental(AccidentalState* as)
|
|||
|
||||
// calculate accidental
|
||||
|
||||
AccidentalType acci = ACC_NONE;
|
||||
if (_accidental && _accidental->role() == ACC_USER) {
|
||||
Accidental::AccidentalType acci = Accidental::ACC_NONE;
|
||||
if (_accidental && _accidental->role() == Accidental::ACC_USER) {
|
||||
// check if user accidental fits tpc
|
||||
// in case tpc was changed
|
||||
|
||||
AccidentalType newUserAcc;
|
||||
Accidental::AccidentalType newUserAcc;
|
||||
switch (_accidental->subtype()) {
|
||||
case ACC_FLAT2:
|
||||
case ACC_FLAT:
|
||||
case ACC_NATURAL:
|
||||
case ACC_SHARP:
|
||||
case ACC_SHARP2:
|
||||
case Accidental::ACC_FLAT2:
|
||||
case Accidental::ACC_FLAT:
|
||||
case Accidental::ACC_NATURAL:
|
||||
case Accidental::ACC_SHARP:
|
||||
case Accidental::ACC_SHARP2:
|
||||
if (_tpc < 6)
|
||||
newUserAcc = ACC_FLAT2;
|
||||
newUserAcc = Accidental::ACC_FLAT2;
|
||||
else if (_tpc < 13)
|
||||
newUserAcc = ACC_FLAT;
|
||||
newUserAcc = Accidental::ACC_FLAT;
|
||||
else if (_tpc < 20)
|
||||
newUserAcc = ACC_NATURAL;
|
||||
newUserAcc = Accidental::ACC_NATURAL;
|
||||
else if (_tpc < 27)
|
||||
newUserAcc = ACC_SHARP;
|
||||
newUserAcc = Accidental::ACC_SHARP;
|
||||
else
|
||||
newUserAcc = ACC_SHARP2;
|
||||
newUserAcc = Accidental::ACC_SHARP2;
|
||||
|
||||
if (_accidental->subtype() != newUserAcc)
|
||||
acci = ACC_NONE; // don't use this any more
|
||||
acci = Accidental::ACC_NONE; // don't use this any more
|
||||
else {
|
||||
acci = newUserAcc; // keep it
|
||||
// if the key signature is changed:
|
||||
|
@ -1672,20 +1672,20 @@ void Note::updateAccidental(AccidentalState* as)
|
|||
acci = _accidental->subtype();
|
||||
}
|
||||
}
|
||||
if (acci == ACC_NONE) {
|
||||
if (acci == Accidental::ACC_NONE) {
|
||||
AccidentalVal accVal = tpc2alter(_tpc);
|
||||
if ((accVal != as->accidentalVal(int(_line))) || hidden() || as->tieContext(int(_line))) {
|
||||
as->setAccidentalVal(int(_line), accVal, _tieBack != 0);
|
||||
if (_tieBack)
|
||||
acci = ACC_NONE;
|
||||
acci = Accidental::ACC_NONE;
|
||||
else {
|
||||
acci = Accidental::value2subtype(accVal);
|
||||
if (acci == ACC_NONE)
|
||||
acci = ACC_NATURAL;
|
||||
if (acci == Accidental::ACC_NONE)
|
||||
acci = Accidental::ACC_NATURAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (acci != ACC_NONE && !_tieBack && !_hidden) {
|
||||
if (acci != Accidental::ACC_NONE && !_tieBack && !_hidden) {
|
||||
if (_accidental == 0) {
|
||||
Accidental* a = new Accidental(score());
|
||||
a->setParent(this);
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "sparm.h"
|
||||
#include "mscoreview.h"
|
||||
#include "segment.h"
|
||||
#include "accidental.h"
|
||||
#include "note.h"
|
||||
|
||||
class TempoMap;
|
||||
|
@ -531,8 +532,8 @@ class Score : public QObject {
|
|||
|
||||
// undo/redo ops
|
||||
void addArticulation(ArticulationType);
|
||||
void changeAccidental(AccidentalType);
|
||||
void changeAccidental(Note* oNote, AccidentalType);
|
||||
void changeAccidental(Accidental::AccidentalType);
|
||||
void changeAccidental(Note* oNote, Accidental::AccidentalType);
|
||||
|
||||
void addElement(Element*);
|
||||
void removeElement(Element*);
|
||||
|
|
|
@ -2348,8 +2348,8 @@ void AccidentalView::setElement(Element* e)
|
|||
ShowElementBase::setElement(e);
|
||||
|
||||
acc.hasBracket->setChecked(s->hasBracket());
|
||||
acc.accAuto->setChecked(s->role() == ACC_AUTO);
|
||||
acc.accUser->setChecked(s->role() == ACC_USER);
|
||||
acc.accAuto->setChecked(s->role() == Accidental::ACC_AUTO);
|
||||
acc.accUser->setChecked(s->role() == Accidental::ACC_USER);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
|
|
@ -2066,25 +2066,25 @@ void ExportMusicXml::chord(Chord* chord, int staff, const QList<Lyrics*>* ll, bo
|
|||
*/
|
||||
QString s;
|
||||
switch (acc->subtype()) {
|
||||
case ACC_SHARP: s = "sharp"; break;
|
||||
case ACC_FLAT: s = "flat"; break;
|
||||
case ACC_SHARP2: s = "double-sharp"; break;
|
||||
case ACC_FLAT2: s = "flat-flat"; break;
|
||||
case ACC_NATURAL: s = "natural"; break;
|
||||
case ACC_FLAT_SLASH: s = "quarter-flat"; break; // (alternative)
|
||||
case ACC_MIRRORED_FLAT: s = "quarter-flat"; break; // (recommended by Michael)
|
||||
case ACC_FLAT_ARROW_UP: s = "quarter-flat"; break; // (alternative)
|
||||
case ACC_NATURAL_ARROW_DOWN: s = "quarter-flat"; break; // (alternative)
|
||||
case ACC_SHARP_SLASH: s = "quarter-sharp"; break; // (recommended by Michael)
|
||||
case ACC_SHARP_ARROW_DOWN: s = "quarter-sharp"; break; // (alternative)
|
||||
case ACC_NATURAL_ARROW_UP: s = "quarter-sharp"; break; // (alternative)
|
||||
case ACC_MIRRORED_FLAT2: s = "three-quarters-flat"; break; // (recommended by Michael)
|
||||
case ACC_FLAT_FLAT_SLASH: s = "three-quarters-flat"; break; // (alternative)
|
||||
case ACC_FLAT_ARROW_DOWN: s = "three-quarters-flat"; break; // (alternative)
|
||||
case ACC_SHARP_SLASH4: s = "three-quarters-sharp"; break; // (recommended by Michael)
|
||||
case ACC_SHARP_ARROW_UP: s = "three-quarters-sharp"; break; // (alternate)
|
||||
case ACC_SORI: s = "sori"; break; //sori
|
||||
case ACC_KORON: s = "koron"; break; //koron
|
||||
case Accidental::ACC_SHARP: s = "sharp"; break;
|
||||
case Accidental::ACC_FLAT: s = "flat"; break;
|
||||
case Accidental::ACC_SHARP2: s = "double-sharp"; break;
|
||||
case Accidental::ACC_FLAT2: s = "flat-flat"; break;
|
||||
case Accidental::ACC_NATURAL: s = "natural"; break;
|
||||
case Accidental::ACC_FLAT_SLASH: s = "quarter-flat"; break; // (alternative)
|
||||
case Accidental::ACC_MIRRORED_FLAT: s = "quarter-flat"; break; // (recommended by Michael)
|
||||
case Accidental::ACC_FLAT_ARROW_UP: s = "quarter-flat"; break; // (alternative)
|
||||
case Accidental::ACC_NATURAL_ARROW_DOWN: s = "quarter-flat"; break; // (alternative)
|
||||
case Accidental::ACC_SHARP_SLASH: s = "quarter-sharp"; break; // (recommended by Michael)
|
||||
case Accidental::ACC_SHARP_ARROW_DOWN: s = "quarter-sharp"; break; // (alternative)
|
||||
case Accidental::ACC_NATURAL_ARROW_UP: s = "quarter-sharp"; break; // (alternative)
|
||||
case Accidental::ACC_MIRRORED_FLAT2: s = "three-quarters-flat"; break; // (recommended by Michael)
|
||||
case Accidental::ACC_FLAT_FLAT_SLASH: s = "three-quarters-flat"; break; // (alternative)
|
||||
case Accidental::ACC_FLAT_ARROW_DOWN: s = "three-quarters-flat"; break; // (alternative)
|
||||
case Accidental::ACC_SHARP_SLASH4: s = "three-quarters-sharp"; break; // (recommended by Michael)
|
||||
case Accidental::ACC_SHARP_ARROW_UP: s = "three-quarters-sharp"; break; // (alternate)
|
||||
case Accidental::ACC_SORI: s = "sori"; break; //sori
|
||||
case Accidental::ACC_KORON: s = "koron"; break; //koron
|
||||
default:
|
||||
qDebug("unknown accidental %d\n", acc->subtype());
|
||||
}
|
||||
|
|
|
@ -4191,49 +4191,49 @@ static bool readArticulations(ChordRest* cr, QString mxmlName)
|
|||
//---------------------------------------------------------
|
||||
|
||||
/**
|
||||
Convert a MusicXML accidental name to a MuseScore enum AccidentalType.
|
||||
Convert a MusicXML accidental name to a MuseScore enum Accidental::Type.
|
||||
*/
|
||||
|
||||
static AccidentalType convertAccidental(QString mxmlName)
|
||||
static Accidental::AccidentalType convertAccidental(QString mxmlName)
|
||||
{
|
||||
QMap<QString, AccidentalType> map; // map MusicXML accidental name to MuseScore enum AccidentalType
|
||||
map["natural"] = ACC_NATURAL;
|
||||
map["flat"] = ACC_FLAT;
|
||||
map["sharp"] = ACC_SHARP;
|
||||
map["double-sharp"] = ACC_SHARP2;
|
||||
map["sharp-sharp"] = ACC_SHARP2;
|
||||
map["flat-flat"] = ACC_FLAT2;
|
||||
map["double-flat"] = ACC_FLAT2;
|
||||
map["natural-flat"] = ACC_NONE;
|
||||
QMap<QString, Accidental::AccidentalType> map; // map MusicXML accidental name to MuseScore enum Accidental::Type
|
||||
map["natural"] = Accidental::ACC_NATURAL;
|
||||
map["flat"] = Accidental::ACC_FLAT;
|
||||
map["sharp"] = Accidental::ACC_SHARP;
|
||||
map["double-sharp"] = Accidental::ACC_SHARP2;
|
||||
map["sharp-sharp"] = Accidental::ACC_SHARP2;
|
||||
map["flat-flat"] = Accidental::ACC_FLAT2;
|
||||
map["double-flat"] = Accidental::ACC_FLAT2;
|
||||
map["natural-flat"] = Accidental::ACC_NONE;
|
||||
|
||||
map["quarter-flat"] = ACC_MIRRORED_FLAT;
|
||||
map["quarter-sharp"] = ACC_SHARP_SLASH;
|
||||
map["three-quarters-flat"] = ACC_MIRRORED_FLAT2;
|
||||
map["three-quarters-sharp"] = ACC_SHARP_SLASH4;
|
||||
map["quarter-flat"] = Accidental::ACC_MIRRORED_FLAT;
|
||||
map["quarter-sharp"] = Accidental::ACC_SHARP_SLASH;
|
||||
map["three-quarters-flat"] = Accidental::ACC_MIRRORED_FLAT2;
|
||||
map["three-quarters-sharp"] = Accidental::ACC_SHARP_SLASH4;
|
||||
|
||||
map["sharp-down"] = ACC_SHARP_ARROW_DOWN;
|
||||
map["sharp-up"] = ACC_SHARP_ARROW_UP;
|
||||
map["natural-down"] = ACC_NATURAL_ARROW_DOWN;
|
||||
map["natural-up"] = ACC_NATURAL_ARROW_UP;
|
||||
map["flat-down"] = ACC_FLAT_ARROW_DOWN;
|
||||
map["flat-up"] = ACC_FLAT_ARROW_UP;
|
||||
map["sharp-down"] = Accidental::ACC_SHARP_ARROW_DOWN;
|
||||
map["sharp-up"] = Accidental::ACC_SHARP_ARROW_UP;
|
||||
map["natural-down"] = Accidental::ACC_NATURAL_ARROW_DOWN;
|
||||
map["natural-up"] = Accidental::ACC_NATURAL_ARROW_UP;
|
||||
map["flat-down"] = Accidental::ACC_FLAT_ARROW_DOWN;
|
||||
map["flat-up"] = Accidental::ACC_FLAT_ARROW_UP;
|
||||
|
||||
map["slash-quarter-sharp"] = ACC_MIRRIRED_FLAT_SLASH;
|
||||
map["slash-sharp"] = ACC_SHARP_SLASH;
|
||||
map["slash-flat"] = ACC_FLAT_SLASH;
|
||||
map["double-slash-flat"] = ACC_FLAT_SLASH2;
|
||||
map["slash-quarter-sharp"] = Accidental::ACC_MIRRIRED_FLAT_SLASH;
|
||||
map["slash-sharp"] = Accidental::ACC_SHARP_SLASH;
|
||||
map["slash-flat"] = Accidental::ACC_FLAT_SLASH;
|
||||
map["double-slash-flat"] = Accidental::ACC_FLAT_SLASH2;
|
||||
|
||||
map["sori"] = ACC_SORI;
|
||||
map["koron"] = ACC_KORON;
|
||||
map["sori"] = Accidental::ACC_SORI;
|
||||
map["koron"] = Accidental::ACC_KORON;
|
||||
|
||||
map["natural-sharp"] = ACC_NONE;
|
||||
map["natural-sharp"] = Accidental::ACC_NONE;
|
||||
|
||||
if (map.contains(mxmlName))
|
||||
return map.value(mxmlName);
|
||||
else
|
||||
qDebug("unknown accidental %s", qPrintable(mxmlName));
|
||||
// default: return ACC_NONE
|
||||
return ACC_NONE;
|
||||
// default: return Accidental::ACC_NONE
|
||||
return Accidental::ACC_NONE;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
@ -4770,7 +4770,7 @@ void MusicXml::xmlNote(Measure* measure, int staff, const QString& partId, QDomE
|
|||
QString step;
|
||||
int alter = 0;
|
||||
int octave = 4;
|
||||
AccidentalType accidental = ACC_NONE;
|
||||
Accidental::AccidentalType accidental = Accidental::ACC_NONE;
|
||||
bool parentheses = false;
|
||||
bool editorial = false;
|
||||
bool cautionary = false;
|
||||
|
@ -5143,7 +5143,7 @@ void MusicXml::xmlNote(Measure* measure, int staff, const QString& partId, QDomE
|
|||
Accidental* a = new Accidental(score);
|
||||
a->setSubtype(accidental);
|
||||
a->setHasBracket(cautionary || parentheses);
|
||||
a->setRole(ACC_USER);
|
||||
a->setRole(Accidental::ACC_USER);
|
||||
note->add(a);
|
||||
}
|
||||
|
||||
|
|
|
@ -204,9 +204,9 @@ Palette* MuseScore::newAccidentalsPalette()
|
|||
sp->setGrid(33, 36);
|
||||
sp->setDrawGrid(true);
|
||||
|
||||
for (int i = ACC_SHARP; i < ACC_END; ++i) {
|
||||
for (int i = Accidental::ACC_SHARP; i < Accidental::ACC_END; ++i) {
|
||||
Accidental* s = new Accidental(gscore);
|
||||
s->setSubtype(AccidentalType(i));
|
||||
s->setSubtype(Accidental::AccidentalType(i));
|
||||
sp->append(s, qApp->translate("accidental", s->subtypeUserName()));
|
||||
}
|
||||
AccidentalBracket* ab = new AccidentalBracket(gscore);
|
||||
|
|
Loading…
Reference in a new issue