Skip to content

Commit

Permalink
Add multiplication sign for time signatures
Browse files Browse the repository at this point in the history
Backport of #27107 plus some more (-, / =)
  • Loading branch information
rettinghaus authored and Jojo-Schmitz committed Jan 17, 2025
1 parent 88e08e8 commit ab220f8
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 36 deletions.
50 changes: 31 additions & 19 deletions libmscore/utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1006,32 +1006,44 @@ std::vector<SymId> toTimeSigString(const QString& s)
SymId id;
};
static const std::vector<Dict> dict = {
{ 43, SymId::timeSigPlusSmall }, // '+'
{ 48, SymId::timeSig0 }, // '0'
{ 49, SymId::timeSig1 }, // '1'
{ 50, SymId::timeSig2 }, // '2'
{ 51, SymId::timeSig3 }, // '3'
{ 52, SymId::timeSig4 }, // '4'
{ 53, SymId::timeSig5 }, // '5'
{ 54, SymId::timeSig6 }, // '6'
{ 55, SymId::timeSig7 }, // '7'
{ 56, SymId::timeSig8 }, // '8'
{ 57, SymId::timeSig9 }, // '9'
{ 67, SymId::timeSigCommon }, // 'C'
{ 40, SymId::timeSigParensLeftSmall }, // '('
{ 41, SymId::timeSigParensRightSmall }, // ')'
{ 162, SymId::timeSigCutCommon }, // '¢'
{ 189, SymId::timeSigFractionHalf },
{ 188, SymId::timeSigFractionQuarter },
{ '+', SymId::timeSigPlus },
{ '-', SymId::timeSigMinus },
{ '0', SymId::timeSig0 },
{ '1', SymId::timeSig1 },
{ '2', SymId::timeSig2 },
{ '3', SymId::timeSig3 },
{ '4', SymId::timeSig4 },
{ '5', SymId::timeSig5 },
{ '6', SymId::timeSig6 },
{ '7', SymId::timeSig7 },
{ '8', SymId::timeSig8 },
{ '9', SymId::timeSig9 },
{ 'c', SymId::timeSigCommon },
{ 'C', SymId::timeSigCommon },
{ '(', SymId::timeSigParensLeftSmall },
{ ')', SymId::timeSigParensRightSmall },
{ u'¢', SymId::timeSigCutCommon },
{ u'½', SymId::timeSigFractionHalf },
{ u'¼', SymId::timeSigFractionQuarter },
{ '=', SymId::timeSigEquals },
{ '/', SymId::timeSigFractionalSlash },
{ u'÷', SymId::timeSigSlash },
{ '*', SymId::timeSigMultiply },
{ 'X', SymId::timeSigMultiply },
{ 'x', SymId::timeSigMultiply },
{ u'×', SymId::timeSigMultiply },
{ 59664, SymId::mensuralProlation1 },
{ 79, SymId::mensuralProlation2 }, // 'O'
{ 'o', SymId::mensuralProlation2 },
{ 'O', SymId::mensuralProlation2 },
{ 59665, SymId::mensuralProlation2 },
{ 216, SymId::mensuralProlation3 }, // 'Ø'
{ u'Ø', SymId::mensuralProlation3 },
{ 59666, SymId::mensuralProlation3 },
{ 59667, SymId::mensuralProlation4 },
{ 59668, SymId::mensuralProlation5 },
{ 59669, SymId::mensuralProlation6 },
{ 59670, SymId::mensuralProlation7 },
{ 59671, SymId::mensuralProlation8 },
{ 59672, SymId::mensuralProlation9 },
{ 59673, SymId::mensuralProlation10 },
{ 59674, SymId::mensuralProlation11 },
};
Expand Down
34 changes: 17 additions & 17 deletions mscore/timesigproperties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,16 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//=============================================================================

#include "exampleview.h"
#include "icons.h"
#include "musescore.h"
#include "timesigproperties.h"

#include "libmscore/timesig.h"
#include "libmscore/mcursor.h"
#include "libmscore/durationtype.h"
#include "libmscore/score.h"
#include "libmscore/chord.h"
#include "libmscore/measure.h"
#include "libmscore/part.h"
#include "exampleview.h"
#include "menus.h"
#include "musescore.h"
#include "icons.h"

