Skip to content

Commit af0ddf6

Browse files
committed
qml: introduce Display Settings page
1 parent dca679b commit af0ddf6

File tree

5 files changed

+133
-9
lines changed

5 files changed

+133
-9
lines changed

src/Makefile.qt.include

+1
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,7 @@ QML_RES_QML = \
393393
qml/pages/settings/SettingsBlockClockDisplayMode.qml \
394394
qml/pages/settings/SettingsConnection.qml \
395395
qml/pages/settings/SettingsDeveloper.qml \
396+
qml/pages/settings/SettingsDisplay.qml \
396397
qml/pages/settings/SettingsProxy.qml \
397398
qml/pages/settings/SettingsStorage.qml \
398399
qml/pages/settings/SettingsTheme.qml

src/qml/bitcoin_qml.qrc

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<file>pages/settings/SettingsBlockClockDisplayMode.qml</file>
5555
<file>pages/settings/SettingsConnection.qml</file>
5656
<file>pages/settings/SettingsDeveloper.qml</file>
57+
<file>pages/settings/SettingsDisplay.qml</file>
5758
<file>pages/settings/SettingsProxy.qml</file>
5859
<file>pages/settings/SettingsStorage.qml</file>
5960
<file>pages/settings/SettingsTheme.qml</file>

src/qml/controls/Theme.qml

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Control {
1212

1313
Settings {
1414
id: settings
15+
property alias dark: root.dark
1516
property alias blockclocksize: root.blockclocksize
1617
}
1718

src/qml/pages/node/NodeSettings.qml

+29-9
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,26 @@ Item {
3838
width: Math.min(parent.width, 450)
3939
anchors.horizontalCenter: parent.horizontalCenter
4040
Setting {
41+
id: gotoAbout
4142
Layout.fillWidth: true
42-
header: qsTr("Dark Mode")
43-
actionItem: OptionSwitch {
44-
checked: Theme.dark
45-
onToggled: Theme.toggleDark()
43+
header: qsTr("About")
44+
actionItem: CaretRightButton {
45+
stateColor: gotoAbout.stateColor
46+
onClicked: {
47+
nodeSettingsView.push(about_page)
48+
}
4649
}
47-
onClicked: loadedItem.toggled()
50+
onClicked: loadedItem.clicked()
4851
}
4952
Separator { Layout.fillWidth: true }
5053
Setting {
51-
id: gotoAbout
54+
id: gotoDisplay
5255
Layout.fillWidth: true
53-
header: qsTr("About")
56+
header: qsTr("Display")
5457
actionItem: CaretRightButton {
55-
stateColor: gotoAbout.stateColor
58+
stateColor: gotoDisplay.stateColor
5659
onClicked: {
57-
nodeSettingsView.push(about_page)
60+
nodeSettingsView.push(display_page)
5861
}
5962
}
6063
onClicked: loadedItem.clicked()
@@ -127,6 +130,23 @@ Item {
127130
}
128131
}
129132
}
133+
Component {
134+
id: display_page
135+
SettingsDisplay {
136+
navLeftDetail: NavButton {
137+
iconSource: "image://images/caret-left"
138+
text: qsTr("Back")
139+
onClicked: {
140+
nodeSettingsView.pop()
141+
}
142+
}
143+
navMiddleDetail: Header {
144+
headerBold: true
145+
headerSize: 18
146+
header: qsTr("Settings")
147+
}
148+
}
149+
}
130150
Component {
131151
id: storage_page
132152
SettingsStorage {
+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
// Copyright (c) 2023 The Bitcoin Core developers
2+
// Distributed under the MIT software license, see the accompanying
3+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4+
5+
import QtQuick 2.15
6+
import QtQuick.Controls 2.15
7+
import QtQuick.Layouts 1.15
8+
import "../../controls"
9+
import "../../components"
10+
11+
Item {
12+
property alias navLeftDetail: displaySettingsView.navLeftDetail
13+
property alias navMiddleDetail: displaySettingsView.navMiddleDetail
14+
StackView {
15+
id: displaySettingsView
16+
property alias navLeftDetail: displaySettings.navLeftDetail
17+
property alias navMiddleDetail: displaySettings.navMiddleDetail
18+
property bool newcompilebool: false
19+
anchors.fill: parent
20+
21+
22+
initialItem: Page {
23+
id: displaySettings
24+
property alias navLeftDetail: navbar.leftDetail
25+
property alias navMiddleDetail: navbar.middleDetail
26+
background: null
27+
implicitWidth: 450
28+
leftPadding: 20
29+
rightPadding: 20
30+
topPadding: 30
31+
32+
header: NavigationBar {
33+
id: navbar
34+
}
35+
ColumnLayout {
36+
spacing: 4
37+
width: Math.min(parent.width, 450)
38+
anchors.horizontalCenter: parent.horizontalCenter
39+
Setting {
40+
id: gotoTheme
41+
Layout.fillWidth: true
42+
header: qsTr("Theme")
43+
actionItem: CaretRightButton {
44+
stateColor: gotoTheme.stateColor
45+
onClicked: {
46+
nodeSettingsView.push(theme_page)
47+
}
48+
}
49+
onClicked: loadedItem.clicked()
50+
}
51+
Separator { Layout.fillWidth: true }
52+
Setting {
53+
id: gotoBlockClockSize
54+
Layout.fillWidth: true
55+
header: qsTr("Block clock display mode")
56+
actionItem: CaretRightButton {
57+
stateColor: gotoBlockClockSize.stateColor
58+
onClicked: {
59+
nodeSettingsView.push(blockclocksize_page)
60+
}
61+
}
62+
onClicked: loadedItem.clicked()
63+
}
64+
}
65+
}
66+
}
67+
Component {
68+
id: theme_page
69+
SettingsTheme {
70+
navLeftDetail: NavButton {
71+
iconSource: "image://images/caret-left"
72+
text: qsTr("Back")
73+
onClicked: {
74+
nodeSettingsView.pop()
75+
}
76+
}
77+
navMiddleDetail: Header {
78+
headerBold: true
79+
headerSize: 18
80+
header: qsTr("Theme")
81+
}
82+
}
83+
}
84+
Component {
85+
id: blockclocksize_page
86+
SettingsBlockClockDisplayMode {
87+
navLeftDetail: NavButton {
88+
iconSource: "image://images/caret-left"
89+
text: qsTr("Back")
90+
onClicked: {
91+
nodeSettingsView.pop()
92+
}
93+
}
94+
navMiddleDetail: Header {
95+
headerBold: true
96+
headerSize: 18
97+
header: qsTr("Block clock display mode")
98+
}
99+
}
100+
}
101+
}

0 commit comments

Comments
 (0)