fix import regressions; remove debug code

This commit is contained in:
ws 2013-06-25 14:29:18 +02:00
parent 7c1f1c09d3
commit f227ab77d1
18 changed files with 63 additions and 145 deletions

View file

@ -298,7 +298,7 @@ bool ChordRest::readProperties(XmlReader& e)
slur->setAnchor(Spanner::ANCHOR_SEGMENT);
}
else if (atype == "stop") {
slur->setTickLen(e.tick() - slur->tick());
slur->setTick2(e.tick());
slur->setEndElement(this);
Chord* start = static_cast<Chord*>(slur->startElement());
if (start)

View file

@ -243,7 +243,7 @@ void Score::cmdAddSpanner(Spanner* spanner, const QPointF& pos)
delete spanner;
return;
}
spanner->setTickLen(ns->tick() - spanner->tick());
spanner->setTick2(ns->tick());
}
else { // ANCHOR_MEASURE
Measure* m = static_cast<Measure*>(mb);
@ -252,7 +252,7 @@ void Score::cmdAddSpanner(Spanner* spanner, const QPointF& pos)
if (pos.x() >= (b.x() + b.width() * .5))
m = m->nextMeasure();
spanner->setTick(m->tick());
spanner->setTickLen(m->ticks());
spanner->setTick2(m->endTick());
}
undoAddElement(spanner);
@ -280,7 +280,7 @@ void Score::cmdAddSpanner(Spanner* spanner, const QPointF& pos)
s = s->next1(Segment::SegChordRest);
}
if (s)
spanner->setTickLen(s->tick() - spanner->tick());
spanner->setTick2(s->tick());
Fraction d(1,32);
Fraction e = l / d;
int n = e.numerator() / e.denominator();
@ -437,7 +437,7 @@ printf("add pitch %d add %d repitch %d\n", pitch, addFlag, _is.repitchMode());
_is.slur->setTick(stick);
}
else
_is.slur->setTickLen(e->tick() - _is.slur->tick());
_is.slur->setTick2(e->tick());
}
else
qDebug("addPitch: cannot find slur note");

View file

@ -961,7 +961,7 @@ void Score::cmdAddHairpin(bool decrescendo)
pin->setHairpinType(decrescendo ? Hairpin::DECRESCENDO : Hairpin::CRESCENDO);
pin->setTrack(cr1->track());
pin->setTick(cr1->segment()->tick());
pin->setTickLen(cr2->segment()->tick() - pin->tick());
pin->setTick2(cr2->segment()->tick());
pin->setParent(cr1->segment());
undoAddElement(pin);
if (!noteEntryMode())

View file

