fix layout for moved beams

This commit is contained in:
ws 2016-04-01 14:57:24 +02:00
parent 7c2966f18b
commit 073fd90f8c
17 changed files with 199 additions and 174 deletions

View file

@ -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;

View file

@ -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();

View file

@ -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()) {

View file

@ -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

View file

@ -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;
}

View file

@ -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;

View file

@ -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);
}
}
}

View file

@ -130,10 +130,6 @@
<tpc>13</tpc>
</Note>
</Chord>
<BarLine>
<subtype>end</subtype>
<span>1</span>
</BarLine>
</Measure>
</Staff>
</Score>

View file

@ -135,10 +135,6 @@
<tpc>13</tpc>
</Note>
</Chord>
<BarLine>
<subtype>end</subtype>
<span>1</span>
</BarLine>
</Measure>
</Staff>
</Score>

View file

@ -141,10 +141,6 @@
<tpc>13</tpc>
</Note>
</Chord>
<BarLine>
<subtype>end</subtype>
<span>1</span>
</BarLine>
</Measure>
</Staff>
</Score>

View file

@ -133,10 +133,6 @@
<tpc>13</tpc>
</Note>
</Chord>
<BarLine>
<subtype>end</subtype>
<span>1</span>
</BarLine>
</Measure>
</Staff>
</Score>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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());

View file

@ -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
};
//---------------------------------------------------------

View file

@ -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 {