namespace Ms {

Expand All @@ -50,8 +48,8 @@ TimeSigProperties::TimeSigProperties(TimeSig* t, QWidget* parent)
zText->setText(timesig->numeratorString());
nText->setText(timesig->denominatorString());
// set validators for numerator and denominator strings
// which only accept '+', '(', ')', digits and some time symb conventional representations
QRegExp rx("[0-9+CO()\\x00A2\\x00D8\\x00BD\\x00BC]*");
// which only accepts '(', ')', '*' (and 'x', 'X', '×'), '+', '-', '/' (and '÷'), digits, '=', and some time symb conventional representations
QRegExp rx("[()\\*+\\-/0-9=COXcox\\x00A2\\x00BD\\x00BC\\x00D7\\x00D8\\x00F7\\xE910-\\xE91A]*");
QValidator *validator = new QRegExpValidator(rx, this);
zText->setValidator(validator);
nText->setValidator(validator);
Expand Down Expand Up @@ -96,15 +94,17 @@ TimeSigProperties::TimeSigProperties(TimeSig* t, QWidget* parent)
Icons icon;
};
static const std::vector<ProlatioTable> prolatioList = {
{ SymId::mensuralProlation1, Icons::timesig_prolatio01_ICON }, // tempus perfectum, prol. perfecta
{ SymId::mensuralProlation2, Icons::timesig_prolatio02_ICON }, // tempus perfectum, prol. imperfecta
{ SymId::mensuralProlation3, Icons::timesig_prolatio03_ICON }, // tempus perfectum, prol. imperfecta, dimin.
{ SymId::mensuralProlation4, Icons::timesig_prolatio04_ICON }, // tempus perfectum, prol. perfecta, dimin.
{ SymId::mensuralProlation5, Icons::timesig_prolatio05_ICON }, // tempus imperf. prol. perfecta
{ SymId::mensuralProlation7, Icons::timesig_prolatio07_ICON }, // tempus imperf., prol. imperfecta, reversed
{ SymId::mensuralProlation8, Icons::timesig_prolatio08_ICON }, // tempus imperf., prol. perfecta, dimin.
{ SymId::mensuralProlation10, Icons::timesig_prolatio10_ICON }, // tempus imperf., prol imperfecta, dimin., reversed
{ SymId::mensuralProlation11, Icons::timesig_prolatio11_ICON }, // tempus inperf., prol. perfecta, reversed
{ SymId::mensuralProlation1, Icons::timesig_prolatio01_ICON }, // Tempus perfectum cum prolatione perfecta (9/8)
{ SymId::mensuralProlation2, Icons::timesig_prolatio02_ICON }, // Tempus perfectum cum prolatione imperfecta (3/4)
{ SymId::mensuralProlation3, Icons::timesig_prolatio03_ICON }, // Tempus perfectum cum prolatione imperfecta diminution 1 (3/8)
{ SymId::mensuralProlation4, Icons::timesig_prolatio04_ICON }, // Tempus perfectum cum prolatione perfecta diminution 2 (9/16)
{ SymId::mensuralProlation5, Icons::timesig_prolatio05_ICON }, // Tempus imperfectum cum prolatione perfecta (6/8)
//{ SymId::mensuralProlation6, Icons::timesig_prolatio06_ICON }, // Tempus imperfectum cum prolatione imperfecta (2/4)
{ SymId::mensuralProlation7, Icons::timesig_prolatio07_ICON }, // Tempus imperfectum cum prolatione imperfecta diminution 1 (2/2)
{ SymId::mensuralProlation8, Icons::timesig_prolatio08_ICON }, // Tempus imperfectum cum prolatione imperfecta diminution 2 (6/16)
//{ SymId::mensuralProlation9, Icons::timesig_prolatio09_ICON }, // Tempus imperfectum cum prolatione imperfecta diminution 3 (2/2)
{ SymId::mensuralProlation10, Icons::timesig_prolatio10_ICON }, // Tempus imperfectum cum prolatione imperfecta diminution 4
{ SymId::mensuralProlation11, Icons::timesig_prolatio11_ICON }, // Tempus imperfectum cum prolatione imperfecta diminution 5
};

ScoreFont* scoreFont = gscore->scoreFont();
Expand Down

0 comments on commit ab220f8

Please sign in to comment.