bool Fermata::readProperties(XmlReader& e) { const QStringRef& tag(e.name()); if (tag == "subtype") { QString s = e.readElementText(); SymId id = Sym::name2id(s); setSymId(id); } else if ( tag == "play") setPlay(e.readBool()); else if (tag == "timeStretch") _timeStretch = e.readDouble(); else if (tag == "offset") { if (score()->mscVersion() > 114) Element::readProperties(e); else e.skipCurrentElement(); // ignore manual layout in older scores } else if (Element::readProperties(e)) ; else return false; return true; }
bool Fermata::setProperty(Pid propertyId, const QVariant& v) { switch (propertyId) { case Pid::SYMBOL: setSymId(v.value<SymId>()); break; case Pid::PLACEMENT: { Placement p = Placement(v.toInt()); if (p != placement()) { QString s = Sym::id2name(_symId); bool up = placeAbove(); if (s.endsWith(up ? "Above" : "Below")) { QString s2 = s.left(s.size() - 5) + (up ? "Below" : "Above"); _symId = Sym::name2id(s2); } setPlacement(p); } } break; case Pid::PLAY: setPlay(v.toBool()); break; case Pid::TIME_STRETCH: setTimeStretch(v.toDouble()); score()->fixTicks(); break; default: return Element::setProperty(propertyId, v); } triggerLayout(); return true; }
bool Breath::setProperty(P_ID propertyId, const QVariant& v) { switch (propertyId) { case P_ID::SYMBOL: setSymId(v.value<SymId>()); break; case P_ID::PAUSE: setPause(v.toDouble()); break; default: if (!Element::setProperty(propertyId, v)) return false; break; } triggerLayout(); setGenerated(false); return true; }
bool Articulation::readProperties(XmlReader& e) { const QStringRef& tag(e.name()); if (tag == "subtype") { QString s = e.readElementText(); SymId id = Sym::name2id(s); if (id == SymId::noSym) id = oldArticulationNames2SymId(s); // compatibility hack for "old" 3.0 scores setSymId(id); } else if (tag == "channel") { _channelName = e.attribute("name"); e.readNext(); } else if (tag == "anchor") _anchor = ArticulationAnchor(e.readInt()); else if (tag == "direction") readProperty(e, P_ID::DIRECTION); else if ( tag == "ornamentStyle") setProperty(P_ID::ORNAMENT_STYLE, Ms::getProperty(P_ID::ORNAMENT_STYLE, e)); else if ( tag == "play") setPlayArticulation(e.readBool()); else if (tag == "timeStretch") _timeStretch = e.readDouble(); else if (tag == "offset") { if (score()->mscVersion() > 114) Element::readProperties(e); else e.skipCurrentElement(); // ignore manual layout in older scores } else if (Element::readProperties(e)) ; else return false; return true; }
Articulation::Articulation(SymId id, Score* s) : Articulation(s) { setSymId(id); }
Fermata::Fermata(SymId id, Score* s) : Fermata(s) { setSymId(id); }