fix #275751: Continuous view mode is not saved in master

In MuseScore::saveAs there was a code which change layout mode to PageView. I deleted it to allow saving layout mode to mscz
This commit is contained in:
alexandr 2018-08-31 11:54:16 +02:00
parent bc2013ff9d
commit 13e13fa493
4 changed files with 24 additions and 5 deletions

View file

@ -2789,6 +2789,18 @@ void Score::selectSingle(Element* e, int staffIdx)
_selection.setState(selState);
}
//---------------------------------------------------------
// switchToPageMode
//---------------------------------------------------------
void Score::switchToPageMode()
{
if (_layoutMode != LayoutMode::PAGE) {
setLayoutMode(LayoutMode::PAGE);
doLayout();
}
}
//---------------------------------------------------------
// selectAdd
//---------------------------------------------------------

View file

@ -1032,6 +1032,7 @@ class Score : public QObject, public ScoreElement {
bool floatMode() const { return layoutMode() == LayoutMode::FLOAT; }
bool pageMode() const { return layoutMode() == LayoutMode::PAGE; }
bool lineMode() const { return layoutMode() == LayoutMode::LINE; }
bool systemMode() const { return layoutMode() == LayoutMode::SYSTEM; }
Tuplet* searchTuplet(XmlReader& e, int id);
void cmdSelectAll();
@ -1131,6 +1132,8 @@ class Score : public QObject, public ScoreElement {
bool checkKeys();
bool checkClefs();
void switchToPageMode();
virtual QVariant getProperty(Pid) const override;
virtual bool setProperty(Pid, const QVariant&) override;
virtual QVariant propertyDefault(Pid) const override;

View file

@ -115,8 +115,10 @@ void Score::writeMovement(XmlWriter& xml, bool selectionOnly)
}
}
if (_layoutMode == LayoutMode::LINE)
if (lineMode())
xml.tag("layoutMode", "line");
if (systemMode())
xml.tag("layoutMode", "system");
#ifdef OMR
if (masterScore()->omr() && xml.writeOmr())

View file

@ -1819,10 +1819,6 @@ bool MuseScore::saveAs(Score* cs, bool saveCopy, const QString& path, const QStr
fn += suffix;
LayoutMode layoutMode = cs->layoutMode();
if (layoutMode != LayoutMode::PAGE) {
cs->setLayoutMode(LayoutMode::PAGE);
cs->doLayout();
}
if (ext == "mscx" || ext == "mscz") {
// save as mscore *.msc[xz] file
QFileInfo fi(fn);
@ -1895,14 +1891,17 @@ bool MuseScore::saveAs(Score* cs, bool saveCopy, const QString& path, const QStr
}
else if (ext == "pdf") {
// save as pdf file *.pdf
cs->switchToPageMode();
rv = savePdf(cs, fn);
}
else if (ext == "png") {
// save as png file *.png
cs->switchToPageMode();
rv = savePng(cs, fn);
}
else if (ext == "svg") {
// save as svg file *.svg
cs->switchToPageMode();
rv = saveSvg(cs, fn);
}
#ifdef HAS_AUDIOFILE
@ -1914,10 +1913,12 @@ bool MuseScore::saveAs(Score* cs, bool saveCopy, const QString& path, const QStr
rv = saveMp3(cs, fn);
#endif
else if (ext == "spos") {
cs->switchToPageMode();
// save positions of segments
rv = savePositions(cs, fn, true);
}
else if (ext == "mpos") {
cs->switchToPageMode();
// save positions of measures
rv = savePositions(cs, fn, false);
}
@ -1931,6 +1932,7 @@ bool MuseScore::saveAs(Score* cs, bool saveCopy, const QString& path, const QStr
}
if (!rv && !MScore::noGui)
QMessageBox::critical(this, tr("MuseScore:"), tr("Cannot write into %1").arg(fn));
if (layoutMode != cs->layoutMode()) {
cs->setLayoutMode(layoutMode);
cs->doLayout();