Merge pull request #1587 from MarcSabatella/33476-scan-mmrest
fix #33476: select similar and other mmrest issues
This commit is contained in:
commit
24e0c1ff6b
3 changed files with 29 additions and 7 deletions
|
@ -979,6 +979,15 @@ void Measure::change(Element* o, Element* n)
|
|||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// spatiumChanged
|
||||
//---------------------------------------------------------
|
||||
|
||||
void Measure::spatiumChanged(qreal /*oldValue*/, qreal /*newValue*/)
|
||||
{
|
||||
setDirty();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// moveTicks
|
||||
// Also adjust endBarLine if measure len has changed. For this
|
||||
|
@ -2401,9 +2410,8 @@ void Measure::scanElements(void* data, void (*func)(void*, Element*), bool all)
|
|||
func(data, ms->noText());
|
||||
}
|
||||
|
||||
for (Segment* s = first(); s; s = s->next()) {
|
||||
s->scanElements(data,func,all);
|
||||
}
|
||||
for (Segment* s = first(); s; s = s->next())
|
||||
s->scanElements(data, func, all);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
|
|
@ -176,6 +176,7 @@ class Measure : public MeasureBase {
|
|||
virtual void add(Element*) override;
|
||||
virtual void remove(Element*) override;
|
||||
virtual void change(Element* o, Element* n) override;
|
||||
virtual void spatiumChanged(qreal oldValue, qreal newValue) override;
|
||||
|
||||
System* system() const { return (System*)parent(); }
|
||||
QList<MStaff*>* staffList() { return &staves; }
|
||||
|
|
|
@ -1772,8 +1772,15 @@ int Score::inputPos() const
|
|||
|
||||
void Score::scanElements(void* data, void (*func)(void*, Element*), bool all)
|
||||
{
|
||||
for (MeasureBase* m = first(); m; m = m->next())
|
||||
m->scanElements(data, func, all);
|
||||
for (MeasureBase* mb = first(); mb; mb = mb->next()) {
|
||||
mb->scanElements(data, func, all);
|
||||
if (mb->type() == Element::Type::MEASURE) {
|
||||
Measure* m = static_cast<Measure*>(mb);
|
||||
Measure* mmr = m->mmRest();
|
||||
if (mmr)
|
||||
mmr->scanElements(data, func, all);
|
||||
}
|
||||
}
|
||||
for (Page* page : pages())
|
||||
page->scanElements(data, func, all);
|
||||
}
|
||||
|
@ -1785,8 +1792,14 @@ void Score::scanElements(void* data, void (*func)(void*, Element*), bool all)
|
|||
void Score::scanElementsInRange(void* data, void (*func)(void*, Element*), bool all)
|
||||
{
|
||||
Segment* startSeg = _selection.startSegment();
|
||||
for (Segment* s = startSeg; s && s!=_selection.endSegment(); s = s->next1MM()) {
|
||||
s->scanElements(data,func,all);
|
||||
for (Segment* s = startSeg; s && s !=_selection.endSegment(); s = s->next1()) {
|
||||
s->scanElements(data, func, all);
|
||||
Measure* m = s->measure();
|
||||
if (m && s == m->first()) {
|
||||
Measure* mmr = m->mmRest();
|
||||
if (mmr)
|
||||
mmr->scanElements(data, func, all);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue