77 lines
1.4 KiB
QML
77 lines
1.4 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 {
|
|
id: root
|
|
property var title: "Whisper Traffic"
|
|
property var iconSource: "../facet.png"
|
|
property var menuItem
|
|
|
|
objectName: "whisperView"
|
|
anchors.fill: parent
|
|
|
|
property var identity: ""
|
|
Component.onCompleted: {
|
|
identity = shh.newIdentity()
|
|
console.log("New identity:", identity)
|
|
|
|
var t = shh.watch({}, root)
|
|
}
|
|
|
|
function onShhMessage(message, i) {
|
|
whisperModel.insert(0, {from: message.from, payload: eth.toAscii(message.payload)})
|
|
}
|
|
|
|
RowLayout {
|
|
id: input
|
|
anchors {
|
|
left: parent.left
|
|
leftMargin: 20
|
|
top: parent.top
|
|
topMargin: 20
|
|
}
|
|
|
|
TextField {
|
|
id: to
|
|
placeholderText: "To"
|
|
}
|
|
TextField {
|
|
id: data
|
|
placeholderText: "Data"
|
|
}
|
|
TextField {
|
|
id: topics
|
|
placeholderText: "topic1, topic2, topic3, ..."
|
|
}
|
|
Button {
|
|
text: "Send"
|
|
onClicked: {
|
|
shh.post([eth.toHex(data.text)], "", identity, topics.text.split(","), 500, 50)
|
|
}
|
|
}
|
|
}
|
|
|
|
TableView {
|
|
id: txTableView
|
|
anchors {
|
|
top: input.bottom
|
|
topMargin: 10
|
|
bottom: parent.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
TableViewColumn{ id: fromRole; role: "from" ; title: "From"; width: 300 }
|
|
TableViewColumn{ role: "payload" ; title: "Payload" ; width: parent.width - fromRole.width - 2 }
|
|
|
|
model: ListModel {
|
|
id: whisperModel
|
|
}
|
|
}
|
|
}
|