Skip to content

Commit 8a574c1

Browse files
committed
Add PreferencesDialog
1 parent 52d7647 commit 8a574c1

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

src/app/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ qt_add_qml_module(${APP_TARGET}
1717
qml/main.qml
1818
qml/dialogs/AboutDialog.qml
1919
qml/dialogs/ProjectSettingsDialog.qml
20+
qml/dialogs/PreferencesDialog.qml
2021
)
2122

2223
set(QML_IMPORT_PATH "${QML_IMPORT_PATH};${CMAKE_CURRENT_LIST_DIR}"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// SPDX-License-Identifier: GPL-3.0-or-later
2+
3+
import QtQuick
4+
import QtQuick.Controls
5+
import QtQuick.Layouts
6+
import ScratchCPP.Global
7+
import ScratchCPP.Ui
8+
import ScratchCPP.UiComponents
9+
10+
CustomDialog {
11+
title: qsTr("Preferences")
12+
standardButtons: Dialog.Cancel | Dialog.Ok
13+
onOpened: Settings.freeze()
14+
onAccepted: Settings.saveChanges()
15+
onRejected: {
16+
Settings.discardChanges();
17+
ThemeEngine.reloadTheme();
18+
}
19+
20+
contentItem: ColumnLayout {
21+
// Themes
22+
Label {
23+
text: qsTr("Themes")
24+
font.pointSize: 14
25+
font.bold: true
26+
}
27+
28+
RowLayout {
29+
RadioButton {
30+
text: qsTr("Light")
31+
checked: ThemeEngine.theme === ThemeEngine.LightTheme
32+
onCheckedChanged: if(checked) ThemeEngine.theme = ThemeEngine.LightTheme
33+
}
34+
35+
RadioButton {
36+
text: qsTr("Dark")
37+
checked: ThemeEngine.theme === ThemeEngine.DarkTheme
38+
onCheckedChanged: if(checked) ThemeEngine.theme = ThemeEngine.DarkTheme
39+
}
40+
}
41+
}
42+
}

0 commit comments

Comments
 (0)