Skip to content

Commit f214937

Browse files
committed
Simplify keysig read/write
1 parent 393ba9f commit f214937

File tree

4 files changed

+10
-89
lines changed

4 files changed

+10
-89
lines changed

src/engraving/rw/read400/tread.cpp

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,8 +1203,7 @@ void TRead::read(KeySig* s, XmlReader& e, ReadContext& ctx)
12031203
}
12041204
}
12051205
sig.customKeyDefs().push_back(cd);
1206-
} else if (tag == "showCourtesySig") {
1207-
s->setShowCourtesy(e.readInt());
1206+
} else if (TRead::readProperty(s, tag, e, ctx, Pid::SHOW_COURTESY)) {
12081207
} else if (tag == "showNaturals") { // obsolete
12091208
e.readInt();
12101209
} else if (tag == "accidental") { // we need to guess proper concert key
@@ -1224,30 +1223,7 @@ void TRead::read(KeySig* s, XmlReader& e, ReadContext& ctx)
12241223
e.readInt();
12251224
sig.setCustom(true);
12261225
} else if (tag == "mode") {
1227-
String m(e.readText());
1228-
if (m == "none") {
1229-
sig.setMode(KeyMode::NONE);
1230-
} else if (m == "major") {
1231-
sig.setMode(KeyMode::MAJOR);
1232-
} else if (m == "minor") {
1233-
sig.setMode(KeyMode::MINOR);
1234-
} else if (m == "dorian") {
1235-
sig.setMode(KeyMode::DORIAN);
1236-
} else if (m == "phrygian") {
1237-
sig.setMode(KeyMode::PHRYGIAN);
1238-
} else if (m == "lydian") {
1239-
sig.setMode(KeyMode::LYDIAN);
1240-
} else if (m == "mixolydian") {
1241-
sig.setMode(KeyMode::MIXOLYDIAN);
1242-
} else if (m == "aeolian") {
1243-
sig.setMode(KeyMode::AEOLIAN);
1244-
} else if (m == "ionian") {
1245-
sig.setMode(KeyMode::IONIAN);
1246-
} else if (m == "locrian") {
1247-
sig.setMode(KeyMode::LOCRIAN);
1248-
} else {
1249-
sig.setMode(KeyMode::UNKNOWN);
1250-
}
1226+
sig.setMode(TConv::fromXml(e.readAsciiText(), KeyMode::UNKNOWN));
12511227
} else if (tag == "subtype") {
12521228
subtype = e.readInt();
12531229
} else if (tag == "forInstrumentChange") {

src/engraving/rw/read410/tread.cpp

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1321,8 +1321,7 @@ void TRead::read(KeySig* s, XmlReader& e, ReadContext& ctx)
13211321
}
13221322
}
13231323
sig.customKeyDefs().push_back(cd);
1324-
} else if (tag == "showCourtesySig") {
1325-
s->setShowCourtesy(e.readInt());
1324+
} else if (TRead::readProperty(s, tag, e, ctx, Pid::SHOW_COURTESY)) {
13261325
} else if (tag == "showNaturals") { // obsolete
13271326
e.readInt();
13281327
} else if (tag == "accidental") { // older files; we need to guess proper concert key
@@ -1346,36 +1345,12 @@ void TRead::read(KeySig* s, XmlReader& e, ReadContext& ctx)
13461345
e.readInt();
13471346
sig.setCustom(true);
13481347
} else if (tag == "mode") {
1349-
String m(e.readText());
1350-
if (m == "none") {
1351-
sig.setMode(KeyMode::NONE);
1352-
} else if (m == "major") {
1353-
sig.setMode(KeyMode::MAJOR);
1354-
} else if (m == "minor") {
1355-
sig.setMode(KeyMode::MINOR);
1356-
} else if (m == "dorian") {
1357-
sig.setMode(KeyMode::DORIAN);
1358-
} else if (m == "phrygian") {
1359-
sig.setMode(KeyMode::PHRYGIAN);
1360-
} else if (m == "lydian") {
1361-
sig.setMode(KeyMode::LYDIAN);
1362-
} else if (m == "mixolydian") {
1363-
sig.setMode(KeyMode::MIXOLYDIAN);
1364-
} else if (m == "aeolian") {
1365-
sig.setMode(KeyMode::AEOLIAN);
1366-
} else if (m == "ionian") {
1367-
sig.setMode(KeyMode::IONIAN);
1368-
} else if (m == "locrian") {
1369-
sig.setMode(KeyMode::LOCRIAN);
1370-
} else {
1371-
sig.setMode(KeyMode::UNKNOWN);
1372-
}
1348+
sig.setMode(TConv::fromXml(e.readAsciiText(), KeyMode::UNKNOWN));
13731349
} else if (tag == "subtype") {
13741350
subtype = e.readInt();
13751351
} else if (tag == "forInstrumentChange") {
13761352
sig.setForInstrumentChange(e.readBool());
1377-
} else if (tag == "isCourtesy") {
1378-
s->setIsCourtesy(e.readBool());
1353+
} else if (TRead::readProperty(s, tag, e, ctx, Pid::IS_COURTESY)) {
13791354
} else if (!readItemProperties(s, e, ctx)) {
13801355
e.unknown();
13811356
}

