Skip to content

Commit 9cd558e

Browse files
committed
qml: remember user's peer sort preference
This sets the sort preference for the peers table in qsettings so that it can be remembered. Also addresses an issue where the `id` toggle button is always checked when you go back to the table even though the table is not sorted by `id`.
1 parent 2f08efc commit 9cd558e

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/qml/pages/node/Peers.qml

+22-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import QtQuick 2.15
66
import QtQuick.Controls 2.15
77
import QtQuick.Layouts 1.15
8+
import Qt.labs.settings 1.0
89
import org.bitcoincore.qt 1.0
910
import "../../controls"
1011
import "../../components"
@@ -28,6 +29,15 @@ Page {
2829
}
2930
}
3031

32+
Settings {
33+
id: settings
34+
property string peerListSortBy: "nodeId"
35+
}
36+
37+
Component.onCompleted: {
38+
peerListModelProxy.sortBy = settings.peerListSortBy
39+
}
40+
3141
ListView {
3242
id: listView
3343
clip: true
@@ -64,44 +74,55 @@ Page {
6474
ToggleButton {
6575
text: qsTr("ID")
6676
autoExclusive: true
67-
checked: true
77+
checked: settings.peerListSortBy === "nodeId"
6878
onClicked: {
6979
peerListModelProxy.sortBy = "nodeId"
80+
settings.peerListSortBy = "nodeId"
7081
}
7182
}
7283
ToggleButton {
7384
text: qsTr("Direction")
7485
autoExclusive: true
86+
checked: settings.peerListSortBy === "direction"
7587
onClicked: {
7688
peerListModelProxy.sortBy = "direction"
89+
settings.peerListSortBy = "direction"
7790
}
7891
}
7992
ToggleButton {
8093
text: qsTr("User Agent")
8194
autoExclusive: true
95+
checked: settings.peerListSortBy === "subversion"
8296
onClicked: {
8397
peerListModelProxy.sortBy = "subversion"
98+
settings.peerListSortBy = "subversion"
8499
}
85100
}
86101
ToggleButton {
87102
text: qsTr("Type")
88103
autoExclusive: true
104+
checked: settings.peerListSortBy === "connectionType"
89105
onClicked: {
90106
peerListModelProxy.sortBy = "connectionType"
107+
settings.peerListSortBy = "connectionType"
91108
}
92109
}
93110
ToggleButton {
94111
text: qsTr("Ip")
95112
autoExclusive: true
113+
checked: settings.peerListSortBy === "address"
96114
onClicked: {
97115
peerListModelProxy.sortBy = "address"
116+
settings.peerListSortBy = "address"
98117
}
99118
}
100119
ToggleButton {
101120
text: qsTr("Network")
102121
autoExclusive: true
122+
checked: settings.peerListSortBy === "network"
103123
onClicked: {
104124
peerListModelProxy.sortBy = "network"
125+
settings.peerListSortBy = "network"
105126
}
106127
}
107128
}

0 commit comments

Comments
 (0)