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 "mscore.h"
24 :
25 : #include "figuredbass.h"
26 : #include "hairpin.h"
27 : #include "ottava.h"
28 : #include "score.h"
29 : #include "spanner.h"
30 : #include "volta.h"
31 :
32 : namespace mu::engraving {
33 : bool MScore::debugMode = false;
34 : bool MScore::testMode = false;
35 : bool MScore::testWriteStyleToScore = true;
36 :
37 : bool MScore::noHorizontalStretch = false;
38 : bool MScore::noVerticalStretch = false;
39 : bool MScore::useFallbackFont = true;
40 :
41 : bool MScore::saveTemplateMode = false;
42 : bool MScore::noGui = false;
43 :
44 : int MScore::_vRaster;
45 : int MScore::_hRaster;
46 : bool MScore::_verticalOrientation = false;
47 : double MScore::verticalPageGap = 0.35 * DPMM;
48 : double MScore::horizontalPageGapEven = 0.07 * DPMM;
49 : double MScore::horizontalPageGapOdd = 3.5 * DPMM;
50 :
51 : bool MScore::warnPitchRange;
52 : bool MScore::warnGuitarBends;
53 : int MScore::pedalEventsMinTicks;
54 :
55 : double MScore::nudgeStep;
56 : double MScore::nudgeStep10;
57 : double MScore::nudgeStep50;
58 :
59 : bool MScore::noImages = false;
60 : bool MScore::pdfPrinting = false;
61 : bool MScore::svgPrinting = false;
62 :
63 : extern void initDrumset();
64 :
65 : MsError MScore::_error { MsError::MS_NO_ERROR };
66 : bool MScore::_errorIsWarning = false;
67 :
68 16 : void MScore::registerUiTypes()
69 : {
70 : #ifndef ENGRAVING_NO_API
71 16 : qRegisterMetaType<Spanner::Anchor>("Anchor");
72 16 : qRegisterMetaType<SegmentType>("SegmentType");
73 16 : qRegisterMetaType<FiguredBassItem::Modifier>("Modifier");
74 16 : qRegisterMetaType<FiguredBassItem::Parenthesis>("Parenthesis");
75 16 : qRegisterMetaType<FiguredBassItem::ContLine>("ContLine");
76 16 : qRegisterMetaType<Volta::Type>("VoltaType");
77 16 : qRegisterMetaType<OttavaType>("OttavaType");
78 16 : qRegisterMetaType<TrillType>("TrillType");
79 16 : qRegisterMetaType<JumpType>("JumpType");
80 16 : qRegisterMetaType<MarkerType>("MarkerType");
81 16 : qRegisterMetaType<HairpinType>("HairpinType");
82 16 : qRegisterMetaType<LyricsSyllabic>("Syllabic");
83 :
84 : #endif
85 16 : }
86 :
87 0 : std::string MScore::errorToString(MsError err)
88 : {
89 0 : switch (err) {
90 0 : case MsError::MS_NO_ERROR: return "MS_NO_ERROR";
91 0 : case MsError::NO_NOTE_SELECTED: return "NO_NOTE_SELECTED";
92 0 : case MsError::NO_CHORD_REST_SELECTED: return "NO_CHORD_REST_SELECTED";
93 0 : case MsError::NO_LYRICS_SELECTED: return "NO_LYRICS_SELECTED";
94 0 : case MsError::NO_NOTE_REST_SELECTED: return "NO_NOTE_REST_SELECTED";
95 0 : case MsError::NO_FLIPPABLE_SELECTED: return "NO_FLIPPABLE_SELECTED";
96 0 : case MsError::NO_MEASURE_SELECTED: return "NO_MEASURE_SELECTED";
97 0 : case MsError::NO_STAFF_SELECTED: return "NO_STAFF_SELECTED";
98 0 : case MsError::NO_NOTE_FIGUREDBASS_SELECTED: return "NO_NOTE_FIGUREDBASS_SELECTED";
99 0 : case MsError::NO_NOTE_REST_HARMONY_SELECTED: return "NO_NOTE_REST_HARMONY_SELECTED";
100 0 : case MsError::CANNOT_INSERT_TUPLET: return "CANNOT_INSERT_TUPLET";
101 0 : case MsError::CANNOT_SPLIT_TUPLET: return "CANNOT_SPLIT_TUPLET";
102 0 : case MsError::CANNOT_SPLIT_MEASURE_FIRST_BEAT: return "CANNOT_SPLIT_MEASURE_FIRST_BEAT";
103 0 : case MsError::CANNOT_SPLIT_MEASURE_TUPLET: return "CANNOT_SPLIT_MEASURE_TUPLET";
104 0 : case MsError::INSUFFICIENT_MEASURES: return "INSUFFICIENT_MEASURES";
105 0 : case MsError::CANNOT_SPLIT_MEASURE_REPEAT: return "CANNOT_SPLIT_MEASURE_REPEAT";
106 0 : case MsError::CANNOT_SPLIT_MEASURE_TOO_SHORT: return "CANNOT_SPLIT_MEASURE_TOO_SHORT";
107 0 : case MsError::CANNOT_REMOVE_TIME_TUPLET: return "CANNOT_REMOVE_TIME_TUPLET";
108 0 : case MsError::CANNOT_REMOVE_TIME_MEASURE_REPEAT: return "CANNOT_REMOVE_TIME_MEASURE_REPEAT";
109 0 : case MsError::NO_DEST: return "NO_DEST";
110 0 : case MsError::SOURCE_PARTIAL_TUPLET: return "SOURCE_PARTIAL_TUPLET";
111 0 : case MsError::DEST_TUPLET: return "DEST_TUPLET";
112 0 : case MsError::TUPLET_CROSSES_BAR: return "TUPLET_CROSSES_BAR";
113 0 : case MsError::DEST_LOCAL_TIME_SIGNATURE: return "DEST_LOCAL_TIME_SIGNATURE";
114 0 : case MsError::SOURCE_PARTIAL_TREMOLO: return "SOURCE_PARTIAL_TREMOLO";
115 0 : case MsError::DEST_TREMOLO: return "DEST_TREMOLO";
116 0 : case MsError::NO_MIME: return "NO_MIME";
117 0 : case MsError::DEST_NO_CR: return "DEST_NO_CR";
118 0 : case MsError::CANNOT_CHANGE_LOCAL_TIMESIG_MEASURE_NOT_EMPTY: return "CANNOT_CHANGE_LOCAL_TIMESIG_MEASURE_NOT_EMPTY";
119 0 : case MsError::CANNOT_CHANGE_LOCAL_TIMESIG_HAS_EXCERPTS: return "CANNOT_CHANGE_LOCAL_TIMESIG_HAS_EXCERPTS";
120 0 : case MsError::CORRUPTED_MEASURE: return "CORRUPTED_MEASURE";
121 0 : case MsError::CANNOT_REMOVE_KEY_SIG: return "CANNOT_REMOVE_KEY_SIG";
122 0 : case MsError::CANNOT_JOIN_MEASURE_STAFFTYPE_CHANGE: return "CANNOT_JOIN_MEASURE_STAFFTYPE_CHANGE";
123 0 : case MsError::CANNOT_REPEAT_SELECTION: return "CANNOT_REPEAT_SELECTION";
124 0 : case MsError::TRANSPOSE_NO_FRET_DIAGRAM: return "TRANSPOSE_NO_FRET_DIAGRAM";
125 0 : case MsError::CANNOT_EXPLODE_IMPLODE_LOCAL_TIMESIG: return "CANNOT_EXPLODE_IMPLODE_LOCAL_TIMESIG";
126 0 : case MsError::NO_SPACE_FOR_TUPLET: return "NO_SPACE_FOR_TUPLET";
127 0 : case MsError::TUPLET_NOTE_VALUE_TOO_SHORT: return "TUPLET_NOTE_VALUE_TOO_SHORT";
128 : }
129 :
130 0 : return {};
131 : }
132 : }
|