Skip to content

Commit

Permalink
fix #280885: Re-instate persistence of "First page number" setting
Browse files Browse the repository at this point in the history
  • Loading branch information
julianclem committed Jan 28, 2019
1 parent 6a49257 commit 5a3d59f
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 0 deletions.
9 changes: 9 additions & 0 deletions libmscore/edit.cpp
Expand Up @@ -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
//---------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions libmscore/read206.cpp
Expand Up @@ -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")
Expand Down
2 changes: 2 additions & 0 deletions libmscore/read301.cpp
Expand Up @@ -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")
Expand Down
1 change: 1 addition & 0 deletions libmscore/score.h
Expand Up @@ -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);

Expand Down
14 changes: 14 additions & 0 deletions libmscore/undo.cpp
Expand Up @@ -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
//---------------------------------------------------------
Expand Down
15 changes: 15 additions & 0 deletions libmscore/undo.h
Expand Up @@ -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
//---------------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions mscore/pagesettings.cpp
Expand Up @@ -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();
}
Expand Down

0 comments on commit 5a3d59f

Please sign in to comment.