src/engraving/rw/read460/tread.cpp

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1285,8 +1285,7 @@ void TRead::read(KeySig* s, XmlReader& e, ReadContext& ctx)
12851285
}
12861286
}
12871287
sig.customKeyDefs().push_back(cd);
1288-
} else if (tag == "showCourtesySig") {
1289-
s->setShowCourtesy(e.readInt());
1288+
} else if (TRead::readProperty(s, tag, e, ctx, Pid::SHOW_COURTESY)) {
12901289
} else if (tag == "concertKey") {
12911290
sig.setConcertKey(Key(e.readInt()));
12921291
} else if (tag == "actualKey") {
@@ -1295,36 +1294,12 @@ void TRead::read(KeySig* s, XmlReader& e, ReadContext& ctx)
12951294
e.readInt();
12961295
sig.setCustom(true);
12971296
} else if (tag == "mode") {
1298-
String m(e.readText());
1299-
if (m == "none") {
1300-
sig.setMode(KeyMode::NONE);
1301-
} else if (m == "major") {
1302-
sig.setMode(KeyMode::MAJOR);
1303-
} else if (m == "minor") {
1304-
sig.setMode(KeyMode::MINOR);
1305-
} else if (m == "dorian") {
1306-
sig.setMode(KeyMode::DORIAN);
1307-
} else if (m == "phrygian") {
1308-
sig.setMode(KeyMode::PHRYGIAN);
1309-
} else if (m == "lydian") {
1310-
sig.setMode(KeyMode::LYDIAN);
1311-
} else if (m == "mixolydian") {
1312-
sig.setMode(KeyMode::MIXOLYDIAN);
1313-
} else if (m == "aeolian") {
1314-
sig.setMode(KeyMode::AEOLIAN);
1315-
} else if (m == "ionian") {
1316-
sig.setMode(KeyMode::IONIAN);
1317-
} else if (m == "locrian") {
1318-
sig.setMode(KeyMode::LOCRIAN);
1319-
} else {
1320-
sig.setMode(KeyMode::UNKNOWN);
1321-
}
1297+
sig.setMode(TConv::fromXml(e.readAsciiText(), KeyMode::UNKNOWN));
13221298
} else if (tag == "subtype") {
13231299
subtype = e.readInt();
13241300
} else if (tag == "forInstrumentChange") {
13251301
sig.setForInstrumentChange(e.readBool());
1326-
} else if (tag == "isCourtesy") {
1327-
s->setIsCourtesy(e.readBool());
1302+
} else if (TRead::readProperty(s, tag, e, ctx, Pid::IS_COURTESY)) {
13281303
} else if (!readItemProperties(s, e, ctx)) {
13291304
e.unknown();
13301305
}

src/engraving/rw/write/twrite.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2210,14 +2210,9 @@ void TWrite::write(const KeySig* item, XmlWriter& xml, WriteContext& ctx)
22102210
xml.tag("mode", TConv::toXml(item->mode()));
22112211
}
22122212

2213-
if (item->isCourtesy()) {
2214-
xml.tag("isCourtesy", item->isCourtesy());
2215-
}
2216-
2217-
if (!item->showCourtesy()) {
2218-
xml.tag("showCourtesySig", item->showCourtesy());
2219-
}
2213+
writeProperty(item, xml, Pid::SHOW_COURTESY);
22202214
writeProperty(item, xml, Pid::IS_COURTESY);
2215+
22212216
if (item->forInstrumentChange()) {
22222217
xml.tag("forInstrumentChange", true);
22232218
}

0 commit comments

Comments
 (0)