void Cursor::add(Element* s) { if (!_segment) return; s->setTrack(_track); s->setParent(_segment); if (s->isChordRest()) s->score()->undoAddCR(toChordRest(s), _segment->measure(), _segment->tick()); else if (s->type() == ElementType::KEYSIG) { Segment* ns = _segment->measure()->undoGetSegment(SegmentType::KeySig, _segment->tick()); s->setParent(ns); score()->undoAddElement(s); } else if (s->type() == ElementType::TIMESIG) { Measure* m = _segment->measure(); int tick = m->tick(); score()->cmdAddTimeSig(m, _track, toTimeSig(s), false); m = score()->tick2measure(tick); _segment = m->first(_filter); nextInTrack(); } else if (s->type() == ElementType::LAYOUT_BREAK) { Measure* m = _segment->measure(); s->setParent(m); score()->undoAddElement(s); } else { score()->undoAddElement(s); } score()->setLayoutAll(); }
void Cursor::add(Element* wrapped) { Ms::Element* s = wrapped->element(); if (!_segment || !s) return; wrapped->setOwnership(Ownership::SCORE); s->setTrack(_track); s->setParent(_segment); if (s->isChordRest()) s->score()->undoAddCR(toChordRest(s), _segment->measure(), _segment->tick()); else if (s->type() == ElementType::KEYSIG) { Ms::Segment* ns = _segment->measure()->undoGetSegment(SegmentType::KeySig, _segment->tick()); s->setParent(ns); _score->undoAddElement(s); } else if (s->type() == ElementType::TIMESIG) { Ms::Measure* m = _segment->measure(); Fraction tick = m->tick(); _score->cmdAddTimeSig(m, _track, toTimeSig(s), false); m = _score->tick2measure(tick); _segment = m->first(_filter); nextInTrack(); } else if (s->type() == ElementType::LAYOUT_BREAK) { Ms::Measure* m = _segment->measure(); s->setParent(m); _score->undoAddElement(s); } else { _score->undoAddElement(s); } _score->setLayoutAll(); }
void InspectorTimeSig::setElement() { InspectorElementBase::setElement(); TimeSig* ts = toTimeSig(inspector->element()); if (ts->generated()) t.showCourtesy->setEnabled(false); }
Element* TimeSig::drop(EditData& data) { Element* e = data.element; if (e->isTimeSig()) { // change timesig applies to all staves, can't simply set subtype // for this one only // ownership of e is transferred to cmdAddTimeSig score()->cmdAddTimeSig(measure(), staffIdx(), toTimeSig(e), false); return 0; } delete e; return 0; }