@ -298,7 +298,7 @@ bool LineSegment::edit(MuseScoreView* sv, int curGrip, int key, Qt::KeyboardModi
if (key == Qt::Key_Left)
ls = l->takeLastSegment();
}
l->setTickLen(m2->tick() - l->tick());
l->setTick2(m2->tick());
}
}
l->layout();
@ -655,16 +655,10 @@ bool SLine::readProperties(XmlReader& e)
{
const QStringRef& tag(e.name());
if (tag == "tick2") {
int tick2 = e.readInt();
setTickLen(tick() == -1 ? tick2 : tick2 - tick());
}
else if (tag == "tick") {
int tick1 = e.readInt();
if (tickLen() != -1)
setTickLen(tickLen() - tick1);
setTick(tick1);
}
if (tag == "tick2") // obsolete
setTick2(e.readInt());
else if (tag == "tick") // obsolete
setTick(e.readInt());
else if (tag == "Segment") {
LineSegment* ls = createLineSegment();
ls->read(e);

View file

@ -2022,7 +2022,7 @@ void Measure::read(XmlReader& e, int staffIdx)
int id = e.attribute("id").toInt();
Spanner* spanner = score()->findSpanner(id);
if (spanner) {
spanner->setTickLen(e.tick() - spanner->tick());
spanner->setTick2(e.tick());
if (spanner->type() == OTTAVA) {
Ottava* o = static_cast<Ottava*>(spanner);
int shift = o->pitchShift();

View file

@ -160,7 +160,7 @@ static const PropertyData propertyList[] = {
{ P_TIMESIG_GLOBAL, false, 0, T_FRACTION },
{ P_SPANNER_TICK, true, "tick", T_INT },
{ P_SPANNER_TICKLEN, true, "tickLen", T_INT },
{ P_SPANNER_TICK2, true, "tick2", T_INT },
{ P_USER_OFF2, false, "userOff2", T_POINT },
{ P_END, false, "", T_INT }

View file

@ -152,7 +152,7 @@ enum P_ID {
P_TIMESIG_GLOBAL,
P_SPANNER_TICK,
P_SPANNER_TICKLEN,
P_SPANNER_TICK2,
P_USER_OFF2,
P_END

View file

@ -516,8 +516,8 @@ Score::FileError Score::read114(XmlReader& e)
}
qDeleteAll(e.clefListList());
#if 0 // TODO-S
foreach(Spanner* s, e.spanner()) {
for (std::pair<int,Spanner*> p : spanner()) {
Spanner* s = p.second;
if (s->type() == Element::OTTAVA
|| (s->type() == Element::TEXTLINE)
|| (s->type() == Element::VOLTA)
@ -529,71 +529,10 @@ Score::FileError Score::read114(XmlReader& e)
tl->setEndSymbol(resolveSymCompatibility(tl->endSymbol(), mscoreVersion()));
}
if (s->type() == Element::SLUR) {
Slur* slur = static_cast<Slur*>(s);
if (!slur->startElement() || !slur->endElement()) {
qDebug("incomplete Slur");
if (slur->startElement()) {
qDebug(" front %d", static_cast<ChordRest*>(slur->startElement())->tick());
static_cast<ChordRest*>(slur->startElement())->removeSlurFor(slur);
}
if (slur->endElement()) {
qDebug(" back %d", static_cast<ChordRest*>(slur->endElement())->tick());
static_cast<ChordRest*>(slur->endElement())->removeSlurBack(slur);
}
}
else {
ChordRest* cr1 = (ChordRest*)(slur->startElement());
ChordRest* cr2 = (ChordRest*)(slur->endElement());
if (cr1->tick() > cr2->tick()) {
qDebug("Slur invalid start-end tick %d-%d", cr1->tick(), cr2->tick());
slur->setStartElement(cr2);
slur->setEndElement(cr1);
}
int n1 = 0;
int n2 = 0;
for (Spanner* s = cr1->spannerFor(); s; s = s->next()) {
if (s == slur)
++n1;
}
for (Spanner* s = cr2->spannerBack(); s; s = s->next()) {
if (s == slur)
++n2;
}
if (n1 != 1 || n2 != 1) {
qDebug("Slur references bad: %d %d", n1, n2);
}
}
}
else {
Segment* s1 = tick2segment(s->__tick1());
Segment* s2 = tick2segment(s->__tick2());
if (s1 == 0 || s2 == 0) {
qDebug("cannot place %s at tick %d - %d",
s->name(), s->__tick1(), s->__tick2());
continue;
}
if (s->type() != Element::SLUR) {
if (s->type() == Element::VOLTA) {
Volta* volta = static_cast<Volta*>(s);
volta->setAnchor(Spanner::ANCHOR_MEASURE);
volta->setStartMeasure(s1->measure());
Measure* m2 = s2->measure();
if (s2->tick() == m2->tick())
m2 = m2->prevMeasure();
volta->setEndMeasure(m2);
s1->measure()->add(s);
int n = volta->spannerSegments().size();
if (n) {
// volta->setYoff(-styleS(ST_voltaHook).val());
// LineSegment* ls = volta->segmentAt(0);
// ls->setReadPos(QPointF());
}
}
else {
s->setStartElement(s1);
s->setEndElement(s2);
s1->add(s);
}
}
@ -608,7 +547,7 @@ Score::FileError Score::read114(XmlReader& e)
}
}
}
#endif
connectTies();
//
@ -685,6 +624,10 @@ Score::FileError Score::read114(XmlReader& e)
// create excerpts
foreach (Excerpt* excerpt, _excerpts) {
if (excerpt->parts().isEmpty()) { // ignore empty parts
_excerpts.removeOne(excerpt);
continue;
}
Score* nscore = Ms::createExcerpt(excerpt->parts());
if (nscore) {
nscore->setParentScore(this);

View file

@ -3426,7 +3426,7 @@ printf(" %p score %p change spanner %d+%d\n", s, s->score(), s->tick(), s->tic
// +----spanner--------+
// +---add---
//
undoChangeProperty(s, P_SPANNER_TICKLEN, s->tickLen() + len);
undoChangeProperty(s, P_SPANNER_TICK2, s->tick2() + len);
}
else if (tick < s->tick()) {
//
@ -3455,9 +3455,9 @@ printf(" %p score %p change spanner %d+%d\n", s, s->score(), s->tick(), s->tic
// +----spanner--------+
// +---remove---+
//
int l = s->tickLen() + len;
if (l > 0)
undoChangeProperty(s, P_SPANNER_TICKLEN, l);
int t2 = s->tick2() + len;
if (t2 > s->tick())
undoChangeProperty(s, P_SPANNER_TICK2, t2);
}
else if (s->tick() >= tick && s->tick2() < tick2) {
//
@ -3478,10 +3478,8 @@ printf(" %p score %p change spanner %d+%d\n", s, s->score(), s->tick(), s->tic
int len = s->tickLen() - d2;
if (len == 0)
undoRemoveElement(s);
else {
else
undoChangeProperty(s, P_SPANNER_TICK, s->tick() - d1);
undoChangeProperty(s, P_SPANNER_TICKLEN, s->tickLen() - d2);
}
}
}
}

View file

@ -114,8 +114,6 @@ Segment::Segment(Measure* m)
Segment::Segment(Measure* m, SegmentType st, int t)
: Element(m->score())
{
if (st == SegBreath)
abort();
setParent(m);
setSegmentType(st);
setTick(t);

View file

@ -142,7 +142,7 @@ class Segment : public Element {
static const char* subTypeName(SegmentType);
static SegmentType segmentType(ElementType type);
SegmentType segmentType() const { return _segmentType; }
void setSegmentType(SegmentType t) { if (t == SegBreath) abort(); _segmentType = t; }
void setSegmentType(SegmentType t) { _segmentType = t; }
void removeGeneratedElements();
bool isEmpty() const { return empty; }

View file

@ -21,7 +21,7 @@
namespace Ms {
int Spanner::editTick;
int Spanner::editTickLen;
int Spanner::editTick2;
QList<QPointF> Spanner::userOffsets2;
QList<QPointF> Spanner::userOffsets;
@ -144,7 +144,7 @@ Spanner::Spanner(Score* s)
_startElement = 0;
_endElement = 0;
_tick = -1;
_tickLen = -1;
_tick2 = -1;
_id = 0;
}
@ -155,7 +155,7 @@ Spanner::Spanner(const Spanner& s)
_startElement = s._startElement;
_endElement = s._endElement;
_tick = s._tick;
_tickLen = s._tickLen;
_tick2 = s._tick2;
_id = 0;
}
@ -218,7 +218,7 @@ void Spanner::setScore(Score* s)
void Spanner::startEdit(MuseScoreView*, const QPointF&)
{
editTick = _tick;
editTickLen = _tickLen;
editTick2 = _tick2;
userOffsets.clear();
userOffsets2.clear();
foreach (SpannerSegment* ss, spannerSegments()) {
@ -234,7 +234,7 @@ void Spanner::startEdit(MuseScoreView*, const QPointF&)
void Spanner::endEdit()
{
score()->undoPropertyChanged(this, P_SPANNER_TICK, editTick);
score()->undoPropertyChanged(this, P_SPANNER_TICKLEN, editTickLen);
score()->undoPropertyChanged(this, P_SPANNER_TICK2, editTick2);
if (spannerSegments().size() != userOffsets2.size()) {
qDebug("SLine::endEdit(): segment size changed");
@ -265,7 +265,7 @@ void Spanner::setSelected(bool f)
bool Spanner::isEdited(Spanner* originalSpanner) const
{
if (_tick != originalSpanner->_tick || _tickLen != originalSpanner->_tickLen)
if (_tick != originalSpanner->_tick || _tick2 != originalSpanner->_tick2)
return true;
if (spannerSegments().size() != originalSpanner->spannerSegments().size())
return true;
@ -285,8 +285,8 @@ QVariant Spanner::getProperty(P_ID propertyId) const
switch (propertyId) {
case P_SPANNER_TICK:
return tick();
case P_SPANNER_TICKLEN:
return tickLen();
case P_SPANNER_TICK2:
return tick2();
default:
break;
}
@ -303,8 +303,8 @@ bool Spanner::setProperty(P_ID propertyId, const QVariant& v)
case P_SPANNER_TICK:
setTick(v.toInt());
break;
case P_SPANNER_TICKLEN:
setTickLen(v.toInt());
case P_SPANNER_TICK2:
setTick2(v.toInt());
break;
default:
if (!Element::setProperty(propertyId, v))
@ -334,7 +334,7 @@ QVariant Spanner::propertyDefault(P_ID propertyId) const
ChordRest* Score::findCR(int tick, int track) const
{
Segment* s = tick2segment(tick);
Segment* s = tick2segment(tick, false, Segment::SegChordRest);
if (s)
return static_cast<ChordRest*>(s->element(track));
return nullptr;
@ -346,29 +346,20 @@ ChordRest* Score::findCR(int tick, int track) const
void Spanner::computeStartElement()
{
bool first = _tickLen == 0;
Element* e = 0;
_startElement = 0;
switch (_anchor) {
case ANCHOR_SEGMENT:
e = score()->findCR(tick(), track());
_startElement = score()->findCR(tick(), track());
break;
case ANCHOR_MEASURE:
{
Segment* s = score()->tick2segment(tick(), first, Segment::SegChordRest);
if (s) {
ChordRest* cr = static_cast<ChordRest*>(s->element(track()));
if (cr)
e = cr->measure();
}
}
_startElement = score()->tick2measure(tick());
break;
case ANCHOR_CHORD:
case ANCHOR_NOTE:
return;
}
_startElement = e;
}
//---------------------------------------------------------
@ -377,26 +368,20 @@ void Spanner::computeStartElement()
void Spanner::computeEndElement()
{
Element* e = 0;
_endElement = 0;
switch (_anchor) {
case ANCHOR_SEGMENT:
e = score()->findCR(tick2(), track());
_endElement = score()->findCR(tick2(), track());
break;
case ANCHOR_MEASURE:
{
ChordRest* cr = score()->findCR(tick2(), track());
e = cr ? cr->measure() : 0;
}
_endElement = score()->tick2measure(tick2());
break;
case ANCHOR_CHORD:
return;
case ANCHOR_NOTE:
break;
}
_endElement = e;
}
//---------------------------------------------------------

View file

@ -96,17 +96,17 @@ class Spanner : public Element {
};
private:
Q_PROPERTY(int tick READ tick WRITE setTick)
Q_PROPERTY(int tickLen READ tickLen WRITE setTickLen)
Q_PROPERTY(int tick2 READ tick2 WRITE setTick2)
Q_PROPERTY(Anchor anchor READ anchor WRITE setAnchor)
QList<SpannerSegment*> segments;
Anchor _anchor;
Element* _startElement;
Element* _endElement;
int _tick, _tickLen;
int _tick, _tick2;
int _id; // used for xml serialization
static int editTick, editTickLen;
static int editTick, editTick2;
static QList<QPointF> userOffsets;
static QList<QPointF> userOffsets2;
@ -120,10 +120,10 @@ class Spanner : public Element {
int tick() const { return _tick; }
void setTick(int v) { _tick = v; }
int tickLen() const { return _tickLen; }
void setTickLen(int v) { _tickLen = v; }
int tick2() const { return _tick + _tickLen; } // helper function
void setTick2(int v) { _tickLen = v - _tick; } // assume _tick is already set
int tickLen() const { return _tick2 - _tick; }
int tick2() const { return _tick2; }
void setTick2(int v) { _tick2 = v; }
int id() const { return _id; }
void setId(int v) { _id = v; }

View file

@ -50,9 +50,9 @@ Measure* Score::tick2measure(int tick) const
lm = m;
}
// check last measure
if (lm && (tick >= lm->tick()) && (tick <= (lm->tick() + lm->ticks())))
if (lm && (tick >= lm->tick()) && (tick <= lm->endTick()))
return lm;
qDebug("-tick2measure %d not found", tick);
qDebug("-tick2measure %d (max %d) not found", tick, lm ? lm->tick() : -1);
return 0;
}

View file

@ -690,7 +690,7 @@ void Xml::dump(int len, const unsigned char* p)
}
//---------------------------------------------------------
// htmlToString
// htmlToStringg
//---------------------------------------------------------
void Xml::htmlToString(XmlReader& e, int level, QString* s)

View file

@ -2122,7 +2122,7 @@ Measure* MusicXml::xmlMeasure(Part* part, QDomElement e, int number, int measure
else if (endingType == "stop") {
if (lastVolta) {
lastVolta->setVoltaType(VoltaType::CLOSED);
lastVolta->setTickLen(measure->tick() - lastVolta->tick());
lastVolta->setTick2(measure->tick());
lastVolta = 0;
}
else {

View file

@ -173,7 +173,7 @@ void MuseData::openSlur(int idx, int tick, Staff* staff, int voice)
void MuseData::closeSlur(int idx, int tick, Staff* staff, int voice)
{
if (slur[idx]) {
slur[idx]->setTickLen(tick - slur[idx]->tick());
slur[idx]->setTick2(tick);
slur[idx] = 0;
}
else

View file

@ -3775,7 +3775,7 @@ void ScoreView::cmdAddSlur()
cr2 = cr1;
Slur* slur = new Slur(_score);
slur->setTick(cr1->tick());
slur->setTickLen(cr2->tick() - cr1->tick());
slur->setTick2(cr2->tick());
slur->setTrack(cr1->track());
slur->setParent(0);
_score->undoAddElement(slur);
@ -3885,7 +3885,7 @@ void ScoreView::cmdAddSlur(Note* firstNote, Note* lastNote)
Slur* slur = new Slur(_score);
slur->setAnchor(Spanner::ANCHOR_SEGMENT);
slur->setTick(cr1->tick());
slur->setTickLen(cr2->tick() - cr1->tick());
slur->setTick2(cr2->tick());
slur->setTrack(cr1->track());
slur->setParent(0);
_score->undoAddElement(slur);