fix #280885: Re-instate persistence of "First page number" setting

This commit is contained in:
Julian Clementson 2019-01-28 10:14:30 +00:00
parent 6a49257937
commit 5a3d59f8e3
7 changed files with 44 additions and 0 deletions

View file

@ -3434,6 +3434,15 @@ void Score::undoChangeStyleVal(Sid idx, const QVariant& v)
undo(new ChangeStyleVal(this, idx, v));
}
//---------------------------------------------------------
// undoChangePageNumberOffset
//---------------------------------------------------------
void Score::undoChangePageNumberOffset(int po)
{
undo(new ChangePageNumberOffset(this, po));
}
//---------------------------------------------------------
// undoChangeElement
//---------------------------------------------------------

View file

@ -3599,6 +3599,8 @@ static bool readScore(Score* score, XmlReader& e)
score->setCurrentLayer(e.readInt());
else if (tag == "Synthesizer")
score->synthesizerState().read(e);
else if (tag == "page-offset")
score->setPageNumberOffset(e.readInt());
else if (tag == "Division")
score->setFileDivision(e.readInt());
else if (tag == "showInvisible")

View file

@ -79,6 +79,8 @@ bool Score::read(XmlReader& e)
_currentLayer = e.readInt();
else if (tag == "Synthesizer")
_synthesizerState.read(e);
else if (tag == "page-offset")
_pageNumberOffset = e.readInt();
else if (tag == "Division")
_fileDivision = e.readInt();
else if (tag == "showInvisible")

View file

@ -629,6 +629,7 @@ class Score : public QObject, public ScoreElement {
void undoRemoveBracket(Bracket*);
void undoInsertTime(int tick, int len);
void undoChangeStyleVal(Sid idx, const QVariant& v);
void undoChangePageNumberOffset(int po);
Note* setGraceNote(Chord*, int pitch, NoteType type, int len);

View file

@ -1508,6 +1508,20 @@ void ChangeStyleVal::flip(EditData*)
value = v;
}
//---------------------------------------------------------
// ChangePageNumberOffset::flip
//---------------------------------------------------------
void ChangePageNumberOffset::flip(EditData*)
{
int po = score->pageNumberOffset();
score->setPageNumberOffset(pageOffset);
score->setLayoutAll();
pageOffset = po;
}
//---------------------------------------------------------
// ChangeChordStaffMove
//---------------------------------------------------------

View file

@ -652,6 +652,21 @@ class ChangeStyleVal : public UndoCommand {
UNDO_NAME("ChangeStyleVal")
};
//---------------------------------------------------------
// ChangePageNumberOffset
//---------------------------------------------------------
class ChangePageNumberOffset : public UndoCommand {
Score* score;
int pageOffset;
void flip(EditData*) override;
public:
ChangePageNumberOffset(Score* s, int po) : score(s), pageOffset(po) {}
UNDO_NAME("ChangePageNumberOffset")
};
//---------------------------------------------------------
// ChangeChordStaffMove
//---------------------------------------------------------

View file

@ -305,6 +305,7 @@ void PageSettings::applyToScore(Score* s)
s->undoChangeStyleVal(Sid::pageOddLeftMargin, oddPageLeftMargin->value() * f);
s->undoChangeStyleVal(Sid::pageTwosided, twosided->isChecked());
s->undoChangeStyleVal(Sid::spatium, spatiumEntry->value() * f1);
s->undoChangePageNumberOffset(pageOffsetEntry->value() - 1);
s->endCmd();
}