Skip to content

Commit ebaa773

Browse files
miiizenJojo-Schmitz
authored andcommitted
Support more symbol fonts used in xml files
Backport of musescore#24041
1 parent 6d178d9 commit ebaa773

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

importexport/musicxml/importmxmlpass2.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3307,7 +3307,6 @@ void MusicXMLParserDirection::direction(const QString& partId,
33073307
else
33083308
skipLogCurrElem();
33093309
}
3310-
handleTempo();
33113310
handleRepeats(measure, track, tick + _offset);
33123311
handleNmiCmi(measure, track, tick + _offset, delayedDirections);
33133312
handleChordSym(track, tick + _offset, harmonyMap);
@@ -3648,14 +3647,17 @@ void MusicXMLParserDirection::directionType(QList<MusicXmlSpannerDesc>& starts,
36483647
if (_e.name() == "metronome")
36493648
_metroText = metronome(_tpoMetro);
36503649
else if (_e.name() == "words") {
3651-
_enclosure = _e.attributes().value("enclosure").toString();
3650+
_enclosure = _e.attributes().value("enclosure").toString();
3651+
_fontFamily = _e.attributes().value("font-family").toString();
36523652
QString nextPart = nextPartOfFormattedString(_e);
3653+
36533654
textToDynamic(nextPart);
36543655
textToCrescLine(nextPart);
3656+
handleTempo(nextPart);
36553657
_wordsText += nextPart;
36563658
}
36573659
else if (_e.name() == "rehearsal") {
3658-
_enclosure = _e.attributes().value("enclosure").toString();
3660+
_enclosure = _e.attributes().value("enclosure").toString();
36593661
if (_enclosure.isEmpty())
36603662
_enclosure = "square"; // note different default
36613663
_rehearsalText += nextPartOfFormattedString(_e);
@@ -4429,7 +4431,7 @@ void MusicXMLParserDirection::handleChordSym(const int track, const Fraction tic
44294431
_wordsText.clear();
44304432
}
44314433

4432-
void MusicXMLParserDirection::handleTempo()
4434+
void MusicXMLParserDirection::handleTempo(QString& wordsString)
44334435
{
44344436
// Pick up any tempo markings which may have been exported from Sibelius as <words>
44354437
// eg. andante (q = c. 90)

importexport/musicxml/importmxmlpass2.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@ class MusicXMLParserDirection {
415415
Hairpin* _inferredHairpinStart = nullptr;
416416
QStringList _dynamicsList;
417417
QString _enclosure;
418+
QString _fontFamily;
418419
QString _wordsText;
419420
QString _metroText;
420421
QString _rehearsalText;
@@ -453,7 +454,7 @@ class MusicXMLParserDirection {
453454
void handleRepeats(Measure* measure, const int track, const Fraction tick);
454455
QString matchRepeat() const;
455456
void handleNmiCmi(Measure* measure, const int track, const Fraction tick, DelayedDirectionsList& delayedDirections);
456-
void handleTempo();
457+
void handleTempo(QString& wordsString);
457458
void handleChordSym(const int track, const Fraction tick, HarmonyMap& harmonyMap);
458459
bool isLikelyFingering(const QString& fingeringStr) const;
459460
bool isLikelyCredit(const Fraction& tick) const;

importexport/musicxml/musicxmlsupport.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#ifndef __MUSICXMLSUPPORT_H__
2121
#define __MUSICXMLSUPPORT_H__
2222

23+
#include "libmscore/durationtype.h"
2324
#include "libmscore/fraction.h"
2425
#include "libmscore/fret.h"
2526
#include "libmscore/note.h"
@@ -184,6 +185,7 @@ struct MusicXMLInstrument {
184185

185186
typedef QMap<QString, MusicXMLInstrument> MusicXMLInstruments;
186187
typedef QMapIterator<QString, MusicXMLInstrument> MusicXMLInstrumentsIterator;
188+
typedef QMap<QString, QPair<QString, TDuration::DurationType> > MetronomeTextMap;
187189

188190

189191
//---------------------------------------------------------

0 commit comments

Comments
 (0)