Skip to content

Commit

Permalink
Fix #20499: time sig not correctly laid out after some changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
Maurizio M. Gavioli committed Mar 16, 2013
1 parent abc01d4 commit dd5f9e9
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions libmscore/timesig.cpp
Expand Up @@ -54,7 +54,8 @@ void TimeSig::setSig(const Fraction& f, TimeSigType st)
if (st == TSIG_FOUR_FOUR || st == TSIG_ALLA_BREVE)
customText = false;
_timeSigType = st;
layout1();
// layout1();
needLayout = true;
}

//---------------------------------------------------------
Expand Down Expand Up @@ -95,6 +96,7 @@ void TimeSig::setNumeratorString(const QString& a)
customText = _numeratorString.isEmpty() != _denominatorString.isEmpty()
|| ( !_numeratorString.isEmpty() && _numeratorString != QString::number(_sig.numerator()) )
|| ( !_denominatorString.isEmpty() && _denominatorString != QString::number(_sig.denominator()) );
needLayout = true;
}

//---------------------------------------------------------
Expand All @@ -108,6 +110,7 @@ void TimeSig::setDenominatorString(const QString& a)
customText = _numeratorString.isEmpty() != _denominatorString.isEmpty()
|| ( !_numeratorString.isEmpty() && _numeratorString != QString::number(_sig.numerator()) )
|| ( !_denominatorString.isEmpty() && _denominatorString != QString::number(_sig.denominator()) );
needLayout = true;
}

//---------------------------------------------------------
Expand Down Expand Up @@ -228,13 +231,23 @@ void TimeSig::layout1()
TimeSigType sigType = timeSigType();
Staff* _staff = staff();

if (_staff) { // if some staff, update to real staff values
if (_staff) {
// if staff is without time sig, format as if no text at all
if (!_staff->staffType()->genTimesig() ) {
// reset position and box sizes to 0
pn.rx() = 0.0;
pz.rx() = 0.0;
setbbox(QRectF());
// leave everything else as it is:
// draw() will anyway skip any drawing if staff type has no time sigs
// sigType = TSIG_NORMAL;
// _numeratorString.clear();
// _denominatorString.clear();
return;
}
// update to real staff values
numOfLines = _staff->lines();
lineDist = _staff->lineDistance();

// if tablature, but without time sig, set empty symbol
if (_staff->isTabStaff() && !_staff->staffType()->genTimesig() )
sigType = TSIG_NORMAL;
}

// if some symbol
Expand Down

0 comments on commit dd5f9e9

Please sign in to comment.