fix layout for moved beams
This commit is contained in:
parent
7c2966f18b
commit
073fd90f8c
17 changed files with 199 additions and 174 deletions
|
@ -505,7 +505,7 @@ void Beam::layout()
|
|||
|
||||
qreal lw2 = score()->styleP(StyleIdx::beamWidth) * .5 * mag();
|
||||
ChordRest* cr = crl.front();
|
||||
Shape& s = cr->segment()->shape(staffIdx());
|
||||
// Shape& s = cr->segment()->shape(staffIdx());
|
||||
QPointF offset = cr->pos() + cr->segment()->pos() + cr->segment()->measure()->pos();
|
||||
|
||||
for (const QLineF* bs : beamSegments) {
|
||||
|
@ -515,7 +515,7 @@ void Beam::layout()
|
|||
a[2] = QPointF(bs->x2(), bs->y2());
|
||||
a[3] = QPointF(bs->x1(), bs->y1());
|
||||
QRectF r(a.boundingRect().adjusted(0.0, -lw2, 0.0, lw2));
|
||||
s.add(r.translated(-offset));
|
||||
//TODO s.add(r.translated(-offset));
|
||||
addbbox(r);
|
||||
}
|
||||
}
|
||||
|
@ -660,8 +660,7 @@ bool Beam::slopeZero(const std::vector<ChordRest*>& cl)
|
|||
// BeamMetric
|
||||
//---------------------------------------------------------
|
||||
|
||||
struct Bm
|
||||
{
|
||||
struct Bm {
|
||||
signed char l; // stem len in 1/4 spatium units
|
||||
signed char s; // beam slant in 1/4 spatium units
|
||||
Bm() : l(0), s(0) {}
|
||||
|
@ -1595,8 +1594,8 @@ void Beam::layout2(std::vector<ChordRest*>crl, SpannerSegmentType, int frag)
|
|||
continue; //y = c->pagePos().y();
|
||||
else
|
||||
y = c->upNote()->pagePos().y();
|
||||
y1 = qMax(y1, y);
|
||||
y2 = qMin(y2, y);
|
||||
y1 = qMax(y1, y);
|
||||
y2 = qMin(y2, y);
|
||||
}
|
||||
if (y1 > y2)
|
||||
beamY = y2 + (y1 - y2) * .5;
|
||||
|
|
|
@ -1659,8 +1659,7 @@ QPointF Chord::pagePos() const
|
|||
System* system = pc->segment()->system();
|
||||
if (!system)
|
||||
return p;
|
||||
int csi = staffIdx() + staffMove();
|
||||
p.ry() += system->staffYpage(csi);
|
||||
p.ry() += system->staffYpage(vStaffIdx());
|
||||
return p;
|
||||
}
|
||||
return Element::pagePos();
|
||||
|
|
|
@ -2065,12 +2065,12 @@ void Score::respace(QList<ChordRest*>* /*elements*/)
|
|||
qreal Score::computeMinWidth(Segment* s, bool isFirstMeasureInSystem)
|
||||
{
|
||||
Shape ls;
|
||||
ls.add(QRectF(0.0, 0.0, 0.0, spatium() * 4)); // simulated bar line
|
||||
if (isFirstMeasureInSystem)
|
||||
ls.add(QRectF(0.0, -1000000.0, 0.0, 2000000.0)); // left margin
|
||||
else
|
||||
ls.add(QRectF(0.0, 0.0, 0.0, spatium() * 4)); // simulated bar line
|
||||
qreal x = s->minLeft(ls);
|
||||
|
||||
qreal _spatium = spatium();
|
||||
qreal keysigLeftMargin = styleP(StyleIdx::keysigLeftMargin);
|
||||
qreal timesigLeftMargin = styleP(StyleIdx::timesigLeftMargin);
|
||||
|
||||
|
@ -2083,7 +2083,7 @@ qreal Score::computeMinWidth(Segment* s, bool isFirstMeasureInSystem)
|
|||
x = qMax(x, keysigLeftMargin);
|
||||
else if (s->isTimeSigType())
|
||||
x = qMax(x, timesigLeftMargin);
|
||||
x += s->extraLeadingSpace().val() * _spatium;
|
||||
x += s->extraLeadingSpace().val() * spatium();
|
||||
|
||||
for (Segment* ss = s; ss;) {
|
||||
ss->rxpos() = x;
|
||||
|
@ -2092,7 +2092,6 @@ qreal Score::computeMinWidth(Segment* s, bool isFirstMeasureInSystem)
|
|||
|
||||
if (ns) {
|
||||
w = ss->minHorizontalDistance(ns);
|
||||
|
||||
#if 1
|
||||
// look back for collisions with previous segments
|
||||
// this is time consuming (ca. +5%) and probably requires more optimization
|
||||
|
@ -2982,6 +2981,46 @@ void Score::getNextMeasure(LayoutContext& lc)
|
|||
lc.tick += measure->ticks();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// isTopBeam
|
||||
//---------------------------------------------------------
|
||||
|
||||
static bool isTopBeam(ChordRest* cr)
|
||||
{
|
||||
if (cr->beam() && cr->beam()->elements().front() == cr) {
|
||||
Beam* b = cr->beam();
|
||||
bool movedUp = true;
|
||||
for (ChordRest* cr1 : b->elements()) {
|
||||
if (cr1->staffMove() >= 0) {
|
||||
movedUp = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!b->cross() && !movedUp)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool notTopBeam(ChordRest* cr)
|
||||
{
|
||||
if (cr->beam() && cr->beam()->elements().front() == cr) {
|
||||
Beam* b = cr->beam();
|
||||
if (b->cross())
|
||||
return true;
|
||||
bool movedUp = true;
|
||||
for (ChordRest* cr1 : b->elements()) {
|
||||
if (cr1->staffMove() >= 0) {
|
||||
movedUp = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (movedUp)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// collectSystem
|
||||
//---------------------------------------------------------
|
||||
|
@ -3028,8 +3067,10 @@ System* Score::collectSystem(LayoutContext& lc)
|
|||
addSystemHeader(m, lc.firstSystem);
|
||||
ww = computeMinWidth(m->first(), true);
|
||||
}
|
||||
else
|
||||
else if (m->hasSystemHeader())
|
||||
ww = m->minWidth1(); // without system header
|
||||
else
|
||||
ww = computeMinWidth(m->first(), false);
|
||||
if (ww < minMeasureWidth)
|
||||
ww = minMeasureWidth;
|
||||
m->setWidth(ww);
|
||||
|
@ -3053,7 +3094,6 @@ System* Score::collectSystem(LayoutContext& lc)
|
|||
// check if lc.curMeasure fits, remove if not
|
||||
// collect at least one measure
|
||||
|
||||
|
||||
if ((system->measures().size() > 1) && (minWidth + ww > systemWidth)) {
|
||||
system->measures().pop_back();
|
||||
lc.curMeasure->setSystem(oldSystem);
|
||||
|
@ -3286,7 +3326,7 @@ System* Score::collectSystem(LayoutContext& lc)
|
|||
for (Element* e : s->elist()) {
|
||||
if (e && e->isChordRest()) {
|
||||
ChordRest* cr = toChordRest(e);
|
||||
if (cr->beam() && !cr->beam()->cross() && cr->beam()->elements().front() == cr)
|
||||
if (isTopBeam(cr))
|
||||
cr->beam()->layout();
|
||||
}
|
||||
}
|
||||
|
@ -3458,7 +3498,7 @@ bool Score::collectPage(LayoutContext& lc)
|
|||
if (!staff(track2staff(track))->show())
|
||||
continue;
|
||||
ChordRest* cr = toChordRest(e);
|
||||
if (cr->beam() && cr->beam()->cross() && cr->beam()->elements().front() == cr) // layout cross staff beams
|
||||
if (notTopBeam(cr)) // layout cross staff beams
|
||||
cr->beam()->layout();
|
||||
|
||||
if (cr->isChord()) {
|
||||
|
|
|
@ -2826,7 +2826,7 @@ qreal Measure::minWidth1() const
|
|||
{
|
||||
int nstaves = score()->nstaves();
|
||||
Segment* s = first();
|
||||
Segment::Type st = Segment::Type::Clef | Segment::Type::KeySig | Segment::Type::StartRepeatBarLine;
|
||||
Segment::Type st = Segment::Type::Clef | Segment::Type::KeySig | Segment::Type::StartRepeatBarLine | Segment::Type::BeginBarLine;
|
||||
while ((s->segmentType() & st) && s->next()) {
|
||||
// found a segment that we might be able to skip
|
||||
// we can do so only if it contains no non-generated elements
|
||||
|
|
|
@ -1384,12 +1384,15 @@ qreal Segment::minHorizontalDistance(Segment* ns) const
|
|||
Segment::Type st = segmentType();
|
||||
Segment::Type nst = ns ? ns->segmentType() : Segment::Type::Invalid;
|
||||
|
||||
// printf("minHDist %s - %s\n", subTypeName(), ns->subTypeName());
|
||||
|
||||
qreal w = 0.0;
|
||||
for (unsigned staffIdx = 0; staffIdx < _shapes.size(); ++staffIdx) {
|
||||
qreal d = shape(staffIdx).minHorizontalDistance(ns->shape(staffIdx));
|
||||
// if (st == Segment::Type::ChordRest && nst == Segment::Type::Clef)
|
||||
// d = qMax(d, minRight()) + score()->styleP(StyleIdx::noteBarDistance);
|
||||
w = qMax(w, d);
|
||||
// printf(" %d: %f -> %f\n", staffIdx, d, w);
|
||||
}
|
||||
|
||||
if (st == Segment::Type::ChordRest) {
|
||||
|
@ -1428,7 +1431,7 @@ qreal Segment::minHorizontalDistance(Segment* ns) const
|
|||
w = 0.0;
|
||||
if (ns)
|
||||
w += ns->extraLeadingSpace().val() * spatium();
|
||||
// qDebug("minHDist %f %s %s", w, subTypeName(), ns ? ns->subTypeName() : "-0-");
|
||||
// printf(" == %f %s %s\n", w, subTypeName(), ns ? ns->subTypeName() : "-0-");
|
||||
return w;
|
||||
}
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ public:
|
|||
std::vector<Element*> _annotations;
|
||||
std::vector<Element*> _elist; ///< Element storage, size = staves * VOICES.
|
||||
std::vector<Shape> _shapes; // size = staves
|
||||
std::vector<qreal> _dotPosX; ///< size = staves
|
||||
std::vector<qreal> _dotPosX; ///< size = staves
|
||||
|
||||
void init();
|
||||
void checkEmpty() const;
|
||||
|
|
|
@ -2924,20 +2924,20 @@ void InsertRemoveMeasures::removeMeasures()
|
|||
int tick2 = lm->endTick();
|
||||
score->measures()->remove(fm, lm);
|
||||
score->fixTicks();
|
||||
if (fm->type() == Element::Type::MEASURE) {
|
||||
if (fm->isMeasure()) {
|
||||
score->setPlaylistDirty();
|
||||
|
||||
// check if there is a clef at the end of last measure
|
||||
// remove clef from staff cleflist
|
||||
|
||||
if (lm->type() == Element::Type::MEASURE) {
|
||||
Measure* m = static_cast<Measure*>(lm);
|
||||
if (lm->isMeasure()) {
|
||||
Measure* m = toMeasure(lm);
|
||||
Segment* s = m->findSegment(Segment::Type::Clef, tick2);
|
||||
if (s) {
|
||||
for (int staffIdx = 0; staffIdx <= score->nstaves(); ++staffIdx) {
|
||||
Clef* clef = static_cast<Clef*>(s->element(staffIdx * VOICES));
|
||||
for (Element* e : s->elist()) {
|
||||
Clef* clef = toClef(e);
|
||||
if (clef)
|
||||
score->staff(staffIdx)->removeClef(clef);
|
||||
score->staff(clef->staffIdx())->removeClef(clef);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -130,10 +130,6 @@
|
|||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<BarLine>
|
||||
<subtype>end</subtype>
|
||||
<span>1</span>
|
||||
</BarLine>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
|
|
|
@ -135,10 +135,6 @@
|
|||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<BarLine>
|
||||
<subtype>end</subtype>
|
||||
<span>1</span>
|
||||
</BarLine>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
|
|
|
@ -141,10 +141,6 @@
|
|||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<BarLine>
|
||||
<subtype>end</subtype>
|
||||
<span>1</span>
|
||||
</BarLine>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
|
|
|
@ -133,10 +133,6 @@
|
|||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<BarLine>
|
||||
<subtype>end</subtype>
|
||||
<span>1</span>
|
||||
</BarLine>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
|
|
|
@ -154,19 +154,19 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<lid>20</lid>
|
||||
<lid>13</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>21</lid>
|
||||
<lid>14</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>22</lid>
|
||||
<lid>15</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>23</lid>
|
||||
<lid>16</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -181,19 +181,19 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Chord>
|
||||
<lid>24</lid>
|
||||
<lid>17</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>25</lid>
|
||||
<lid>18</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>26</lid>
|
||||
<lid>19</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>27</lid>
|
||||
<lid>20</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -201,26 +201,26 @@
|
|||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>6</lid>
|
||||
<lid>5</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Chord>
|
||||
<lid>28</lid>
|
||||
<lid>21</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>29</lid>
|
||||
<lid>22</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>30</lid>
|
||||
<lid>23</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>31</lid>
|
||||
<lid>24</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
|
@ -254,21 +254,21 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>5</lid>
|
||||
<lid>4</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>8</lid>
|
||||
<lid>6</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Rest>
|
||||
<lid>10</lid>
|
||||
<lid>7</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -281,13 +281,13 @@
|
|||
<transposingClefType>G</transposingClefType>
|
||||
</Clef>
|
||||
<TimeSig>
|
||||
<lid>11</lid>
|
||||
<lid>8</lid>
|
||||
<sigN>2</sigN>
|
||||
<sigD>4</sigD>
|
||||
<showCourtesySig>1</showCourtesySig>
|
||||
</TimeSig>
|
||||
<Rest>
|
||||
<lid>12</lid>
|
||||
<lid>9</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -301,21 +301,21 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>14</lid>
|
||||
<lid>10</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>16</lid>
|
||||
<lid>11</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Rest>
|
||||
<lid>18</lid>
|
||||
<lid>12</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -442,19 +442,19 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<lid>20</lid>
|
||||
<lid>13</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>21</lid>
|
||||
<lid>14</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>22</lid>
|
||||
<lid>15</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>23</lid>
|
||||
<lid>16</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -469,19 +469,19 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Chord>
|
||||
<lid>24</lid>
|
||||
<lid>17</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>25</lid>
|
||||
<lid>18</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>26</lid>
|
||||
<lid>19</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>27</lid>
|
||||
<lid>20</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -489,26 +489,26 @@
|
|||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>6</lid>
|
||||
<lid>5</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Chord>
|
||||
<lid>28</lid>
|
||||
<lid>21</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>29</lid>
|
||||
<lid>22</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>30</lid>
|
||||
<lid>23</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>31</lid>
|
||||
<lid>24</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
|
@ -542,21 +542,21 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>5</lid>
|
||||
<lid>4</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>8</lid>
|
||||
<lid>6</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Rest>
|
||||
<lid>10</lid>
|
||||
<lid>7</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -666,7 +666,7 @@
|
|||
<transposingClefType>G</transposingClefType>
|
||||
</Clef>
|
||||
<TimeSig>
|
||||
<lid>11</lid>
|
||||
<lid>8</lid>
|
||||
<sigN>2</sigN>
|
||||
<sigD>4</sigD>
|
||||
<showCourtesySig>1</showCourtesySig>
|
||||
|
@ -677,7 +677,7 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Rest>
|
||||
<lid>12</lid>
|
||||
<lid>9</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -698,7 +698,7 @@
|
|||
<durationType>measure</durationType>
|
||||
<duration z="8" n="4"/>
|
||||
</Rest>
|
||||
<tick>4800</tick>
|
||||
</Measure>
|
||||
<tick>960</tick>
|
||||
<Measure number="2">
|
||||
<Rest>
|
||||
|
@ -709,21 +709,21 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>14</lid>
|
||||
<lid>10</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>16</lid>
|
||||
<lid>11</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Rest>
|
||||
<lid>18</lid>
|
||||
<lid>12</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
|
|
@ -160,19 +160,19 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<lid>20</lid>
|
||||
<lid>13</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>21</lid>
|
||||
<lid>14</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>22</lid>
|
||||
<lid>15</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>23</lid>
|
||||
<lid>16</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -180,19 +180,19 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Chord>
|
||||
<lid>24</lid>
|
||||
<lid>17</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>25</lid>
|
||||
<lid>18</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>26</lid>
|
||||
<lid>19</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>27</lid>
|
||||
<lid>20</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -200,26 +200,26 @@
|
|||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>6</lid>
|
||||
<lid>5</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Chord>
|
||||
<lid>28</lid>
|
||||
<lid>21</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>29</lid>
|
||||
<lid>22</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>30</lid>
|
||||
<lid>23</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>31</lid>
|
||||
<lid>24</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
|
@ -252,21 +252,21 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>5</lid>
|
||||
<lid>4</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>8</lid>
|
||||
<lid>6</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Rest>
|
||||
<lid>10</lid>
|
||||
<lid>7</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -291,28 +291,28 @@
|
|||
</Measure>
|
||||
<Measure number="2">
|
||||
<Rest>
|
||||
<lid>12</lid>
|
||||
<lid>9</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>14</lid>
|
||||
<lid>10</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>16</lid>
|
||||
<lid>11</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Rest>
|
||||
<lid>18</lid>
|
||||
<lid>12</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -445,19 +445,19 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<lid>20</lid>
|
||||
<lid>13</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>21</lid>
|
||||
<lid>14</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>22</lid>
|
||||
<lid>15</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>23</lid>
|
||||
<lid>16</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -465,19 +465,19 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Chord>
|
||||
<lid>24</lid>
|
||||
<lid>17</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>25</lid>
|
||||
<lid>18</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>26</lid>
|
||||
<lid>19</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>27</lid>
|
||||
<lid>20</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -485,26 +485,26 @@
|
|||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>6</lid>
|
||||
<lid>5</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Chord>
|
||||
<lid>28</lid>
|
||||
<lid>21</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>29</lid>
|
||||
<lid>22</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>30</lid>
|
||||
<lid>23</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>31</lid>
|
||||
<lid>24</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
|
@ -537,21 +537,21 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>5</lid>
|
||||
<lid>4</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>8</lid>
|
||||
<lid>6</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Rest>
|
||||
<lid>10</lid>
|
||||
<lid>7</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -678,7 +678,7 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Rest>
|
||||
<lid>12</lid>
|
||||
<lid>9</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -698,21 +698,21 @@
|
|||
<tick>1920</tick>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>14</lid>
|
||||
<lid>10</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>16</lid>
|
||||
<lid>11</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Rest>
|
||||
<lid>18</lid>
|
||||
<lid>12</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
|
|
@ -154,19 +154,19 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<lid>20</lid>
|
||||
<lid>13</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>21</lid>
|
||||
<lid>14</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>22</lid>
|
||||
<lid>15</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>23</lid>
|
||||
<lid>16</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -174,19 +174,19 @@
|
|||
</Measure>
|
||||
<Measure number="2">
|
||||
<Chord>
|
||||
<lid>24</lid>
|
||||
<lid>17</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>25</lid>
|
||||
<lid>18</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>26</lid>
|
||||
<lid>19</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>27</lid>
|
||||
<lid>20</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -194,26 +194,26 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>6</lid>
|
||||
<lid>5</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Chord>
|
||||
<lid>28</lid>
|
||||
<lid>21</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>29</lid>
|
||||
<lid>22</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>30</lid>
|
||||
<lid>23</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>31</lid>
|
||||
<lid>24</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
|
@ -247,21 +247,21 @@
|
|||
</Measure>
|
||||
<Measure number="2">
|
||||
<Rest>
|
||||
<lid>5</lid>
|
||||
<lid>4</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>8</lid>
|
||||
<lid>6</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>10</lid>
|
||||
<lid>7</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -281,34 +281,34 @@
|
|||
<transposingClefType>G</transposingClefType>
|
||||
</Clef>
|
||||
<TimeSig>
|
||||
<lid>11</lid>
|
||||
<lid>8</lid>
|
||||
<sigN>2</sigN>
|
||||
<sigD>4</sigD>
|
||||
<showCourtesySig>1</showCourtesySig>
|
||||
</TimeSig>
|
||||
<Rest>
|
||||
<lid>12</lid>
|
||||
<lid>9</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="2">
|
||||
<Rest>
|
||||
<lid>14</lid>
|
||||
<lid>10</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>16</lid>
|
||||
<lid>11</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>18</lid>
|
||||
<lid>12</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -442,19 +442,19 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<lid>20</lid>
|
||||
<lid>13</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>21</lid>
|
||||
<lid>14</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>22</lid>
|
||||
<lid>15</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>23</lid>
|
||||
<lid>16</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -462,19 +462,19 @@
|
|||
</Measure>
|
||||
<Measure number="2">
|
||||
<Chord>
|
||||
<lid>24</lid>
|
||||
<lid>17</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>25</lid>
|
||||
<lid>18</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>26</lid>
|
||||
<lid>19</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>27</lid>
|
||||
<lid>20</lid>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
|
@ -482,26 +482,26 @@
|
|||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>6</lid>
|
||||
<lid>5</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Chord>
|
||||
<lid>28</lid>
|
||||
<lid>21</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>29</lid>
|
||||
<lid>22</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<lid>30</lid>
|
||||
<lid>23</lid>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<lid>31</lid>
|
||||
<lid>24</lid>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
|
@ -535,21 +535,21 @@
|
|||
</Measure>
|
||||
<Measure number="2">
|
||||
<Rest>
|
||||
<lid>5</lid>
|
||||
<lid>4</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>8</lid>
|
||||
<lid>6</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>10</lid>
|
||||
<lid>7</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -666,7 +666,7 @@
|
|||
<transposingClefType>G</transposingClefType>
|
||||
</Clef>
|
||||
<TimeSig>
|
||||
<lid>11</lid>
|
||||
<lid>8</lid>
|
||||
<sigN>2</sigN>
|
||||
<sigD>4</sigD>
|
||||
<showCourtesySig>1</showCourtesySig>
|
||||
|
@ -677,7 +677,7 @@
|
|||
<text>𝅘𝅥 = 100</text>
|
||||
</Tempo>
|
||||
<Rest>
|
||||
<lid>12</lid>
|
||||
<lid>9</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
@ -698,26 +698,25 @@
|
|||
<durationType>measure</durationType>
|
||||
<duration z="8" n="4"/>
|
||||
</Rest>
|
||||
<tick>4800</tick>
|
||||
</Measure>
|
||||
<tick>960</tick>
|
||||
<Measure number="2">
|
||||
<Rest>
|
||||
<lid>14</lid>
|
||||
<lid>10</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="3">
|
||||
<Rest>
|
||||
<lid>16</lid>
|
||||
<lid>11</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Rest>
|
||||
<lid>18</lid>
|
||||
<lid>12</lid>
|
||||
<durationType>measure</durationType>
|
||||
<duration z="2" n="4"/>
|
||||
</Rest>
|
||||
|
|
|
@ -186,20 +186,21 @@ void TestMeasure::insertBfKeyChange()
|
|||
void TestMeasure::minWidth()
|
||||
{
|
||||
MasterScore* score = readScore(DIR + "measure-2.mscx");
|
||||
|
||||
int n = score->systems().size();
|
||||
int measuresSystem[n];
|
||||
for (int i = 0; i < n; ++i)
|
||||
measuresSystem[i] = score->systems().at(i)->measures().size();
|
||||
|
||||
score->doLayout();
|
||||
|
||||
Measure* m1 = score->systems().at(1)->lastMeasure();
|
||||
Measure* m2 = score->systems().at(2)->firstMeasure();
|
||||
qreal mw1 = m1->minWidth1();
|
||||
qreal mw2 = m2->minWidth1();
|
||||
qreal mw1 = m1->minWidth1();
|
||||
qreal mw2 = m2->minWidth1();
|
||||
|
||||
score->doLayout();
|
||||
|
||||
printf("m1: %f / %f\n", mw1, m1->minWidth1());
|
||||
printf("m2: %f / %f\n", mw2, m2->minWidth1());
|
||||
QCOMPARE(mw1, m1->minWidth1());
|
||||
QCOMPARE(mw2, m2->minWidth1());
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ const char* tests[] = {
|
|||
"libmscore/join/tst_join",
|
||||
"libmscore/transpose/tst_transpose",
|
||||
"libmscore/copypaste/tst_copypaste",
|
||||
#if 0
|
||||
|
||||
// "libmscore/parts/tst_parts", // crash
|
||||
"libmscore/concertpitch/tst_concertpitchbenchmark",
|
||||
"libmscore/selectionfilter/tst_selectionfilter",
|
||||
|
@ -71,7 +71,6 @@ const char* tests[] = {
|
|||
"capella/io/tst_capella_io",
|
||||
"importmidi/tst_importmidi",
|
||||
// "musicxml/io/tst_mxml_io",
|
||||
#endif
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
|
|
@ -40,7 +40,8 @@ inline void initMyResources() {
|
|||
|
||||
extern Ms::Score::FileError importOve(Ms::MasterScore*, const QString& name);
|
||||
|
||||
Q_LOGGING_CATEGORY(undoRedo, "undoRedo", QtCriticalMsg)
|
||||
// Q_LOGGING_CATEGORY(undoRedo, "undoRedo", QtCriticalMsg)
|
||||
Q_LOGGING_CATEGORY(undoRedo, "undoRedo", QtDebugMsg)
|
||||
|
||||
namespace Ms {
|
||||
|
||||
|
|
Loading…
Reference in a new issue