diff options
author | obscuren <geffobscura@gmail.com> | 2014-08-14 23:01:37 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-08-14 23:01:37 +0800 |
commit | 1fd69e956949671806b23b7ec1feec4f6c416a81 (patch) | |
tree | e807a5564dd81c75b550aeb12405d51f3704d125 /ethereal/assets | |
parent | 612b631823c0cb80f0e559c533b32b6890349761 (diff) | |
download | dexon-1fd69e956949671806b23b7ec1feec4f6c416a81.tar.gz dexon-1fd69e956949671806b23b7ec1feec4f6c416a81.tar.zst dexon-1fd69e956949671806b23b7ec1feec4f6c416a81.zip |
Implemented "messages"
Diffstat (limited to 'ethereal/assets')
-rw-r--r-- | ethereal/assets/ext/ethereum.js | 33 | ||||
-rw-r--r-- | ethereal/assets/qml/wallet.qml | 55 | ||||
-rw-r--r-- | ethereal/assets/qml/webapp.qml | 8 |
3 files changed, 73 insertions, 23 deletions
diff --git a/ethereal/assets/ext/ethereum.js b/ethereal/assets/ext/ethereum.js index 9970c6379..5b8fb54f3 100644 --- a/ethereal/assets/ext/ethereum.js +++ b/ethereal/assets/ext/ethereum.js @@ -95,6 +95,10 @@ window.eth = { postData({call: "transact", args: [params.from, params.to, params.value, params.gas, params.gasPrice, "0x"+data]}, cb); }, + getMessages: function(filter, cb) { + postData({call: "messages", args: [filter]}, cb); + }, + getStorageAt: function(address, storageAddress, cb) { postData({call: "getStorage", args: [address, storageAddress]}, cb); }, @@ -209,4 +213,33 @@ window.eth = { } window.eth._callbacks = {} window.eth._onCallbacks = {} +function postData(data, cb) { + data._seed = Math.floor(Math.random() * 1000000) + if(cb) { + eth._callbacks[data._seed] = cb; + } + + if(data.args === undefined) { + data.args = []; + } + + navigator.qt.postMessage(JSON.stringify(data)); +} +navigator.qt.onmessage = function(ev) { + var data = JSON.parse(ev.data) + + if(data._event !== undefined) { + eth.trigger(data._event, data.data); + } else { + if(data._seed) { + var cb = eth._callbacks[data._seed]; + if(cb) { + cb.call(this, data.data) + + // Remove the "trigger" callback + delete eth._callbacks[ev._seed]; + } + } + } +} diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml index 769edfc6a..b35500209 100644 --- a/ethereal/assets/qml/wallet.qml +++ b/ethereal/assets/qml/wallet.qml @@ -98,7 +98,7 @@ ApplicationWindow { MenuItem { text: "Debugger" shortcut: "Ctrl+d" - onTriggered: ui.startDebugger() + onTriggered: eth.startDebugger() } MenuItem { @@ -282,9 +282,10 @@ ApplicationWindow { /* Component { id: menuItemTemplate - Rectangle { + + RowLayout { property var view; - property var source; + property alias source: icon.source; property alias title: title.text height: 25 @@ -295,11 +296,9 @@ ApplicationWindow { right: parent.right } - Label { - id: title - y: parent.height / 2 - this.height / 2 - x: 5 - font.pixelSize: 10 + Image { + id: icon + //anchors.horizontalCenter: parent.horizontalCenter } MouseArea { @@ -309,21 +308,32 @@ ApplicationWindow { } } - Image { - id: closeButton - y: parent.height / 2 - this.height / 2 - visible: false - - source: "../close.png" - anchors { - right: parent.right - rightMargin: 5 + Rectangle { + color: "#bbbbbb" + Label { + id: title + y: parent.height / 2 - this.height / 2 + //x: 5 + font.pixelSize: 10 } - MouseArea { - anchors.fill: parent - onClicked: { - console.log("should close") + + Image { + id: closeButton + y: parent.height / 2 - this.height / 2 + visible: false + + source: "../close.png" + anchors { + right: parent.right + rightMargin: 5 + } + + MouseArea { + anchors.fill: parent + onClicked: { + console.log("should close") + } } } } @@ -331,7 +341,6 @@ ApplicationWindow { } */ - function createMenuItem(icon, view, options) { if(options === undefined) { options = {}; @@ -340,8 +349,8 @@ ApplicationWindow { var comp = menuItemTemplate.createObject(menuColumn) comp.view = view comp.source = icon + //comp.title = options.title /* - comp.title = options.title if(options.canClose) { //comp.closeButton.visible = options.canClose } diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml index a0ec52752..48b410787 100644 --- a/ethereal/assets/qml/webapp.qml +++ b/ethereal/assets/qml/webapp.qml @@ -238,6 +238,14 @@ ApplicationWindow { break; + case "messages": + require(1); + + var messages = JSON.parse(eth.getMessages(data.args[0])) + postData(data._seed, messages) + + break + case "debug": console.log(data.args[0]); break; |