Measure* MeasureBase::prevMeasure() const { MeasureBase* m = prev(); while (m) { if (m->isMeasure()) return toMeasure(m); m = m->prev(); } return 0; }
Measure* MeasureBase::nextMeasure() const { MeasureBase* m = _next; for (;;) { if (m == 0 || m->isMeasure()) break; m = m->_next; } return toMeasure(m); }
Measure* MeasureBase::prevMeasureMM() const { MeasureBase* m = prev(); while (m) { if (m->isMeasure()) { Measure* mm = toMeasure(m); if (score()->styleB(StyleIdx::createMultiMeasureRests)) { if (mm->mmRestCount() >= 0) { if (mm->hasMMRest()) return mm->mmRest(); return mm; } } else return mm; } m = m->prev(); } return 0; }