32 : m_songEditor_backgroundColor( QColor( 128, 134, 152 ) )
33 , m_songEditor_alternateRowColor( QColor( 106, 111, 126 ) )
34 , m_songEditor_virtualRowColor( QColor( 120, 112, 97 ) )
35 , m_songEditor_selectedRowColor( QColor( 149, 157, 178 ) )
36 , m_songEditor_selectedRowTextColor( QColor( 0, 0, 0 ) )
37 , m_songEditor_lineColor( QColor( 54, 57, 67 ) )
38 , m_songEditor_textColor( QColor( 206, 211, 224 ) )
39 , m_songEditor_automationBackgroundColor( QColor( 83, 89, 103 ) )
40 , m_songEditor_automationLineColor( QColor( 45, 66, 89 ) )
41 , m_songEditor_automationNodeColor( QColor( 255, 255, 255 ) )
42 , m_songEditor_stackedModeOnColor( QColor( 127, 159, 127 ) )
43 , m_songEditor_stackedModeOnNextColor( QColor( 240, 223, 175 ) )
44 , m_songEditor_stackedModeOffNextColor( QColor( 247, 100, 100 ) )
45 , m_patternEditor_backgroundColor( QColor( 165, 166, 160 ) )
46 , m_patternEditor_alternateRowColor( QColor( 133, 134, 129 ) )
47 , m_patternEditor_selectedRowColor( QColor( 194, 195, 187 ) )
48 , m_patternEditor_selectedRowTextColor( QColor( 0, 0, 0 ) )
49 , m_patternEditor_octaveRowColor( QColor( 193, 194, 186 ) )
50 , m_patternEditor_textColor( QColor( 240, 240, 240 ) )
51 , m_patternEditor_noteVelocityFullColor( QColor( 247, 100, 100 ) )
52 , m_patternEditor_noteVelocityDefaultColor( QColor( 40, 40, 40 ) )
53 , m_patternEditor_noteVelocityHalfColor( QColor( 89, 131, 175 ) )
54 , m_patternEditor_noteVelocityZeroColor( QColor( 255, 255, 255 ) )
55 , m_patternEditor_noteOffColor( QColor( 71, 79, 191 ) )
56 , m_patternEditor_lineColor( QColor(45, 45, 45) )
57 , m_patternEditor_line1Color( QColor(55, 55, 55) )
58 , m_patternEditor_line2Color( QColor(75, 75, 75) )
59 , m_patternEditor_line3Color( QColor(95, 95, 95) )
60 , m_patternEditor_line4Color( QColor(105, 105, 105) )
61 , m_patternEditor_line5Color( QColor(115, 115, 115) )
62 , m_selectionHighlightColor( QColor( 255, 255, 255 ) )
63 , m_selectionInactiveColor( QColor( 199, 199, 199 ) )
64 , m_windowColor( QColor( 58, 62, 72 ) )
65 , m_windowTextColor( QColor( 255, 255, 255 ) )
66 , m_baseColor( QColor( 88, 94, 112 ) )
67 , m_alternateBaseColor( QColor( 138, 144, 162 ) )
68 , m_textColor( QColor( 255, 255, 255 ) )
69 , m_buttonColor( QColor( 88, 94, 112 ) )
70 , m_buttonTextColor( QColor( 255, 255, 255 ) )
71 , m_lightColor( QColor( 138, 144, 162 ) )
72 , m_midLightColor( QColor( 128, 134, 152 ) )
73 , m_midColor( QColor( 58, 62, 72 ) )
74 , m_darkColor( QColor( 81, 86, 99 ) )
75 , m_shadowTextColor( QColor( 255, 255, 255 ) )
76 , m_highlightColor( QColor( 206, 150, 30 ) )
77 , m_highlightedTextColor( QColor( 255, 255, 255 ) )
78 , m_toolTipBaseColor( QColor( 227, 243, 252 ) )
79 , m_toolTipTextColor( QColor( 64, 64, 66 ) )
80 , m_widgetColor( QColor( 164, 170, 190 ) )
81 , m_widgetTextColor( QColor( 10, 10, 10 ) )
82 , m_buttonRedColor( QColor( 247, 100, 100 ) )
83 , m_buttonRedTextColor( QColor( 10, 10, 10 ) )
84 , m_spinBoxColor( QColor( 51, 74 , 100 ) )
85 , m_spinBoxTextColor( QColor( 240, 240, 240 ) )
86 , m_accentColor( QColor( 67, 96, 131 ) )
87 , m_accentTextColor( QColor( 255, 255, 255 ) )
88 , m_playheadColor( QColor( 0, 0, 0 ) )
89 , m_cursorColor( QColor( 38, 39, 44 ) )
94 : m_songEditor_backgroundColor( pOther->m_songEditor_backgroundColor )
95 , m_songEditor_alternateRowColor( pOther->m_songEditor_alternateRowColor )
96 , m_songEditor_virtualRowColor( pOther->m_songEditor_virtualRowColor )
97 , m_songEditor_selectedRowColor( pOther->m_songEditor_selectedRowColor )
98 , m_songEditor_selectedRowTextColor( pOther->m_songEditor_selectedRowTextColor )
99 , m_songEditor_lineColor( pOther->m_songEditor_lineColor )
100 , m_songEditor_textColor( pOther->m_songEditor_textColor )
101 , m_songEditor_automationBackgroundColor( pOther->m_songEditor_automationBackgroundColor )
102 , m_songEditor_automationLineColor( pOther->m_songEditor_automationLineColor )
103 , m_songEditor_automationNodeColor( pOther->m_songEditor_automationNodeColor )
104 , m_songEditor_stackedModeOnColor( pOther->m_songEditor_stackedModeOnColor )
105 , m_songEditor_stackedModeOnNextColor( pOther->m_songEditor_stackedModeOnNextColor )
106 , m_songEditor_stackedModeOffNextColor( pOther->m_songEditor_stackedModeOffNextColor )
107 , m_patternEditor_backgroundColor( pOther->m_patternEditor_backgroundColor )
108 , m_patternEditor_alternateRowColor( pOther->m_patternEditor_alternateRowColor )
109 , m_patternEditor_selectedRowColor( pOther->m_patternEditor_selectedRowColor )
110 , m_patternEditor_selectedRowTextColor( pOther->m_patternEditor_selectedRowTextColor )
111 , m_patternEditor_octaveRowColor( pOther->m_patternEditor_octaveRowColor )
112 , m_patternEditor_textColor( pOther->m_patternEditor_textColor )
113 , m_patternEditor_noteVelocityFullColor( pOther->m_patternEditor_noteVelocityFullColor )
114 , m_patternEditor_noteVelocityDefaultColor( pOther->m_patternEditor_noteVelocityDefaultColor )
115 , m_patternEditor_noteVelocityHalfColor( pOther->m_patternEditor_noteVelocityHalfColor )
116 , m_patternEditor_noteVelocityZeroColor( pOther->m_patternEditor_noteVelocityZeroColor )
117 , m_patternEditor_noteOffColor( pOther->m_patternEditor_noteOffColor )
118 , m_patternEditor_lineColor( pOther->m_patternEditor_lineColor )
119 , m_patternEditor_line1Color( pOther->m_patternEditor_line1Color )
120 , m_patternEditor_line2Color( pOther->m_patternEditor_line2Color )
121 , m_patternEditor_line3Color( pOther->m_patternEditor_line3Color )
122 , m_patternEditor_line4Color( pOther->m_patternEditor_line4Color )
123 , m_patternEditor_line5Color( pOther->m_patternEditor_line5Color )
124 , m_selectionHighlightColor( pOther->m_selectionHighlightColor )
125 , m_selectionInactiveColor( pOther->m_selectionInactiveColor )
126 , m_windowColor( pOther->m_windowColor )
127 , m_windowTextColor( pOther->m_windowTextColor )
128 , m_baseColor( pOther->m_baseColor )
129 , m_alternateBaseColor( pOther->m_alternateBaseColor )
130 , m_textColor( pOther->m_textColor )
131 , m_buttonColor( pOther->m_buttonColor )
132 , m_buttonTextColor( pOther->m_buttonTextColor )
133 , m_lightColor( pOther->m_lightColor )
134 , m_midLightColor( pOther->m_midLightColor )
135 , m_midColor( pOther->m_midColor )
136 , m_darkColor( pOther->m_darkColor )
137 , m_shadowTextColor( pOther->m_shadowTextColor )
138 , m_highlightColor( pOther->m_highlightColor )
139 , m_highlightedTextColor( pOther->m_highlightedTextColor )
140 , m_toolTipBaseColor( pOther->m_toolTipBaseColor )
141 , m_toolTipTextColor( pOther->m_toolTipTextColor )
142 , m_accentColor( pOther->m_accentColor )
143 , m_accentTextColor( pOther->m_accentTextColor )
144 , m_widgetColor( pOther->m_widgetColor )
145 , m_widgetTextColor( pOther->m_widgetTextColor )
146 , m_buttonRedColor( pOther->m_buttonRedColor )
147 , m_buttonRedTextColor( pOther->m_buttonRedTextColor )
148 , m_spinBoxColor( pOther->m_spinBoxColor )
149 , m_spinBoxTextColor( pOther->m_spinBoxTextColor )
150 , m_playheadColor( pOther->m_playheadColor )
151 , m_cursorColor( pOther->m_cursorColor )
216 m_pColorTheme->m_songEditor_backgroundColor = pOther->getColorTheme()->m_songEditor_backgroundColor;
217 m_pColorTheme->m_songEditor_alternateRowColor = pOther->getColorTheme()->m_songEditor_alternateRowColor;
218 m_pColorTheme->m_songEditor_virtualRowColor = pOther->getColorTheme()->m_songEditor_virtualRowColor;
220 pOther->getColorTheme()->m_songEditor_selectedRowColor;
222 pOther->getColorTheme()->m_songEditor_selectedRowTextColor;
223 m_pColorTheme->m_songEditor_lineColor = pOther->getColorTheme()->m_songEditor_lineColor;
224 m_pColorTheme->m_songEditor_textColor = pOther->getColorTheme()->m_songEditor_textColor;
226 pOther->getColorTheme()->m_songEditor_automationBackgroundColor;
228 pOther->getColorTheme()->m_songEditor_automationLineColor;
230 pOther->getColorTheme()->m_songEditor_automationNodeColor;
232 pOther->getColorTheme()->m_songEditor_stackedModeOnColor;
234 pOther->getColorTheme()->m_songEditor_stackedModeOnNextColor;
236 pOther->getColorTheme()->m_songEditor_stackedModeOffNextColor;
237 m_pColorTheme->m_patternEditor_backgroundColor = pOther->getColorTheme()->m_patternEditor_backgroundColor;
238 m_pColorTheme->m_patternEditor_alternateRowColor = pOther->getColorTheme()->m_patternEditor_alternateRowColor;
240 pOther->getColorTheme()->m_patternEditor_selectedRowColor;
242 pOther->getColorTheme()->m_patternEditor_selectedRowTextColor;
244 pOther->getColorTheme()->m_patternEditor_octaveRowColor;
245 m_pColorTheme->m_patternEditor_textColor = pOther->getColorTheme()->m_patternEditor_textColor;
247 pOther->getColorTheme()->m_patternEditor_noteVelocityFullColor;
249 pOther->getColorTheme()->m_patternEditor_noteVelocityDefaultColor;
251 pOther->getColorTheme()->m_patternEditor_noteVelocityHalfColor;
253 pOther->getColorTheme()->m_patternEditor_noteVelocityZeroColor;
255 pOther->getColorTheme()->m_patternEditor_noteOffColor;
256 m_pColorTheme->m_patternEditor_lineColor = pOther->getColorTheme()->m_patternEditor_lineColor;
257 m_pColorTheme->m_patternEditor_line1Color = pOther->getColorTheme()->m_patternEditor_line1Color;
258 m_pColorTheme->m_patternEditor_line2Color = pOther->getColorTheme()->m_patternEditor_line2Color;
259 m_pColorTheme->m_patternEditor_line3Color = pOther->getColorTheme()->m_patternEditor_line3Color;
260 m_pColorTheme->m_patternEditor_line4Color = pOther->getColorTheme()->m_patternEditor_line4Color;
261 m_pColorTheme->m_patternEditor_line5Color = pOther->getColorTheme()->m_patternEditor_line5Color;
262 m_pColorTheme->m_selectionHighlightColor = pOther->getColorTheme()->m_selectionHighlightColor;
263 m_pColorTheme->m_selectionInactiveColor = pOther->getColorTheme()->m_selectionInactiveColor;
264 m_pColorTheme->m_windowColor = pOther->getColorTheme()->m_windowColor;
265 m_pColorTheme->m_windowTextColor = pOther->getColorTheme()->m_windowTextColor;
266 m_pColorTheme->m_baseColor = pOther->getColorTheme()->m_baseColor;
267 m_pColorTheme->m_alternateBaseColor = pOther->getColorTheme()->m_alternateBaseColor;
268 m_pColorTheme->m_textColor = pOther->getColorTheme()->m_textColor;
269 m_pColorTheme->m_buttonColor = pOther->getColorTheme()->m_buttonColor;
270 m_pColorTheme->m_buttonTextColor = pOther->getColorTheme()->m_buttonTextColor;
271 m_pColorTheme->m_lightColor = pOther->getColorTheme()->m_lightColor;
272 m_pColorTheme->m_midLightColor = pOther->getColorTheme()->m_midLightColor;
273 m_pColorTheme->m_midColor = pOther->getColorTheme()->m_midColor;
274 m_pColorTheme->m_darkColor = pOther->getColorTheme()->m_darkColor;
275 m_pColorTheme->m_shadowTextColor = pOther->getColorTheme()->m_shadowTextColor;
276 m_pColorTheme->m_highlightColor = pOther->getColorTheme()->m_highlightColor;
277 m_pColorTheme->m_highlightedTextColor = pOther->getColorTheme()->m_highlightedTextColor;
278 m_pColorTheme->m_toolTipBaseColor = pOther->getColorTheme()->m_toolTipBaseColor;
279 m_pColorTheme->m_toolTipTextColor = pOther->getColorTheme()->m_toolTipTextColor;
280 m_pColorTheme->m_accentColor = pOther->getColorTheme()->m_accentColor;
281 m_pColorTheme->m_accentTextColor = pOther->getColorTheme()->m_accentTextColor;
282 m_pColorTheme->m_widgetColor = pOther->getColorTheme()->m_widgetColor;
283 m_pColorTheme->m_widgetTextColor = pOther->getColorTheme()->m_widgetTextColor;
284 m_pColorTheme->m_buttonRedColor = pOther->getColorTheme()->m_buttonRedColor;
285 m_pColorTheme->m_buttonRedTextColor = pOther->getColorTheme()->m_buttonRedTextColor;
286 m_pColorTheme->m_spinBoxColor = pOther->getColorTheme()->m_spinBoxColor;
287 m_pColorTheme->m_spinBoxTextColor = pOther->getColorTheme()->m_spinBoxTextColor;
288 m_pColorTheme->m_playheadColor = pOther->getColorTheme()->m_playheadColor;
289 m_pColorTheme->m_cursorColor = pOther->getColorTheme()->m_cursorColor;
292 m_pInterfaceTheme->m_fMixerFalloffSpeed = pOther->getInterfaceTheme()->m_fMixerFalloffSpeed;
294 m_pInterfaceTheme->m_scalingPolicy = pOther->getInterfaceTheme()->m_scalingPolicy;
296 m_pInterfaceTheme->m_coloringMethod = pOther->getInterfaceTheme()->m_coloringMethod;
297 m_pInterfaceTheme->m_nVisiblePatternColors = pOther->getInterfaceTheme()->m_nVisiblePatternColors;
298 m_pInterfaceTheme->m_nMaxPatternColors = pOther->getInterfaceTheme()->m_nMaxPatternColors;
299 std::vector<QColor> patternColors( pOther->getInterfaceTheme()->m_nMaxPatternColors );
300 for (
int ii = 0; ii < pOther->getInterfaceTheme()->m_nMaxPatternColors; ii++ ) {
301 patternColors[ ii ] = pOther->getInterfaceTheme()->m_patternColors[ ii ];
306 m_pFontTheme->m_sApplicationFontFamily = pOther->getFontTheme()->m_sApplicationFontFamily;
307 m_pFontTheme->m_sLevel2FontFamily = pOther->getFontTheme()->m_sLevel2FontFamily;
308 m_pFontTheme->m_sLevel3FontFamily = pOther->getFontTheme()->m_sLevel3FontFamily;
309 m_pFontTheme->m_fontSize = pOther->getFontTheme()->m_fontSize;
314 auto pColorTheme = pTheme->getColorTheme();
320 songEditorNode.
write_color(
"backgroundColor", pColorTheme->m_songEditor_backgroundColor );
321 songEditorNode.
write_color(
"alternateRowColor", pColorTheme->m_songEditor_alternateRowColor );
322 songEditorNode.
write_color(
"virtualRowColor", pColorTheme->m_songEditor_virtualRowColor );
324 pColorTheme->m_songEditor_selectedRowColor );
325 songEditorNode.
write_color(
"selectedRowTextColor",
326 pColorTheme->m_songEditor_selectedRowTextColor );
327 songEditorNode.
write_color(
"lineColor", pColorTheme->m_songEditor_lineColor );
328 songEditorNode.
write_color(
"textColor", pColorTheme->m_songEditor_textColor );
329 songEditorNode.
write_color(
"automationBackgroundColor",
330 pColorTheme->m_songEditor_automationBackgroundColor );
332 pColorTheme->m_songEditor_automationLineColor );
334 pColorTheme->m_songEditor_automationNodeColor );
336 pColorTheme->m_songEditor_stackedModeOnColor );
337 songEditorNode.
write_color(
"stackedModeOnNextColor",
338 pColorTheme->m_songEditor_stackedModeOnNextColor );
339 songEditorNode.
write_color(
"stackedModeOffNextColor",
340 pColorTheme->m_songEditor_stackedModeOffNextColor );
344 patternEditorNode.
write_color(
"backgroundColor", pColorTheme->m_patternEditor_backgroundColor );
345 patternEditorNode.
write_color(
"alternateRowColor", pColorTheme->m_patternEditor_alternateRowColor );
347 pColorTheme->m_patternEditor_selectedRowColor );
348 patternEditorNode.
write_color(
"selectedRowTextColor",
349 pColorTheme->m_patternEditor_selectedRowTextColor );
351 pColorTheme->m_patternEditor_octaveRowColor );
352 patternEditorNode.
write_color(
"textColor", pColorTheme->m_patternEditor_textColor );
353 patternEditorNode.
write_color(
"noteVelocityFullColor",
354 pColorTheme->m_patternEditor_noteVelocityFullColor );
355 patternEditorNode.
write_color(
"noteVelocityDefaultColor",
356 pColorTheme->m_patternEditor_noteVelocityDefaultColor );
357 patternEditorNode.
write_color(
"noteVelocityHalfColor",
358 pColorTheme->m_patternEditor_noteVelocityHalfColor );
359 patternEditorNode.
write_color(
"noteVelocityZeroColor",
360 pColorTheme->m_patternEditor_noteVelocityZeroColor );
361 patternEditorNode.
write_color(
"noteOffColor", pColorTheme->m_patternEditor_noteOffColor );
363 patternEditorNode.
write_color(
"lineColor", pColorTheme->m_patternEditor_lineColor );
364 patternEditorNode.
write_color(
"line1Color", pColorTheme->m_patternEditor_line1Color );
365 patternEditorNode.
write_color(
"line2Color", pColorTheme->m_patternEditor_line2Color );
366 patternEditorNode.
write_color(
"line3Color", pColorTheme->m_patternEditor_line3Color );
367 patternEditorNode.
write_color(
"line4Color", pColorTheme->m_patternEditor_line4Color );
368 patternEditorNode.
write_color(
"line5Color", pColorTheme->m_patternEditor_line5Color );
371 selectionNode.
write_color(
"highlightColor", pColorTheme->m_selectionHighlightColor );
372 selectionNode.
write_color(
"inactiveColor", pColorTheme->m_selectionInactiveColor );
375 paletteNode.
write_color(
"windowColor", pColorTheme->m_windowColor );
376 paletteNode.
write_color(
"windowTextColor", pColorTheme->m_windowTextColor );
377 paletteNode.
write_color(
"baseColor", pColorTheme->m_baseColor );
378 paletteNode.
write_color(
"alternateBaseColor", pColorTheme->m_alternateBaseColor );
379 paletteNode.
write_color(
"textColor", pColorTheme->m_textColor );
380 paletteNode.
write_color(
"buttonColor", pColorTheme->m_buttonColor );
381 paletteNode.
write_color(
"buttonTextColor", pColorTheme->m_buttonTextColor );
382 paletteNode.
write_color(
"lightColor", pColorTheme->m_lightColor );
383 paletteNode.
write_color(
"midLightColor", pColorTheme->m_midLightColor );
384 paletteNode.
write_color(
"midColor", pColorTheme->m_midColor );
385 paletteNode.
write_color(
"darkColor", pColorTheme->m_darkColor );
386 paletteNode.
write_color(
"shadowTextColor", pColorTheme->m_shadowTextColor );
387 paletteNode.
write_color(
"highlightColor", pColorTheme->m_highlightColor );
388 paletteNode.
write_color(
"highlightedTextColor", pColorTheme->m_highlightedTextColor );
389 paletteNode.
write_color(
"toolTipBaseColor", pColorTheme->m_toolTipBaseColor );
390 paletteNode.
write_color(
"toolTipTextColor", pColorTheme->m_toolTipTextColor );
393 widgetNode.
write_color(
"accentColor", pColorTheme->m_accentColor );
394 widgetNode.
write_color(
"accentTextColor", pColorTheme->m_accentTextColor );
395 widgetNode.
write_color(
"widgetColor", pColorTheme->m_widgetColor );
396 widgetNode.
write_color(
"widgetTextColor", pColorTheme->m_widgetTextColor );
397 widgetNode.
write_color(
"buttonRedColor", pColorTheme->m_buttonRedColor );
398 widgetNode.
write_color(
"buttonRedTextColor", pColorTheme->m_buttonRedTextColor );
399 widgetNode.
write_color(
"spinBoxColor", pColorTheme->m_spinBoxColor );
400 widgetNode.
write_color(
"spinBoxTextColor", pColorTheme->m_spinBoxTextColor );
401 widgetNode.
write_color(
"playheadColor", pColorTheme->m_playheadColor );
402 widgetNode.
write_color(
"cursorColor", pColorTheme->m_cursorColor );
407 auto pColorTheme = pTheme->getColorTheme();
410 XMLNode songEditorNode = parent.firstChildElement(
"songEditor" );
411 if ( ! songEditorNode.isNull() ) {
412 pColorTheme->m_songEditor_backgroundColor =
414 pColorTheme->m_songEditor_backgroundColor,
false,
false );
415 pColorTheme->m_songEditor_alternateRowColor =
416 songEditorNode.
read_color(
"alternateRowColor",
417 pColorTheme->m_songEditor_alternateRowColor,
false,
false );
418 pColorTheme->m_songEditor_virtualRowColor =
420 pColorTheme->m_songEditor_virtualRowColor,
false,
false );
421 pColorTheme->m_songEditor_selectedRowColor =
422 songEditorNode.
read_color(
"selectedRowColor",
423 pColorTheme->m_songEditor_selectedRowColor,
false,
false );
424 pColorTheme->m_songEditor_selectedRowTextColor =
425 songEditorNode.
read_color(
"selectedRowTextColor",
426 pColorTheme->m_songEditor_selectedRowTextColor,
false,
false );
427 pColorTheme->m_songEditor_lineColor =
429 pColorTheme->m_songEditor_lineColor,
false,
false );
430 pColorTheme->m_songEditor_textColor =
432 pColorTheme->m_songEditor_textColor,
false,
false );
433 pColorTheme->m_songEditor_automationBackgroundColor =
434 songEditorNode.
read_color(
"automationBackgroundColor",
435 pColorTheme->m_songEditor_automationBackgroundColor,
false,
false );
436 pColorTheme->m_songEditor_automationLineColor =
437 songEditorNode.
read_color(
"automationLineColor",
438 pColorTheme->m_songEditor_automationLineColor,
false,
false );
439 pColorTheme->m_songEditor_automationNodeColor =
440 songEditorNode.
read_color(
"automationNodeColor",
441 pColorTheme->m_songEditor_automationNodeColor,
false,
false );
442 pColorTheme->m_songEditor_stackedModeOnColor =
443 songEditorNode.
read_color(
"stackedModeOnColor",
444 pColorTheme->m_songEditor_stackedModeOnColor,
false,
false );
445 pColorTheme->m_songEditor_stackedModeOnNextColor =
446 songEditorNode.
read_color(
"stackedModeOnNextColor",
447 pColorTheme->m_songEditor_stackedModeOnNextColor,
false,
false );
448 pColorTheme->m_songEditor_stackedModeOffNextColor =
449 songEditorNode.
read_color(
"stackedModeOffNextColor",
450 pColorTheme->m_songEditor_stackedModeOffNextColor,
false,
false );
456 XMLNode patternEditorNode = parent.firstChildElement(
"patternEditor" );
457 if ( ! patternEditorNode.isNull() ) {
458 pColorTheme->m_patternEditor_backgroundColor =
459 patternEditorNode.
read_color(
"backgroundColor",
460 pColorTheme->m_patternEditor_backgroundColor,
false,
false );
461 pColorTheme->m_patternEditor_alternateRowColor =
462 patternEditorNode.
read_color(
"alternateRowColor",
463 pColorTheme->m_patternEditor_alternateRowColor,
false,
false );
464 pColorTheme->m_patternEditor_selectedRowColor =
465 patternEditorNode.
read_color(
"selectedRowColor",
466 pColorTheme->m_patternEditor_selectedRowColor,
false,
false );
467 pColorTheme->m_patternEditor_selectedRowTextColor =
468 patternEditorNode.
read_color(
"selectedRowTextColor",
469 pColorTheme->m_patternEditor_selectedRowTextColor,
false,
false );
470 pColorTheme->m_patternEditor_octaveRowColor =
471 patternEditorNode.
read_color(
"octaveRowColor",
472 pColorTheme->m_patternEditor_octaveRowColor,
false,
false );
473 pColorTheme->m_patternEditor_textColor =
475 pColorTheme->m_patternEditor_textColor,
false,
false );
476 pColorTheme->m_patternEditor_noteVelocityFullColor =
477 patternEditorNode.
read_color(
"noteVelocityFullColor",
478 pColorTheme->m_patternEditor_noteVelocityFullColor,
false,
false );
479 pColorTheme->m_patternEditor_noteVelocityDefaultColor =
480 patternEditorNode.
read_color(
"noteVelocityDefaultColor",
481 pColorTheme->m_patternEditor_noteVelocityDefaultColor,
false,
false );
482 pColorTheme->m_patternEditor_noteVelocityHalfColor =
483 patternEditorNode.
read_color(
"noteVelocityHalfColor",
484 pColorTheme->m_patternEditor_noteVelocityHalfColor,
false,
false );
485 pColorTheme->m_patternEditor_noteVelocityZeroColor =
486 patternEditorNode.
read_color(
"noteVelocityZeroColor",
487 pColorTheme->m_patternEditor_noteVelocityZeroColor,
false,
false );
488 pColorTheme->m_patternEditor_noteOffColor =
490 pColorTheme->m_patternEditor_noteOffColor,
false,
false );
491 pColorTheme->m_patternEditor_lineColor =
493 pColorTheme->m_patternEditor_lineColor,
false,
false );
494 pColorTheme->m_patternEditor_line1Color =
496 pColorTheme->m_patternEditor_line1Color,
false,
false );
497 pColorTheme->m_patternEditor_line2Color =
499 pColorTheme->m_patternEditor_line2Color,
false,
false );
500 pColorTheme->m_patternEditor_line3Color =
502 pColorTheme->m_patternEditor_line3Color,
false,
false );
503 pColorTheme->m_patternEditor_line4Color =
505 pColorTheme->m_patternEditor_line4Color,
false,
false );
506 pColorTheme->m_patternEditor_line5Color =
508 pColorTheme->m_patternEditor_line5Color,
false,
false );
510 WARNINGLOG(
"'patternEditor' node not found" );
513 XMLNode selectionNode = parent.firstChildElement(
"selection" );
514 if ( ! selectionNode.isNull() ) {
515 pColorTheme->m_selectionHighlightColor =
517 pColorTheme->m_selectionHighlightColor,
false,
false );
518 pColorTheme->m_selectionInactiveColor =
520 pColorTheme->m_selectionInactiveColor,
false,
false );
525 XMLNode paletteNode = parent.firstChildElement(
"palette" );
526 if ( ! paletteNode.isNull() ) {
527 pColorTheme->m_windowColor =
529 pColorTheme->m_windowColor,
false,
false );
530 pColorTheme->m_windowTextColor =
532 pColorTheme->m_windowTextColor,
false,
false );
533 pColorTheme->m_baseColor =
535 pColorTheme->m_baseColor,
false,
false );
536 pColorTheme->m_alternateBaseColor =
538 pColorTheme->m_alternateBaseColor,
false,
false );
539 pColorTheme->m_textColor =
541 pColorTheme->m_textColor,
false,
false );
542 pColorTheme->m_buttonColor =
544 pColorTheme->m_buttonColor,
false,
false );
545 pColorTheme->m_buttonTextColor =
547 pColorTheme->m_buttonTextColor,
false,
false );
548 pColorTheme->m_lightColor =
550 pColorTheme->m_lightColor,
false,
false );
551 pColorTheme->m_midLightColor =
553 pColorTheme->m_midLightColor,
false,
false );
554 pColorTheme->m_midColor =
556 pColorTheme->m_midColor,
false,
false );
557 pColorTheme->m_darkColor =
559 pColorTheme->m_darkColor,
false,
false );
560 pColorTheme->m_shadowTextColor =
562 pColorTheme->m_shadowTextColor,
false,
false );
563 pColorTheme->m_highlightColor =
565 pColorTheme->m_highlightColor,
false,
false );
566 pColorTheme->m_highlightedTextColor =
567 paletteNode.
read_color(
"highlightedTextColor",
568 pColorTheme->m_highlightedTextColor,
false,
false );
569 pColorTheme->m_toolTipBaseColor =
571 pColorTheme->m_toolTipBaseColor,
false,
false );
572 pColorTheme->m_toolTipTextColor =
574 pColorTheme->m_toolTipTextColor,
false,
false );
579 XMLNode widgetNode = parent.firstChildElement(
"widget" );
580 if ( ! widgetNode.isNull() ) {
581 pColorTheme->m_accentColor =
583 pColorTheme->m_accentColor,
false,
false );
584 pColorTheme->m_accentTextColor =
586 pColorTheme->m_accentTextColor,
false,
false );
587 pColorTheme->m_widgetColor =
589 pColorTheme->m_widgetColor,
false,
false );
590 pColorTheme->m_widgetTextColor =
592 pColorTheme->m_widgetTextColor,
false,
false );
593 pColorTheme->m_buttonRedColor =
595 pColorTheme->m_buttonRedColor,
false,
false );
596 pColorTheme->m_buttonRedTextColor =
598 pColorTheme->m_buttonRedTextColor,
false,
false );
599 pColorTheme->m_spinBoxColor =
601 pColorTheme->m_spinBoxColor,
false,
false );
602 pColorTheme->m_spinBoxTextColor =
604 pColorTheme->m_spinBoxTextColor,
false,
false );
605 pColorTheme->m_playheadColor =
607 pColorTheme->m_playheadColor,
false,
false );
608 pColorTheme->m_cursorColor =
610 pColorTheme->m_cursorColor,
false,
false );
621 std::shared_ptr<Theme> pTheme = std::make_shared<Theme>();
623 INFOLOG( QString(
"Importing theme to %1" ).arg( sPath ) );
626 if ( ! doc.
read( sPath,
nullptr,
true ) ) {
627 ERRORLOG(
"Unable to load theme." );
631 XMLNode rootNode = doc.firstChildElement(
"hydrogen_theme" );
632 if ( rootNode.isNull() ) {
633 ERRORLOG(
"'hydrogen_theme' node not found" );
637 XMLNode colorThemeNode = rootNode.firstChildElement(
"colorTheme" );
638 if ( ! colorThemeNode.isNull() ) {
641 ERRORLOG(
"'colorTheme' node not found" );
645 XMLNode interfaceNode = rootNode.firstChildElement(
"interfaceTheme" );
646 if ( interfaceNode.isNull() ) {
647 ERRORLOG(
"'interfaceTheme' node not found" );
650 pTheme->getInterfaceTheme()->m_layout =
652 interfaceNode.
read_int(
"defaultUILayout",
655 pTheme->getInterfaceTheme()->m_scalingPolicy =
657 interfaceNode.
read_int(
"uiScalingPolicy",
662 pTheme->getInterfaceTheme()->m_sQTStyle =
663 interfaceNode.
read_string(
"QTStyle",
"Fusion",
false,
false );
665 if ( pTheme->getInterfaceTheme()->m_sQTStyle ==
"Plastique" ){
666 pTheme->getInterfaceTheme()->m_sQTStyle =
"Fusion";
668 pTheme->getInterfaceTheme()->m_iconColor =
670 interfaceNode.
read_int(
"iconColor",
675 pTheme->getInterfaceTheme()->m_fMixerFalloffSpeed =
676 interfaceNode.
read_float(
"mixer_falloff_speed",
680 pTheme->getInterfaceTheme()->m_coloringMethod =
682 interfaceNode.
read_int(
"SongEditor_ColoringMethod",
685 std::vector<QColor> colors( pTheme->getInterfaceTheme()->m_nMaxPatternColors );
686 for (
int ii = 0; ii < pTheme->getInterfaceTheme()->m_nMaxPatternColors; ii++ ) {
687 colors[ ii ] = interfaceNode.
read_color( QString(
"SongEditor_pattern_color_%1" ).arg( ii ),
688 pTheme->getColorTheme()->m_accentColor,
691 pTheme->getInterfaceTheme()->m_patternColors = colors;
692 pTheme->getInterfaceTheme()->m_nVisiblePatternColors =
693 interfaceNode.
read_int(
"SongEditor_visible_pattern_colors", 1,
false,
false );
694 if ( pTheme->getInterfaceTheme()->m_nVisiblePatternColors > 50 ) {
695 pTheme->getInterfaceTheme()->m_nVisiblePatternColors = 50;
696 }
else if ( pTheme->getInterfaceTheme()->m_nVisiblePatternColors < 0 ) {
697 pTheme->getInterfaceTheme()->m_nVisiblePatternColors = 0;
700 XMLNode fontNode = rootNode.firstChildElement(
"fontTheme" );
701 if ( fontNode.isNull() ) {
702 ERRORLOG(
"'fontTheme' node not found" );
706 pTheme->getFontTheme()->m_sApplicationFontFamily =
708 pTheme->getFontTheme()->m_sApplicationFontFamily,
false,
false );
711 pTheme->getFontTheme()->m_sLevel2FontFamily =
713 pTheme->getFontTheme()->m_sLevel2FontFamily,
false,
false );
714 pTheme->getFontTheme()->m_sLevel3FontFamily =
716 pTheme->getFontTheme()->m_sLevel3FontFamily,
false,
false );
717 pTheme->getFontTheme()->m_fontSize =