From 6c6010b6cf0b27ae610c4b58a7b40e95865d114f Mon Sep 17 00:00:00 2001 From: Joachim Schmitz Date: Fri, 23 Dec 2016 15:27:57 +0100 Subject: [PATCH] fix #152206: Revision is not shown in Score Properties for scores from 2.0 or later, actually for scores created after the move from sourceforge to GitHub --- libmscore/read206.cpp | 4 ++-- libmscore/read300.cpp | 2 +- libmscore/xml.h | 7 ++++--- mscore/metaedit.cpp | 7 ++++++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/libmscore/read206.cpp b/libmscore/read206.cpp index 31edbaa0a66c0..d7a2d06e79b99 100644 --- a/libmscore/read206.cpp +++ b/libmscore/read206.cpp @@ -1709,7 +1709,7 @@ static bool readScore(Score* score, XmlReader& e) //--------------------------------------------------------- // read206 -// import old version > 1.3 and < 2.x files +// import old version > 1.3 and < 3.x files //--------------------------------------------------------- Score::FileError MasterScore::read206(XmlReader& e) @@ -1733,7 +1733,7 @@ Score::FileError MasterScore::read206(XmlReader& e) parseVersion(mscoreVersion()); } else if (tag == "programRevision") - setMscoreRevision(e.readInt()); + setMscoreRevision(e.readIntHex()); else if (tag == "Score") { if (!readScore(this, e)) return FileError::FILE_BAD_FORMAT; diff --git a/libmscore/read300.cpp b/libmscore/read300.cpp index 69ab07ce5e6d5..640d5b967c916 100644 --- a/libmscore/read300.cpp +++ b/libmscore/read300.cpp @@ -311,7 +311,7 @@ Score::FileError MasterScore::read300(XmlReader& e) parseVersion(mscoreVersion()); } else if (tag == "programRevision") - setMscoreRevision(e.readInt()); + setMscoreRevision(e.readIntHex()); else if (tag == "Score") { MasterScore* score; if (top) { diff --git a/libmscore/xml.h b/libmscore/xml.h index ee03633ddab55..0cb7848700505 100644 --- a/libmscore/xml.h +++ b/libmscore/xml.h @@ -84,9 +84,10 @@ class XmlReader : public QXmlStreamReader { bool hasAttribute(const char* s) const; // helper routines based on readElementText(): - int readInt() { return readElementText().toInt(); } - int readInt(bool* ok) { return readElementText().toInt(ok); } - double readDouble() { return readElementText().toDouble(); } + int readInt() { return readElementText().toInt(); } + int readInt(bool* ok) { return readElementText().toInt(ok); } + int readIntHex() { return readElementText().toInt(0, 16); } + double readDouble() { return readElementText().toDouble(); } double readDouble(double min, double max); bool readBool(); QPointF readPoint(); diff --git a/mscore/metaedit.cpp b/mscore/metaedit.cpp index ad2bf6de6a677..c69b841c14765 100644 --- a/mscore/metaedit.cpp +++ b/mscore/metaedit.cpp @@ -40,7 +40,12 @@ MetaEditDialog::MetaEditDialog(Score* s, QWidget* parent) level->setValue(score->mscVersion()); version->setText(score->mscoreVersion()); - revision->setValue(score->mscoreRevision()); + int rev = score->mscoreRevision(); + if (rev > 99999) { // MuseScore 1.3 is 5702, 2.0 uses a 7-digit hex SHA + revision->setDisplayIntegerBase(16); + revision->setMaximum(0xfffffff); + } + revision->setValue(rev); filePath->setText(score->importedFilePath()); int idx = 0;