mirror of
https://gitlab.com/pulsechaincom/go-pulse.git
synced 2024-12-25 21:07:17 +00:00
144 lines
2.6 KiB
QML
144 lines
2.6 KiB
QML
import QtQuick 2.0
|
|
import QtQuick.Controls 1.0;
|
|
import QtQuick.Layouts 1.0;
|
|
import QtQuick.Dialogs 1.0;
|
|
import QtQuick.Window 2.1;
|
|
import QtQuick.Controls.Styles 1.1
|
|
import Ethereum 1.0
|
|
|
|
Rectangle {
|
|
property var title: "Debug Info"
|
|
property var menuItem
|
|
|
|
objectName: "infoView"
|
|
visible: false
|
|
anchors.fill: parent
|
|
|
|
color: "#00000000"
|
|
|
|
Column {
|
|
id: info
|
|
spacing: 3
|
|
anchors.fill: parent
|
|
anchors.topMargin: 5
|
|
anchors.leftMargin: 5
|
|
|
|
Label {
|
|
id: addressLabel
|
|
text: "Address"
|
|
}
|
|
TextField {
|
|
text: eth.coinbase()
|
|
width: 500
|
|
}
|
|
|
|
TextArea {
|
|
objectName: "statsPane"
|
|
width: parent.width
|
|
height: 200
|
|
selectByMouse: true
|
|
readOnly: true
|
|
font.family: "Courier"
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
id: logLayout
|
|
width: parent.width
|
|
height: 200
|
|
anchors.bottom: parent.bottom
|
|
|
|
TableView {
|
|
id: addressView
|
|
width: parent.width
|
|
height: 200
|
|
anchors {
|
|
left: parent.left
|
|
bottom: parent.bottom
|
|
top: parent.top
|
|
}
|
|
TableViewColumn{ role: "name"; title: "name" }
|
|
TableViewColumn{ role: "address"; title: "address"; width: 300}
|
|
|
|
property var addressModel: ListModel {
|
|
id: addressModel
|
|
}
|
|
|
|
model: addressModel
|
|
itemDelegate: Item {
|
|
Text {
|
|
anchors {
|
|
left: parent.left
|
|
right: parent.right
|
|
leftMargin: 10
|
|
verticalCenter: parent.verticalCenter
|
|
}
|
|
color: styleData.textColor
|
|
elide: styleData.elideMode
|
|
text: styleData.value
|
|
font.pixelSize: 11
|
|
MouseArea {
|
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
|
propagateComposedEvents: true
|
|
anchors.fill: parent
|
|
onClicked: {
|
|
addressView.selection.clear()
|
|
addressView.selection.select(styleData.row)
|
|
|
|
if(mouse.button == Qt.RightButton) {
|
|
contextMenu.row = styleData.row;
|
|
contextMenu.popup()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Menu {
|
|
id: contextMenu
|
|
property var row;
|
|
|
|
MenuItem {
|
|
text: "Copy"
|
|
onTriggered: {
|
|
copyToClipboard(addressModel.get(this.row).address)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
property var logModel: ListModel {
|
|
id: logModel
|
|
}
|
|
|
|
function addDebugMessage(message){
|
|
debuggerLog.append({value: message})
|
|
}
|
|
|
|
function addAddress(address) {
|
|
addressModel.append({name: address.name, address: address.address})
|
|
}
|
|
|
|
function clearAddress() {
|
|
addressModel.clear()
|
|
}
|
|
|
|
function addLog(str) {
|
|
// Remove first item once we've reached max log items
|
|
if(logModel.count > 250) {
|
|
logModel.remove(0)
|
|
}
|
|
|
|
if(str.len != 0) {
|
|
if(logView.flickableItem.atYEnd) {
|
|
logModel.append({description: str})
|
|
logView.positionViewAtRow(logView.rowCount - 1, ListView.Contain)
|
|
} else {
|
|
logModel.append({description: str})
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|