@@ -1986,6 +1986,23 @@ void MainWindow::cycleThemes() {
1986
1986
updateColourTheme ();
1987
1987
}
1988
1988
1989
+ void MainWindow::colourThemeMenuChanged (int themeID) {
1990
+ if (themeID == 2 ) {
1991
+ piSettings->themeStyle = SonicPiTheme::DarkMode;
1992
+ } else if (themeID == 3 ) {
1993
+ piSettings->themeStyle = SonicPiTheme::LightProMode;
1994
+ } else if (themeID == 4 ) {
1995
+ piSettings->themeStyle = SonicPiTheme::DarkProMode;
1996
+ } else if (themeID == 5 ) {
1997
+ piSettings->themeStyle = SonicPiTheme::HighContrastMode;
1998
+ } else {
1999
+ piSettings->themeStyle = SonicPiTheme::LightMode;
2000
+ }
2001
+
2002
+ emit settingsChanged ();
2003
+ updateColourTheme ();
2004
+ }
2005
+
1989
2006
void MainWindow::logAutoScrollMenuChanged () {
1990
2007
piSettings->log_auto_scroll = logAutoScrollAct->isChecked ();
1991
2008
emit settingsChanged ();
@@ -2029,6 +2046,29 @@ void MainWindow::toggleIcons() {
2029
2046
}
2030
2047
2031
2048
void MainWindow::updateColourTheme (){
2049
+ QSignalBlocker lightBlocker ( lightThemeAct );
2050
+ lightThemeAct->setChecked (false );
2051
+ QSignalBlocker darkBlocker ( darkThemeAct );
2052
+ darkThemeAct->setChecked (false );
2053
+ QSignalBlocker proLightBlocker ( proLightThemeAct );
2054
+ proLightThemeAct->setChecked (false );
2055
+ QSignalBlocker proDarkBlocker ( proDarkThemeAct );
2056
+ proDarkThemeAct->setChecked (false );
2057
+ QSignalBlocker highContrastBlocker ( highContrastThemeAct );
2058
+ highContrastThemeAct->setChecked (false );
2059
+
2060
+ if ( piSettings->themeStyle == SonicPiTheme::LightMode ) {
2061
+ lightThemeAct->setChecked (true );
2062
+ } else if ( piSettings->themeStyle == SonicPiTheme::DarkMode ) {
2063
+ darkThemeAct->setChecked (true );
2064
+ } else if ( piSettings->themeStyle == SonicPiTheme::LightProMode ) {
2065
+ proLightThemeAct->setChecked (true );
2066
+ } else if ( piSettings->themeStyle == SonicPiTheme::DarkProMode ) {
2067
+ proDarkThemeAct->setChecked (true );
2068
+ } else if ( piSettings->themeStyle == SonicPiTheme::HighContrastMode ) {
2069
+ highContrastThemeAct->setChecked (true );
2070
+ }
2071
+
2032
2072
theme->switchStyle ( piSettings->themeStyle );
2033
2073
statusBar ()->showMessage (tr (" Colour Theme: " )+theme->getName (), 2000 );
2034
2074
@@ -2863,6 +2903,39 @@ void MainWindow::createToolBar()
2863
2903
2864
2904
viewMenu->addAction (fullScreenAct);
2865
2905
viewMenu->addSeparator ();
2906
+
2907
+ lightThemeAct = new QAction (tr (" Light" ));
2908
+ lightThemeAct->setCheckable (true );
2909
+ lightThemeAct->setChecked (false );
2910
+ connect (lightThemeAct, &QAction::triggered, [this ](){ colourThemeMenuChanged (1 );});
2911
+
2912
+ darkThemeAct = new QAction (tr (" Dark" ));
2913
+ darkThemeAct->setCheckable (true );
2914
+ darkThemeAct->setChecked (false );
2915
+ connect (darkThemeAct, &QAction::triggered, [this ](){ colourThemeMenuChanged (2 );});
2916
+
2917
+ proLightThemeAct = new QAction (tr (" Pro Light" ));
2918
+ proLightThemeAct->setCheckable (true );
2919
+ proLightThemeAct->setChecked (false );
2920
+ connect (proLightThemeAct, &QAction::triggered, [this ](){ colourThemeMenuChanged (3 );});
2921
+
2922
+ proDarkThemeAct = new QAction (tr (" Pro Dark" ));
2923
+ proDarkThemeAct->setCheckable (true );
2924
+ proDarkThemeAct->setChecked (false );
2925
+ connect (proDarkThemeAct, &QAction::triggered, [this ](){ colourThemeMenuChanged (4 );});
2926
+
2927
+ highContrastThemeAct = new QAction (tr (" High Contrast" ));
2928
+ highContrastThemeAct->setCheckable (true );
2929
+ highContrastThemeAct->setChecked (false );
2930
+ connect (highContrastThemeAct, &QAction::triggered, [this ](){ colourThemeMenuChanged (5 );});
2931
+
2932
+ themeMenu = viewMenu->addMenu (" Colour Theme" );
2933
+ themeMenu->addAction (lightThemeAct);
2934
+ themeMenu->addAction (darkThemeAct);
2935
+ themeMenu->addAction (proLightThemeAct);
2936
+ themeMenu->addAction (proDarkThemeAct);
2937
+ themeMenu->addAction (highContrastThemeAct);
2938
+
2866
2939
viewMenu->addAction (showLogAct);
2867
2940
viewMenu->addAction (showCuesAct);
2868
2941
viewMenu->addAction (showContextAct);
0 commit comments