From d691e77295bb50da9ed3d480be50715d5b2705df Mon Sep 17 00:00:00 2001 From: rettinghaus Date: Thu, 16 Jan 2025 16:43:45 +0100 Subject: [PATCH] Add multiplication sign for time signatures plus some more (-, / =) Backport of #27107 --- libmscore/utils.cpp | 50 ++++++++++++++++++++++-------------- mscore/timesigproperties.cpp | 34 ++++++++++++------------ 2 files changed, 48 insertions(+), 36 deletions(-) diff --git a/libmscore/utils.cpp b/libmscore/utils.cpp index 3738dfba5a17e..9f44e2e93e63e 100644 --- a/libmscore/utils.cpp +++ b/libmscore/utils.cpp @@ -1006,32 +1006,44 @@ std::vector toTimeSigString(const QString& s) SymId id; }; static const std::vector 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::timeSigPlusSmall }, + { '-', 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 }, }; diff --git a/mscore/timesigproperties.cpp b/mscore/timesigproperties.cpp index 6798fcf13b19c..6ba956294f486 100644 --- a/mscore/timesigproperties.cpp +++ b/mscore/timesigproperties.cpp @@ -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 { @@ -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 accept '(', ')', '*' (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); @@ -96,15 +94,17 @@ TimeSigProperties::TimeSigProperties(TimeSig* t, QWidget* parent) Icons icon; }; static const std::vector 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();