KeySigEvent KeyList::key(int tick) const { if (empty()) return KeySigEvent(); ciKeyList i = upper_bound(tick); if (i == begin()) return KeySigEvent(); --i; return i->second; }
void KeySig::read(XmlReader& e) { _sig = KeySigEvent(); // invalidate _sig int subtype = 0; while (e.readNextStartElement()) { const QStringRef& tag(e.name()); if (tag == "KeySym") { KeySym ks; while (e.readNextStartElement()) { const QStringRef& tag(e.name()); if (tag == "sym") { QString val(e.readElementText()); bool valid; SymId id = SymId(val.toInt(&valid)); if (!valid) id = Sym::name2id(val); if (score()->mscVersion() <= 114) { if (valid) id = KeySig::convertFromOldId(val.toInt(&valid)); else id = Sym::oldName2id(val); } ks.sym = id; } else if (tag == "pos") ks.spos = e.readPoint(); else e.unknown(); } _sig.keySymbols().append(ks); } else if (tag == "showCourtesySig") _showCourtesy = e.readInt(); else if (tag == "showNaturals") // obsolete e.readInt(); else if (tag == "accidental") _sig.setKey(Key(e.readInt())); else if (tag == "natural") // obsolete e.readInt(); else if (tag == "custom") { e.readInt(); _sig.setCustom(true); } else if (tag == "subtype") subtype = e.readInt(); else if (!Element::readProperties(e)) e.unknown(); } if (!_sig.isValid()) _sig.initFromSubtype(subtype); // for backward compatibility }
Palette* MuseScore::newKeySigPalette() { Palette* sp = new Palette; sp->setName(QT_TRANSLATE_NOOP("Palette", "Key Signatures")); sp->setMag(0.8); sp->setGrid(56, 45); sp->setYOffset(1.0); for (int i = 0; i < 7; ++i) { KeySig* k = new KeySig(gscore); k->setKeySigEvent(KeySigEvent(i+1)); sp->append(k, keyNames[i*2]); } for (int i = -7; i < 0; ++i) { KeySig* k = new KeySig(gscore); k->setKeySigEvent(KeySigEvent(i)); sp->append(k, keyNames[(7 + i) * 2 + 1]); } KeySig* k = new KeySig(gscore); k->setKeySigEvent(KeySigEvent(0)); sp->append(k, keyNames[14]); return sp; }
Palette* newKeySigPalette() { Palette* sp = new Palette; sp->setName(qApp->translate("MuseScore", "Key Signatures")); sp->setMag(0.8); sp->setGrid(56, 45); sp->setYOffset(6.0); for (int i = 0; i < 7; ++i) { KeySig* k = new KeySig(gscore); k->setKeySigEvent(KeySigEvent(i+1)); sp->append(k, qApp->translate("MuseScore", keyNames[i*2])); } for (int i = -7; i < 0; ++i) { KeySig* k = new KeySig(gscore); k->setKeySigEvent(KeySigEvent(i)); sp->append(k, qApp->translate("MuseScore", keyNames[(7 + i) * 2 + 1])); } KeySig* k = new KeySig(gscore); k->setKeySigEvent(KeySigEvent(0)); sp->append(k, qApp->translate("MuseScore", keyNames[14])); return sp; }