diff --git a/ethereal/assets/qml/views/chain.qml b/ethereal/assets/qml/views/chain.qml index 270018eb2..9fbc02954 100644 --- a/ethereal/assets/qml/views/chain.qml +++ b/ethereal/assets/qml/views/chain.qml @@ -73,6 +73,13 @@ Rectangle { MenuSeparator{} + MenuItem { + text: "Copy" + onTriggered: { + copyToClipboard(blockModel.get(this.row).hash) + } + } + MenuItem { text: "Dump State" onTriggered: { diff --git a/ethereal/assets/qml/views/info.qml b/ethereal/assets/qml/views/info.qml index 3335a306a..60b6a62ec 100644 --- a/ethereal/assets/qml/views/info.qml +++ b/ethereal/assets/qml/views/info.qml @@ -57,6 +57,47 @@ Rectangle { TableViewColumn{ role: "address"; title: "address"; width: 300} 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 { diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml index 30e1071f7..45514f7c1 100644 --- a/ethereal/assets/qml/wallet.qml +++ b/ethereal/assets/qml/wallet.qml @@ -17,6 +17,17 @@ ApplicationWindow { title: "Ethereal" + TextField { + id: copyElementHax + visible: false + } + + function copyToClipboard(text) { + copyElementHax.text = text + copyElementHax.selectAll() + copyElementHax.copy() + } + // Takes care of loading all default plugins Component.onCompleted: { var historyView = addPlugin("./views/history.qml", {title: "History"}) diff --git a/ethereal/gui.go b/ethereal/gui.go index 6149b39b7..7a36a8b02 100644 --- a/ethereal/gui.go +++ b/ethereal/gui.go @@ -482,6 +482,11 @@ func (gui *Gui) update() { reactor.Subscribe("peerList", peerChan) } +func (gui *Gui) CopyToClipboard(data string) { + //clipboard.WriteAll("test") + fmt.Println("COPY currently BUGGED. Here are the contents:\n", data) +} + func (gui *Gui) setPeerInfo() { gui.win.Root().Call("setPeers", fmt.Sprintf("%d / %d", gui.eth.PeerCount(), gui.eth.MaxPeers))