Skip to content

Commit f83a294

Browse files
committed
GUI - menu - add new items - colour themes
1 parent 72525de commit f83a294

File tree

2 files changed

+76
-2
lines changed

2 files changed

+76
-2
lines changed

app/gui/qt/mainwindow.cpp

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1986,6 +1986,23 @@ void MainWindow::cycleThemes() {
19861986
updateColourTheme();
19871987
}
19881988

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+
19892006
void MainWindow::logAutoScrollMenuChanged() {
19902007
piSettings->log_auto_scroll = logAutoScrollAct->isChecked();
19912008
emit settingsChanged();
@@ -2029,6 +2046,29 @@ void MainWindow::toggleIcons() {
20292046
}
20302047

20312048
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+
20322072
theme->switchStyle( piSettings->themeStyle );
20332073
statusBar()->showMessage(tr("Colour Theme: ")+theme->getName(), 2000);
20342074

@@ -2863,6 +2903,39 @@ void MainWindow::createToolBar()
28632903

28642904
viewMenu->addAction(fullScreenAct);
28652905
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+
28662939
viewMenu->addAction(showLogAct);
28672940
viewMenu->addAction(showCuesAct);
28682941
viewMenu->addAction(showContextAct);

app/gui/qt/mainwindow.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ class MainWindow : public QMainWindow
186186
void changeAutoIndentOnRun();
187187
void cycleThemes();
188188
void updateColourTheme();
189+
void colourThemeMenuChanged(int themeID);
189190
void updatePrefsIcon();
190191
void togglePrefs();
191192
void updateDocPane(QListWidgetItem *cur);
@@ -306,7 +307,7 @@ class MainWindow : public QMainWindow
306307

307308
void addUniversalCopyShortcuts(QTextEdit *te);
308309

309-
QMenu *liveMenu, *codeMenu, *audioMenu, *displayMenu, *viewMenu, *ioMenu, *ioMidiInMenu, *ioMidiOutMenu, *ioMidiOutChannelMenu, *localIpAddressesMenu;
310+
QMenu *liveMenu, *codeMenu, *audioMenu, *displayMenu, *viewMenu, *ioMenu, *ioMidiInMenu, *ioMidiOutMenu, *ioMidiOutChannelMenu, *localIpAddressesMenu, *themeMenu;
310311

311312
SonicPiSettings *piSettings;
312313

@@ -360,7 +361,7 @@ class MainWindow : public QMainWindow
360361

361362
QToolBar *toolBar;
362363

363-
QAction *exitAct, *runAct, *stopAct, *saveAsAct, *loadFileAct, *recAct, *textAlignAct, *textIncAct, *textDecAct, *scopeAct, *infoAct, *helpAct, *prefsAct, *focusEditorAct, *focusLogsAct, *focusContextAct, *focusCuesAct, *focusPreferencesAct, *focusHelpListingAct, *focusHelpDetailsAct, *focusErrorsAct, *showLineNumbersAct, *showAutoCompletionAct, *showContextAct, *audioSafeAct, *audioTimingGuaranteesAct, *enableExternalSynthsAct, *mixerInvertStereoAct, *mixerForceMonoAct, *midiEnabledAct, *enableOSCServerAct, *allowRemoteOSCAct, *showLogAct, *showCuesAct, *logAutoScrollAct, *logCuesAct, *logSynthsAct, *clearOutputOnRunAct, *autoIndentOnRunAct, *showButtonsAct, *showTabsAct, *fullScreenAct;
364+
QAction *exitAct, *runAct, *stopAct, *saveAsAct, *loadFileAct, *recAct, *textAlignAct, *textIncAct, *textDecAct, *scopeAct, *infoAct, *helpAct, *prefsAct, *focusEditorAct, *focusLogsAct, *focusContextAct, *focusCuesAct, *focusPreferencesAct, *focusHelpListingAct, *focusHelpDetailsAct, *focusErrorsAct, *showLineNumbersAct, *showAutoCompletionAct, *showContextAct, *audioSafeAct, *audioTimingGuaranteesAct, *enableExternalSynthsAct, *mixerInvertStereoAct, *mixerForceMonoAct, *midiEnabledAct, *enableOSCServerAct, *allowRemoteOSCAct, *showLogAct, *showCuesAct, *logAutoScrollAct, *logCuesAct, *logSynthsAct, *clearOutputOnRunAct, *autoIndentOnRunAct, *showButtonsAct, *showTabsAct, *fullScreenAct, *lightThemeAct, *darkThemeAct, *proLightThemeAct, *proDarkThemeAct, *highContrastThemeAct;
364365
QShortcut *runSc, *stopSc, *saveAsSc, *loadFileSc, *recSc, *textAlignSc, *textIncSc, *textDecSc, *scopeSc, *infoSc, *helpSc, *prefsSc, *focusEditorSc, *focusLogsSc, *focusContextSc, *focusCuesSc, *focusPreferencesSc, *focusHelpListingSc, *focusHelpDetailsSc, *focusErrorsSc;
365366

366367
SettingsWidget *settingsWidget;

0 commit comments

Comments
 (0)