LCOV - code coverage report
Current view: top level - src/notationscene/widgets - editstyleutils.cpp Coverage Total Hit
Test: filtered_coverage.info Lines: 0.0 % 242 0
Test Date: 2026-11-05 04:07:02

            Line data    Source code
       1              : /*
       2              :  * SPDX-License-Identifier: GPL-3.0-only
       3              :  * MuseScore-Studio-CLA-applies
       4              :  *
       5              :  * MuseScore Studio
       6              :  * Music Composition & Notation
       7              :  *
       8              :  * Copyright (C) 2021 MuseScore Limited and others
       9              :  *
      10              :  * This program is free software: you can redistribute it and/or modify
      11              :  * it under the terms of the GNU General Public License version 3 as
      12              :  * published by the Free Software Foundation.
      13              :  *
      14              :  * This program is distributed in the hope that it will be useful,
      15              :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      16              :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      17              :  * GNU General Public License for more details.
      18              :  *
      19              :  * You should have received a copy of the GNU General Public License
      20              :  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
      21              :  */
      22              : 
      23              : #include "editstyleutils.h"
      24              : 
      25              : #include "engraving/dom/engravingitem.h"
      26              : #include "engraving/dom/text.h"
      27              : #include "engraving/dom/textline.h"
      28              : #include "engraving/types/types.h"
      29              : 
      30              : #include "log.h"
      31              : 
      32              : using namespace mu::engraving;
      33              : using namespace mu::notation;
      34              : 
      35              : // Keep in sync with ALL_PAGE_CODES in editstyle.cpp
      36            0 : QString EditStyleUtils::pageCodeForElement(const EngravingItem* element)
      37              : {
      38            0 :     IF_ASSERT_FAILED(element) {
      39            0 :         return QString();
      40              :     }
      41              : 
      42            0 :     switch (element->type()) {
      43            0 :     case ElementType::SCORE:
      44            0 :         return "score";
      45              : 
      46            0 :     case ElementType::PAGE:
      47            0 :         return "spacing";
      48              : 
      49            0 :     case ElementType::INSTRUMENT_NAME:
      50            0 :         return "instrument-names";
      51              : 
      52            0 :     case ElementType::TEXT:
      53              :     case ElementType::HARP_DIAGRAM: {
      54            0 :         if (element->isText()) {
      55            0 :             if (toText(element)->textStyleType() == TextStyleType::FOOTER
      56            0 :                 || toText(element)->textStyleType() == TextStyleType::HEADER) {
      57            0 :                 return "header-and-footer";
      58              :             }
      59              :         }
      60            0 :         return "text-styles";
      61              :     }
      62              : 
      63            0 :     case ElementType::MEASURE_NUMBER:
      64              :     case ElementType::MMREST_RANGE:
      65            0 :         return "measure-number";
      66              : 
      67            0 :     case ElementType::BRACKET:
      68              :     case ElementType::BRACKET_ITEM:
      69              :     case ElementType::SYSTEM_DIVIDER:
      70            0 :         return "system";
      71              : 
      72            0 :     case ElementType::CLEF:
      73              :     case ElementType::KEYSIG:
      74              :     case ElementType::TIMESIG:
      75            0 :         return "clefs-key-and-time-signatures";
      76              : 
      77            0 :     case ElementType::ACCIDENTAL:
      78            0 :         return "accidentals";
      79              : 
      80            0 :     case ElementType::MEASURE:
      81            0 :         return "spacing";
      82              : 
      83            0 :     case ElementType::BAR_LINE:
      84            0 :         return "barlines";
      85              : 
      86            0 :     case ElementType::NOTE:
      87              :     case ElementType::CHORD:
      88              :     case ElementType::STEM:
      89              :     case ElementType::STEM_SLASH:
      90              :     case ElementType::LEDGER_LINE:
      91              :     case ElementType::NOTEDOT:
      92            0 :         return "notes";
      93              : 
      94            0 :     case ElementType::REST:
      95              :     case ElementType::MMREST:
      96            0 :         return "rests";
      97              : 
      98            0 :     case ElementType::MEASURE_REPEAT:
      99              :     case ElementType::PLAY_COUNT_TEXT:
     100            0 :         return "repeats";
     101              : 
     102            0 :     case ElementType::BEAM:
     103            0 :         return "beams";
     104              : 
     105            0 :     case ElementType::TUPLET:
     106            0 :         return "tuplets";
     107              : 
     108            0 :     case ElementType::ARPEGGIO:
     109            0 :         return "arpeggios";
     110              : 
     111            0 :     case ElementType::SLUR:
     112              :     case ElementType::SLUR_SEGMENT:
     113              :     case ElementType::TIE:
     114              :     case ElementType::TIE_SEGMENT:
     115              :     case ElementType::LAISSEZ_VIB:
     116              :     case ElementType::LAISSEZ_VIB_SEGMENT:
     117              :     case ElementType::PARTIAL_TIE:
     118              :     case ElementType::PARTIAL_TIE_SEGMENT:
     119            0 :         return "slurs-and-ties";
     120              : 
     121            0 :     case ElementType::HAMMER_ON_PULL_OFF:
     122              :     case ElementType::HAMMER_ON_PULL_OFF_SEGMENT:
     123              :     case ElementType::HAMMER_ON_PULL_OFF_TEXT:
     124            0 :         return "hammer-ons-pull-offs-and-tapping";
     125              : 
     126            0 :     case ElementType::HAIRPIN:
     127              :     case ElementType::HAIRPIN_SEGMENT:
     128            0 :         return "dynamics-hairpins";
     129              : 
     130            0 :     case ElementType::VOLTA:
     131              :     case ElementType::VOLTA_SEGMENT:
     132            0 :         return "volta";
     133              : 
     134            0 :     case ElementType::OTTAVA:
     135              :     case ElementType::OTTAVA_SEGMENT:
     136            0 :         return "ottava";
     137              : 
     138            0 :     case ElementType::PEDAL:
     139              :     case ElementType::PEDAL_SEGMENT:
     140            0 :         return "pedal";
     141              : 
     142            0 :     case ElementType::TRILL:
     143              :     case ElementType::TRILL_SEGMENT:
     144            0 :         return "trill";
     145              : 
     146            0 :     case ElementType::VIBRATO:
     147              :     case ElementType::VIBRATO_SEGMENT:
     148            0 :         return "vibrato";
     149              : 
     150            0 :     case ElementType::BEND:
     151              :     case ElementType::GUITAR_BEND:
     152              :     case ElementType::GUITAR_BEND_SEGMENT:
     153              :     case ElementType::GUITAR_BEND_HOLD:
     154              :     case ElementType::GUITAR_BEND_HOLD_SEGMENT:
     155              :     case ElementType::GUITAR_BEND_TEXT:
     156            0 :         return "bend";
     157              : 
     158            0 :     case ElementType::TEXTLINE:
     159            0 :         return element->isTextLine() && toTextLine(element)->systemFlag() ? "system-text-line" : "text-line";
     160            0 :     case ElementType::TEXTLINE_SEGMENT:
     161            0 :         return element->isTextLineSegment() && toTextLineSegment(element)->systemFlag()
     162            0 :                ? "system-text-line" : "text-line";
     163              : 
     164            0 :     case ElementType::GLISSANDO:
     165              :     case ElementType::GLISSANDO_SEGMENT:
     166              :     case ElementType::NOTELINE:
     167              :     case ElementType::NOTELINE_SEGMENT:
     168            0 :         return "glissando-note-line";
     169              : 
     170            0 :     case ElementType::ARTICULATION:
     171            0 :         return "articulations-and-ornaments";
     172              : 
     173            0 :     case ElementType::FERMATA:
     174            0 :         return "fermatas";
     175              : 
     176            0 :     case ElementType::PLAYTECH_ANNOTATION:
     177              :     case ElementType::STAFF_TEXT:
     178            0 :         return "staff-text";
     179              : 
     180            0 :     case ElementType::STAVE_SHARING_LABEL:
     181            0 :         return "stave-sharing";
     182              : 
     183            0 :     case ElementType::TEMPO_TEXT:
     184            0 :         return "tempo-text";
     185              : 
     186            0 :     case ElementType::LYRICS:
     187              :     case ElementType::LYRICSLINE:
     188              :     case ElementType::PARTIAL_LYRICSLINE:
     189              :     case ElementType::LYRICSLINE_SEGMENT:
     190              :     case ElementType::PARTIAL_LYRICSLINE_SEGMENT:
     191            0 :         return "lyrics";
     192              : 
     193            0 :     case ElementType::EXPRESSION:
     194            0 :         return "expression";
     195              : 
     196            0 :     case ElementType::DYNAMIC:
     197            0 :         return "dynamics-hairpins";
     198              : 
     199            0 :     case ElementType::REHEARSAL_MARK:
     200            0 :         return "rehearsal-marks";
     201              : 
     202            0 :     case ElementType::FIGURED_BASS:
     203            0 :         return "figured-bass";
     204              : 
     205            0 :     case ElementType::HARMONY:
     206            0 :         return "chord-symbols";
     207              : 
     208            0 :     case ElementType::FRET_DIAGRAM:
     209            0 :         return "fretboard-diagrams";
     210              : 
     211            0 :     default: return QString();
     212              :     }
     213              : }
     214              : 
     215              : // Keep in sync with ALL_TEXT_STYLE_SUBPAGE_CODES in editstyle.cpp
     216            0 : QString EditStyleUtils::subPageCodeForElement(const EngravingItem* element)
     217              : {
     218            0 :     IF_ASSERT_FAILED(element) {
     219            0 :         return QString();
     220              :     }
     221              : 
     222            0 :     if (pageCodeForElement(element) == "text-styles" && element->isTextBase()) {
     223            0 :         switch (toTextBase(element)->textStyleType()) {
     224            0 :         case TextStyleType::TITLE:
     225            0 :             return "title";
     226              : 
     227            0 :         case TextStyleType::SUBTITLE:
     228            0 :             return "subtitle";
     229              : 
     230            0 :         case TextStyleType::COMPOSER:
     231            0 :             return "composer";
     232              : 
     233            0 :         case TextStyleType::LYRICIST:
     234            0 :             return "poet";
     235              : 
     236            0 :         case TextStyleType::TRANSLATOR:
     237            0 :             return "translator";
     238              : 
     239            0 :         case TextStyleType::FRAME:
     240            0 :             return "frame";
     241              : 
     242            0 :         case TextStyleType::INSTRUMENT_EXCERPT:
     243            0 :             return "instrument-name-part";
     244              : 
     245            0 :         case TextStyleType::INSTRUMENT_LONG:
     246            0 :             return "instrument-name-long";
     247              : 
     248            0 :         case TextStyleType::INSTRUMENT_SHORT:
     249            0 :             return "instrument-name-short";
     250              : 
     251            0 :         case TextStyleType::INSTRUMENT_CHANGE:
     252            0 :             return "instrument-change";
     253              : 
     254            0 :         case TextStyleType::HEADER:
     255            0 :             return "header";
     256              : 
     257            0 :         case TextStyleType::FOOTER:
     258            0 :             return "footer";
     259              : 
     260            0 :         case TextStyleType::COPYRIGHT:
     261            0 :             return "copyright";
     262              : 
     263            0 :         case TextStyleType::PAGE_NUMBER:
     264            0 :             return "page-number";
     265              : 
     266            0 :         case TextStyleType::MEASURE_NUMBER:
     267            0 :             return "measure-number";
     268              : 
     269            0 :         case TextStyleType::MEASURE_NUMBER_ALTERNATE:
     270            0 :             return "measure-number-alternate";
     271              : 
     272            0 :         case TextStyleType::MMREST_RANGE:
     273            0 :             return "multimeasure-rest-range";
     274              : 
     275            0 :         case TextStyleType::TEMPO:
     276            0 :             return "tempo";
     277              : 
     278            0 :         case TextStyleType::TEMPO_CHANGE:
     279            0 :             return "tempo-change";
     280              : 
     281            0 :         case TextStyleType::METRONOME:
     282            0 :             return "metronome";
     283              : 
     284            0 :         case TextStyleType::REPEAT_PLAY_COUNT:
     285            0 :             return "repeat-play-count";
     286              : 
     287            0 :         case TextStyleType::REPEAT_LEFT:
     288            0 :             return "repeat-text-left";
     289              : 
     290            0 :         case TextStyleType::REPEAT_RIGHT:
     291            0 :             return "repeat-text-right";
     292              : 
     293            0 :         case TextStyleType::REHEARSAL_MARK:
     294            0 :             return "rehearsal-mark";
     295              : 
     296            0 :         case TextStyleType::SYSTEM:
     297            0 :             return "system";
     298              : 
     299            0 :         case TextStyleType::STAFF:
     300            0 :             return "staff";
     301              : 
     302            0 :         case TextStyleType::STAVE_SHARING:
     303            0 :             return "stave-sharing";
     304              : 
     305            0 :         case TextStyleType::EXPRESSION:
     306            0 :             return "expression";
     307              : 
     308            0 :         case TextStyleType::HAIRPIN:
     309            0 :             return "hairpin";
     310              : 
     311            0 :         case TextStyleType::LYRICS_ODD:
     312            0 :             return "lyrics-odd-lines";
     313              : 
     314            0 :         case TextStyleType::LYRICS_EVEN:
     315            0 :             return "lyrics-even-lines";
     316              : 
     317            0 :         case TextStyleType::HARMONY_A:
     318            0 :             return "chord-symbols";
     319              : 
     320            0 :         case TextStyleType::HARMONY_B:
     321            0 :             return "chord-symbols-alternate";
     322              : 
     323            0 :         case TextStyleType::HARMONY_ROMAN:
     324            0 :             return "roman-numeral-analysis";
     325              : 
     326            0 :         case TextStyleType::HARMONY_NASHVILLE:
     327            0 :             return "nashville-number";
     328              : 
     329            0 :         case TextStyleType::TUPLET:
     330            0 :             return "tuplet";
     331              : 
     332            0 :         case TextStyleType::ARTICULATION:
     333            0 :             return "articulation";
     334              : 
     335            0 :         case TextStyleType::STICKING:
     336            0 :             return "sticking";
     337              : 
     338            0 :         case TextStyleType::FINGERING:
     339            0 :             return "fingering";
     340              : 
     341            0 :         case TextStyleType::TAB_FRET_NUMBER:
     342            0 :             return "tab-fret-number";
     343              : 
     344            0 :         case TextStyleType::LH_GUITAR_FINGERING:
     345            0 :             return "lh-guitar-fingering";
     346              : 
     347            0 :         case TextStyleType::RH_GUITAR_FINGERING:
     348            0 :             return "rh-guitar-fingering";
     349              : 
     350            0 :         case TextStyleType::HAMMER_ON_PULL_OFF:
     351            0 :             return "hammer-ons-pull-offs-and-tapping";
     352              : 
     353            0 :         case TextStyleType::STRING_NUMBER:
     354            0 :             return "string-number";
     355              : 
     356            0 :         case TextStyleType::STRING_TUNINGS:
     357            0 :             return "string-tunings";
     358              : 
     359            0 :         case TextStyleType::FRET_DIAGRAM_FINGERING:
     360            0 :             return "fretboard-diagram-fingering";
     361              : 
     362            0 :         case TextStyleType::FRET_DIAGRAM_FRET_NUMBER:
     363            0 :             return "fretboard-diagram-fret-number";
     364              : 
     365            0 :         case TextStyleType::HARP_PEDAL_DIAGRAM:
     366            0 :             return "harp-pedal-diagram";
     367              : 
     368            0 :         case TextStyleType::HARP_PEDAL_TEXT_DIAGRAM:
     369            0 :             return "harp-pedal-text-diagram";
     370              : 
     371            0 :         case TextStyleType::TEXTLINE:
     372            0 :             return "text-line";
     373              : 
     374            0 :         case TextStyleType::SYSTEM_TEXTLINE:
     375            0 :             return "system-text-line";
     376              : 
     377            0 :         case TextStyleType::NOTELINE:
     378            0 :             return "note-line";
     379              : 
     380            0 :         case TextStyleType::VOLTA:
     381            0 :             return "volta";
     382              : 
     383            0 :         case TextStyleType::OTTAVA:
     384            0 :             return "ottava";
     385              : 
     386            0 :         case TextStyleType::GLISSANDO:
     387            0 :             return "glissando";
     388              : 
     389            0 :         case TextStyleType::PEDAL:
     390            0 :             return "pedal";
     391              : 
     392            0 :         case TextStyleType::BEND:
     393            0 :             return "bend";
     394              : 
     395            0 :         case TextStyleType::LET_RING:
     396            0 :             return "let-ring";
     397              : 
     398            0 :         case TextStyleType::WHAMMY_BAR:
     399            0 :             return "whammy-bar";
     400              : 
     401            0 :         case TextStyleType::PALM_MUTE:
     402            0 :             return "palm-mute";
     403              : 
     404            0 :         case TextStyleType::USER1:
     405            0 :             return "user1";
     406              : 
     407            0 :         case TextStyleType::USER2:
     408            0 :             return "user2";
     409              : 
     410            0 :         case TextStyleType::USER3:
     411            0 :             return "user3";
     412              : 
     413            0 :         case TextStyleType::USER4:
     414            0 :             return "user4";
     415              : 
     416            0 :         case TextStyleType::USER5:
     417            0 :             return "user5";
     418              : 
     419            0 :         case TextStyleType::USER6:
     420            0 :             return "user6";
     421              : 
     422            0 :         case TextStyleType::USER7:
     423            0 :             return "user7";
     424              : 
     425            0 :         case TextStyleType::USER8:
     426            0 :             return "user8";
     427              : 
     428            0 :         case TextStyleType::USER9:
     429            0 :             return "user9";
     430              : 
     431            0 :         case TextStyleType::USER10:
     432            0 :             return "user10";
     433              : 
     434            0 :         case TextStyleType::USER11:
     435            0 :             return "user11";
     436              : 
     437            0 :         case TextStyleType::USER12:
     438            0 :             return "user12";
     439              : 
     440            0 :         case TextStyleType::DYNAMICS:
     441              :         case TextStyleType::DEFAULT:
     442              :         case TextStyleType::GROUP_BRACKET:
     443              :         case TextStyleType::TEXT_TYPES:
     444              :         case TextStyleType::IGNORED_TYPES:
     445            0 :             return QString();
     446              :         }
     447              :     }
     448            0 :     return QString();
     449              : }
        

Generated by: LCOV version 2.0-1