Skip to content

Commit

Permalink
Merge pull request #5315 from tcannon686/master
Browse files Browse the repository at this point in the history
fix #282246: "other" appearance in time signature properties does not work
  • Loading branch information
anatoly-os committed Mar 29, 2020
2 parents 688977d + cd3b382 commit 1163513
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 12 deletions.
10 changes: 8 additions & 2 deletions libmscore/timesig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -299,8 +299,14 @@ void TimeSig::layout()
ds.clear();
}
else {
ns = toTimeSigString(_numeratorString.isEmpty() ? QString::number(_sig.numerator()) : _numeratorString);
ds = toTimeSigString(_denominatorString.isEmpty() ? QString::number(_sig.denominator()) : _denominatorString);
if (_numeratorString.isEmpty()) {
ns = toTimeSigString(_numeratorString.isEmpty() ? QString::number(_sig.numerator()) : _numeratorString);
ds = toTimeSigString(_denominatorString.isEmpty() ? QString::number(_sig.denominator()) : _denominatorString);
}
else {
ns = toTimeSigString(_numeratorString);
ds = toTimeSigString(_denominatorString);
}

ScoreFont* font = score()->scoreFont();
QSizeF mag(magS() * _scale);
Expand Down
23 changes: 13 additions & 10 deletions mscore/timesigproperties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ TimeSigProperties::TimeSigProperties(TimeSig* t, QWidget* parent)
textButton->setChecked(false);
otherButton->setChecked(true);
otherCombo->setCurrentIndex(idx);

// set the custom text fields to empty
zText->setText(QString());
nText->setText(QString());
}
}
idx++;
Expand All @@ -134,21 +138,12 @@ TimeSigProperties::TimeSigProperties(TimeSig* t, QWidget* parent)
void TimeSigProperties::accept()
{
TimeSigType ts = TimeSigType::NORMAL;
if (textButton->isChecked())
if (textButton->isChecked() || otherButton->isChecked())
ts = TimeSigType::NORMAL;
else if (fourfourButton->isChecked())
ts = TimeSigType::FOUR_FOUR;
else if (allaBreveButton->isChecked())
ts = TimeSigType::ALLA_BREVE;
else if (otherButton->isChecked()) {
// if other symbol, set as normal text...
ts = TimeSigType::NORMAL;
ScoreFont* scoreFont = timesig->score()->scoreFont();
SymId symId = (SymId)( otherCombo->itemData(otherCombo->currentIndex()).toInt() );
// ...and set numerator to font string for symbol and denominator to empty string
timesig->setNumeratorString(scoreFont->toString(symId));
timesig->setDenominatorString(QString());
}

Fraction actual(zActual->value(), nActual->value());
Fraction nominal(zNominal->value(), nNominal->value());
Expand All @@ -160,6 +155,14 @@ void TimeSigProperties::accept()
if (nText->text() != timesig->denominatorString())
timesig->setDenominatorString(nText->text());

if (otherButton->isChecked()) {
ScoreFont* scoreFont = timesig->score()->scoreFont();
SymId symId = (SymId)( otherCombo->itemData(otherCombo->currentIndex()).toInt() );
// ...and set numerator to font string for symbol and denominator to empty string
timesig->setNumeratorString(scoreFont->toString(symId));
timesig->setDenominatorString(QString());
}

Groups g = groups->groups();
timesig->setGroups(g);
QDialog::accept();
Expand Down

0 comments on commit 1163513

Please sign in to comment.