Skip to content

Commit

Permalink
fix #277501: support more individual text styles
Browse files Browse the repository at this point in the history
esp. for importing MuseScore 2 scores using many such styles
  • Loading branch information
Jojo-Schmitz committed Nov 15, 2019
1 parent 5f73d26 commit bf1ad8d
Show file tree
Hide file tree
Showing 7 changed files with 333 additions and 8 deletions.
7 changes: 4 additions & 3 deletions libmscore/read206.cpp
Expand Up @@ -633,11 +633,12 @@ void readTextStyle206(MStyle* style, XmlReader& e, std::map<QString, std::map<Si
}
else {
int idx = int(ss) - int(Tid::USER1);
if ((idx < 0) || (idx > 5)) {
qDebug("User style index %d outside of range [0,5].", idx);
if ((int(ss) < int(Tid::USER1)) || (int(ss) > int(Tid::USER12))) {
qDebug("User style index %d outside of range.", idx);
return;
}
Sid sid[] = { Sid::user1Name, Sid::user2Name, Sid::user3Name, Sid::user4Name, Sid::user5Name, Sid::user6Name };
Sid sid[] = { Sid::user1Name, Sid::user2Name, Sid::user3Name, Sid::user4Name, Sid::user5Name, Sid::user6Name,
Sid::user7Name, Sid::user8Name, Sid::user9Name, Sid::user10Name, Sid::user11Name, Sid::user12Name};
style->set(sid[idx], name);
}
}
Expand Down
5 changes: 3 additions & 2 deletions libmscore/score.cpp
Expand Up @@ -4455,9 +4455,10 @@ void Score::setStyle(const MStyle& s)
QString Score::getTextStyleUserName(Tid tid)
{
QString name = "";
if (int(tid) >= int(Tid::USER1) && int(tid) <= int(Tid::USER6)) {
if (int(tid) >= int(Tid::USER1) && int(tid) <= int(Tid::USER12)) {
int idx = int(tid) - int(Tid::USER1);
Sid sid[] = { Sid::user1Name, Sid::user2Name, Sid::user3Name, Sid::user4Name, Sid::user5Name, Sid::user6Name };
Sid sid[] = { Sid::user1Name, Sid::user2Name, Sid::user3Name, Sid::user4Name, Sid::user5Name, Sid::user6Name,
Sid::user7Name, Sid::user8Name, Sid::user9Name, Sid::user10Name, Sid::user11Name, Sid::user12Name};
name = styleSt(sid[idx]);
}
if (name == "")
Expand Down
207 changes: 205 additions & 2 deletions libmscore/style.cpp

Large diffs are not rendered by default.

96 changes: 96 additions & 0 deletions libmscore/style.h
Expand Up @@ -1118,6 +1118,102 @@ enum class Sid {
user6FrameFgColor,
user6FrameBgColor,

user7Name,
user7FontFace,
user7FontSize,
user7FontSpatiumDependent,
user7FontStyle,
user7Color,
user7Align,
user7Offset,
user7OffsetType,
user7FrameType,
user7FramePadding,
user7FrameWidth,
user7FrameRound,
user7FrameFgColor,
user7FrameBgColor,

user8Name,
user8FontFace,
user8FontSize,
user8FontSpatiumDependent,
user8FontStyle,
user8Color,
user8Align,
user8Offset,
user8OffsetType,
user8FrameType,
user8FramePadding,
user8FrameWidth,
user8FrameRound,
user8FrameFgColor,
user8FrameBgColor,

user9Name,
user9FontFace,
user9FontSize,
user9FontSpatiumDependent,
user9FontStyle,
user9Color,
user9Align,
user9Offset,
user9OffsetType,
user9FrameType,
user9FramePadding,
user9FrameWidth,
user9FrameRound,
user9FrameFgColor,
user9FrameBgColor,

user10Name,
user10FontFace,
user10FontSize,
user10FontSpatiumDependent,
user10FontStyle,
user10Color,
user10Align,
user10Offset,
user10OffsetType,
user10FrameType,
user10FramePadding,
user10FrameWidth,
user10FrameRound,
user10FrameFgColor,
user10FrameBgColor,

user11Name,
user11FontFace,
user11FontSize,
user11FontSpatiumDependent,
user11FontStyle,
user11Color,
user11Align,
user11Offset,
user11OffsetType,
user11FrameType,
user11FramePadding,
user11FrameWidth,
user11FrameRound,
user11FrameFgColor,
user11FrameBgColor,

user12Name,
user12FontFace,
user12FontSize,
user12FontSpatiumDependent,
user12FontStyle,
user12Color,
user12Align,
user12Offset,
user12OffsetType,
user12FrameType,
user12FramePadding,
user12FrameWidth,
user12FrameRound,
user12FrameFgColor,
user12FrameBgColor,

letRingFontFace,
letRingFontSize,
letRingFontSpatiumDependent,
Expand Down
6 changes: 6 additions & 0 deletions libmscore/types.h
Expand Up @@ -420,6 +420,12 @@ enum class Tid {
USER4,
USER5,
USER6,
USER7,
USER8,
USER9,
USER10,
USER11,
USER12,
// special, no-contents, styles used while importing older scores
TEXT_STYLES, // used for user-defined styles
IGNORED_STYLES // used for styles no longer relevant (mainly Figured bass text style)
Expand Down
12 changes: 12 additions & 0 deletions libmscore/xmlreader.cpp
Expand Up @@ -520,6 +520,18 @@ Tid XmlReader::addUserTextStyle(const QString& name)
id = Tid::USER5;
else if (userTextStyles.size() == 5)
id = Tid::USER6;
else if (userTextStyles.size() == 6)
id = Tid::USER7;
else if (userTextStyles.size() == 7)
id = Tid::USER8;
else if (userTextStyles.size() == 8)
id = Tid::USER9;
else if (userTextStyles.size() == 9)
id = Tid::USER10;
else if (userTextStyles.size() == 10)
id = Tid::USER11;
else if (userTextStyles.size() == 11)
id = Tid::USER12;
else
qDebug("too many user defined textstyles");
if (id != Tid::TEXT_STYLES)
Expand Down
8 changes: 7 additions & 1 deletion mscore/inspector/inspectorFingering.cpp
Expand Up @@ -42,7 +42,13 @@ const std::vector<Tid>& InspectorFingering::allowedTextStyles()
Tid::USER3,
Tid::USER4,
Tid::USER5,
Tid::USER6
Tid::USER6,
Tid::USER7,
Tid::USER8,
Tid::USER9,
Tid::USER10,
Tid::USER11,
Tid::USER12,
};

return _fingeringTextStyles;
Expand Down

0 comments on commit bf1ad8d

Please sign in to comment.