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
|
// moveTicks
|
||||||
// Also adjust endBarLine if measure len has changed. For this
|
// 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());
|
func(data, ms->noText());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Segment* s = first(); s; s = s->next()) {
|
for (Segment* s = first(); s; s = s->next())
|
||||||
s->scanElements(data,func,all);
|
s->scanElements(data, func, all);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
|
@ -176,6 +176,7 @@ class Measure : public MeasureBase {
|
||||||
virtual void add(Element*) override;
|
virtual void add(Element*) override;
|
||||||
virtual void remove(Element*) override;
|
virtual void remove(Element*) override;
|
||||||
virtual void change(Element* o, Element* n) override;
|
virtual void change(Element* o, Element* n) override;
|
||||||
|
virtual void spatiumChanged(qreal oldValue, qreal newValue) override;
|
||||||
|
|
||||||
System* system() const { return (System*)parent(); }
|
System* system() const { return (System*)parent(); }
|
||||||
QList<MStaff*>* staffList() { return &staves; }
|
QList<MStaff*>* staffList() { return &staves; }
|
||||||
|
|
|
@ -1772,8 +1772,15 @@ int Score::inputPos() const
|
||||||
|
|
||||||
void Score::scanElements(void* data, void (*func)(void*, Element*), bool all)
|
void Score::scanElements(void* data, void (*func)(void*, Element*), bool all)
|
||||||
{
|
{
|
||||||
for (MeasureBase* m = first(); m; m = m->next())
|
for (MeasureBase* mb = first(); mb; mb = mb->next()) {
|
||||||
m->scanElements(data, func, all);
|
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())
|
for (Page* page : pages())
|
||||||
page->scanElements(data, func, all);
|
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)
|
void Score::scanElementsInRange(void* data, void (*func)(void*, Element*), bool all)
|
||||||
{
|
{
|
||||||
Segment* startSeg = _selection.startSegment();
|
Segment* startSeg = _selection.startSegment();
|
||||||
for (Segment* s = startSeg; s && s!=_selection.endSegment(); s = s->next1MM()) {
|
for (Segment* s = startSeg; s && s !=_selection.endSegment(); s = s->next1()) {
|
||||||
s->scanElements(data,func,all);
|
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