3 changed files with 214 additions and 153 deletions
@ -0,0 +1,213 @@ |
|||||||
|
import QtQuick 2.6 |
||||||
|
import QtQuick.Layouts 1.0 |
||||||
|
import QtQuick.Controls 2.3 |
||||||
|
import QtQuick.Controls.Material 2.0 |
||||||
|
|
||||||
|
import "controls" |
||||||
|
|
||||||
|
Pane { |
||||||
|
id: root |
||||||
|
padding: 0 |
||||||
|
|
||||||
|
ColumnLayout { |
||||||
|
anchors.fill: parent |
||||||
|
spacing: 0 |
||||||
|
|
||||||
|
Flickable { |
||||||
|
Layout.fillWidth: true |
||||||
|
Layout.fillHeight: true |
||||||
|
Layout.topMargin: constants.paddingLarge |
||||||
|
Layout.leftMargin: constants.paddingLarge |
||||||
|
Layout.rightMargin: constants.paddingLarge |
||||||
|
|
||||||
|
contentHeight: contentLayout.height |
||||||
|
clip: true |
||||||
|
interactive: height < contentHeight |
||||||
|
|
||||||
|
GridLayout { |
||||||
|
id: contentLayout |
||||||
|
width: parent.width |
||||||
|
columns: 2 |
||||||
|
|
||||||
|
Label { |
||||||
|
Layout.columnSpan: 2 |
||||||
|
text: qsTr('Network') |
||||||
|
font.pixelSize: constants.fontSizeLarge |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
|
||||||
|
Rectangle { |
||||||
|
Layout.columnSpan: 2 |
||||||
|
Layout.fillWidth: true |
||||||
|
height: 1 |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Proxy:'); |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
Label { |
||||||
|
text: 'mode' in Network.proxy ? qsTr('enabled') : qsTr('disabled') |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
visible: 'mode' in Network.proxy |
||||||
|
text: qsTr('Proxy server:'); |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
Label { |
||||||
|
visible: 'mode' in Network.proxy |
||||||
|
text: Network.proxy['host'] ? Network.proxy['host'] + ':' + Network.proxy['port'] : '' |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
Layout.columnSpan: 2 |
||||||
|
text: qsTr('On-chain') |
||||||
|
font.pixelSize: constants.fontSizeLarge |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
|
||||||
|
Rectangle { |
||||||
|
Layout.columnSpan: 2 |
||||||
|
Layout.fillWidth: true |
||||||
|
height: 1 |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Network:'); |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
Label { |
||||||
|
text: Network.networkName |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Server:'); |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
Label { |
||||||
|
text: Network.server |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Local Height:'); |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
Label { |
||||||
|
text: Network.height |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Status:'); |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
|
||||||
|
RowLayout { |
||||||
|
NetworkStatusIndicator {} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: Network.status |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Network fees:'); |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
Label { |
||||||
|
id: feeHistogram |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
Layout.columnSpan: 2 |
||||||
|
text: qsTr('Lightning') |
||||||
|
font.pixelSize: constants.fontSizeLarge |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
|
||||||
|
Rectangle { |
||||||
|
Layout.columnSpan: 2 |
||||||
|
Layout.fillWidth: true |
||||||
|
height: 1 |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
|
||||||
|
Label { |
||||||
|
text: qsTr('Gossip:'); |
||||||
|
color: Material.accentColor |
||||||
|
} |
||||||
|
ColumnLayout { |
||||||
|
visible: Config.useGossip |
||||||
|
Label { |
||||||
|
text: qsTr('%1 peers').arg(Network.gossipInfo.peers) |
||||||
|
} |
||||||
|
Label { |
||||||
|
text: qsTr('%1 channels to fetch').arg(Network.gossipInfo.unknown_channels) |
||||||
|
} |
||||||
|
Label { |
||||||
|
text: qsTr('%1 nodes, %2 channels').arg(Network.gossipInfo.db_nodes).arg(Network.gossipInfo.db_channels) |
||||||
|
} |
||||||
|
} |
||||||
|
Label { |
||||||
|
text: qsTr('disabled'); |
||||||
|
visible: !Config.useGossip |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
FlatButton { |
||||||
|
Layout.fillWidth: true |
||||||
|
text: qsTr('Server Settings'); |
||||||
|
icon.source: '../../icons/network.png' |
||||||
|
onClicked: { |
||||||
|
var dialog = serverConfig.createObject(root) |
||||||
|
dialog.open() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
FlatButton { |
||||||
|
Layout.fillWidth: true |
||||||
|
text: qsTr('Proxy Settings'); |
||||||
|
icon.source: '../../icons/status_connected_proxy.png' |
||||||
|
onClicked: { |
||||||
|
var dialog = proxyConfig.createObject(root) |
||||||
|
dialog.open() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
function setFeeHistogram() { |
||||||
|
var txt = '' |
||||||
|
Network.feeHistogram.forEach(function(item) { |
||||||
|
txt = txt + item[0] + ': ' + item[1] + '\n'; |
||||||
|
}) |
||||||
|
feeHistogram.text = txt.trim() |
||||||
|
} |
||||||
|
|
||||||
|
Connections { |
||||||
|
target: Network |
||||||
|
function onFeeHistogramUpdated() { |
||||||
|
setFeeHistogram() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Component { |
||||||
|
id: serverConfig |
||||||
|
ServerConfigDialog { |
||||||
|
onClosed: destroy() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Component { |
||||||
|
id: proxyConfig |
||||||
|
ProxyConfigDialog { |
||||||
|
onClosed: destroy() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Component.onCompleted: setFeeHistogram() |
||||||
|
} |
||||||
@ -1,152 +0,0 @@ |
|||||||
import QtQuick 2.6 |
|
||||||
import QtQuick.Layouts 1.0 |
|
||||||
import QtQuick.Controls 2.3 |
|
||||||
import QtQuick.Controls.Material 2.0 |
|
||||||
import QtQml 2.6 |
|
||||||
|
|
||||||
import "controls" |
|
||||||
|
|
||||||
Pane { |
|
||||||
id: root |
|
||||||
|
|
||||||
property string title: qsTr('Network') |
|
||||||
|
|
||||||
property QtObject menu: Menu { |
|
||||||
id: menu |
|
||||||
parent: Overlay.overlay |
|
||||||
dim: true |
|
||||||
Overlay.modeless: Rectangle { |
|
||||||
color: "#44000000" |
|
||||||
} |
|
||||||
MenuItem { |
|
||||||
icon.color: 'transparent' |
|
||||||
action: Action { |
|
||||||
text: qsTr('Server Settings'); |
|
||||||
onTriggered: menu.openPage(sc_comp); |
|
||||||
icon.source: '../../icons/network.png' |
|
||||||
} |
|
||||||
} |
|
||||||
MenuItem { |
|
||||||
icon.color: 'transparent' |
|
||||||
action: Action { |
|
||||||
text: qsTr('Proxy Settings'); |
|
||||||
onTriggered: menu.openPage(pc_comp); |
|
||||||
icon.source: '../../icons/status_connected_proxy.png' |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
function openPage(comp) { |
|
||||||
var dialog = comp.createObject(root) |
|
||||||
dialog.open() |
|
||||||
currentIndex = -1 |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
Component { |
|
||||||
id: sc_comp |
|
||||||
ServerConfigDialog { |
|
||||||
onClosed: destroy() |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
Component { |
|
||||||
id: pc_comp |
|
||||||
ProxyConfigDialog { |
|
||||||
onClosed: destroy() |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
GridLayout { |
|
||||||
columns: 2 |
|
||||||
|
|
||||||
Label { |
|
||||||
text: qsTr("Network: "); |
|
||||||
color: Material.primaryHighlightedTextColor; |
|
||||||
font.bold: true |
|
||||||
} |
|
||||||
Label { |
|
||||||
text: Network.networkName |
|
||||||
} |
|
||||||
|
|
||||||
Label { |
|
||||||
text: qsTr("Server: "); |
|
||||||
color: Material.primaryHighlightedTextColor; |
|
||||||
font.bold: true |
|
||||||
} |
|
||||||
Label { |
|
||||||
text: Network.server |
|
||||||
} |
|
||||||
|
|
||||||
Label { |
|
||||||
text: qsTr("Local Height: "); |
|
||||||
color: Material.primaryHighlightedTextColor; |
|
||||||
font.bold: true |
|
||||||
|
|
||||||
} |
|
||||||
Label { |
|
||||||
text: Network.height |
|
||||||
} |
|
||||||
|
|
||||||
Label { |
|
||||||
text: qsTr("Status: "); |
|
||||||
color: Material.primaryHighlightedTextColor; |
|
||||||
font.bold: true |
|
||||||
} |
|
||||||
|
|
||||||
RowLayout { |
|
||||||
NetworkStatusIndicator {} |
|
||||||
|
|
||||||
Label { |
|
||||||
text: Network.status |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
Label { |
|
||||||
text: qsTr("Network fees: "); |
|
||||||
color: Material.primaryHighlightedTextColor; |
|
||||||
font.bold: true |
|
||||||
} |
|
||||||
Label { |
|
||||||
id: feeHistogram |
|
||||||
} |
|
||||||
|
|
||||||
Label { |
|
||||||
text: qsTr("Gossip: "); |
|
||||||
color: Material.primaryHighlightedTextColor; |
|
||||||
font.bold: true |
|
||||||
} |
|
||||||
ColumnLayout { |
|
||||||
visible: Config.useGossip |
|
||||||
Label { |
|
||||||
text: qsTr('%1 peers').arg(Network.gossipInfo.peers) |
|
||||||
} |
|
||||||
Label { |
|
||||||
text: qsTr('%1 channels to fetch').arg(Network.gossipInfo.unknown_channels) |
|
||||||
} |
|
||||||
Label { |
|
||||||
text: qsTr('%1 nodes, %2 channels').arg(Network.gossipInfo.db_nodes).arg(Network.gossipInfo.db_channels) |
|
||||||
} |
|
||||||
} |
|
||||||
Label { |
|
||||||
text: qsTr("disabled"); |
|
||||||
visible: !Config.useGossip |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
function setFeeHistogram() { |
|
||||||
var txt = '' |
|
||||||
Network.feeHistogram.forEach(function(item) { |
|
||||||
txt = txt + item[0] + ': ' + item[1] + '\n'; |
|
||||||
}) |
|
||||||
feeHistogram.text = txt.trim() |
|
||||||
} |
|
||||||
|
|
||||||
Connections { |
|
||||||
target: Network |
|
||||||
function onFeeHistogramUpdated() { |
|
||||||
setFeeHistogram() |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
Component.onCompleted: setFeeHistogram() |
|
||||||
} |
|
||||||
Loading…
Reference in new issue