diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml
index 2c8d1f2413..1a14697e6a 100644
--- a/ethereal/assets/qml/wallet.qml
+++ b/ethereal/assets/qml/wallet.qml
@@ -30,27 +30,27 @@ ApplicationWindow {
MenuItem {
text: "Test test"
shortcut: "Ctrl+t"
- onTriggered: {
- var win
- function finishedLoading(){
- console.log("Trigged")
- win = wizard.createObject(root)
- }
- console.log("Loading wizard")
-
- var wizard = Qt.createComponent("first_run.qml")
- if(wizard.status== Component.Ready){
- console.log("Component is ready")
- finishedLoading()
- }else if( wizard.status == Component.Error){
- console.log("Error loading component:", wizard.errorString())
- }
- else{
- wizard.statusChanged.connect(finishedLoading)
- console.log("Component is NOT ready")
- win = wizard.createObject(root)
- }
- }
+ onTriggered: {
+ var win
+ function finishedLoading(){
+ console.log("Trigged")
+ win = wizard.createObject(root)
+ }
+ console.log("Loading wizard")
+
+ var wizard = Qt.createComponent("first_run.qml")
+ if(wizard.status== Component.Ready){
+ console.log("Component is ready")
+ finishedLoading()
+ }else if( wizard.status == Component.Error){
+ console.log("Error loading component:", wizard.errorString())
+ }
+ else{
+ wizard.statusChanged.connect(finishedLoading)
+ console.log("Component is NOT ready")
+ win = wizard.createObject(root)
+ }
+ }
}
}
@@ -187,52 +187,89 @@ ApplicationWindow {
anchors.bottomMargin: 5
id: newTransactionTab
Component.onCompleted:{
- addTab("Send ether", newTransaction)
+ addTab("Simple send", newTransaction)
addTab("Create contract", newContract)
}
}
Component {
id: newTransaction
Column {
+ id: simpleSendColumn
+ states: [
+ State{
+ name: "ERROR"
+ },
+ State {
+ name: "DONE"
+ PropertyChanges { target: txSimpleValue; visible:false}
+ PropertyChanges { target: txSimpleRecipient; visible:false}
+ PropertyChanges { target:newSimpleTxButton; visible:false}
+
+ PropertyChanges { target: txSimpleResult; visible:true}
+ PropertyChanges { target: txSimpleOutput; visible:true}
+ PropertyChanges { target:newSimpleTxButton; visible:true}
+ },
+ State {
+ name: "SETUP"
+ PropertyChanges { target: txSimpleValue; visible:true; text: ""}
+ PropertyChanges { target: txSimpleRecipient; visible:true; text: ""}
+ PropertyChanges { target: txSimpleButton; visible:true}
+ PropertyChanges { target:newSimpleTxButton; visible:false}
+ }
+ ]
spacing: 5
anchors.leftMargin: 5
anchors.topMargin: 5
anchors.top: parent.top
anchors.left: parent.left
+
+ function checkFormState(){
+ if(txSimpleRecipient.text.length == 40 && txSimpleValue.text.length > 0) {
+ txSimpleButton.state = "READY"
+ }else{
+ txSimpleButton.state = "NOTREADY"
+ }
+ }
+
TextField {
id: txSimpleRecipient
placeholderText: "Recipient address"
Layout.fillWidth: true
- validator: RegExpValidator { regExp: /[a-f0-9]{40}/ }
+ validator: RegExpValidator { regExp: /[a-f0-9]{40}/ }
width: 530
+ onTextChanged: { checkFormState() }
}
TextField {
id: txSimpleValue
placeholderText: "Amount"
anchors.rightMargin: 5
validator: IntValidator { }
+ onTextChanged: { checkFormState() }
}
Button {
id: txSimpleButton
+ states: [
+ State {
+ name: "READY"
+ PropertyChanges { target: txSimpleButton; enabled: true}
+ },
+ State {
+ name: "NOTREADY"
+ PropertyChanges { target: txSimpleButton; enabled: false}
+ }
+ ]
text: "Send"
+ enabled: false
onClicked: {
//this.enabled = false
var res = eth.createTx(txSimpleRecipient.text, txSimpleValue.text,"","","")
if(res[1]) {
txSimpleResult.text = "There has been an error broadcasting your transaction:" + res[1].error()
- txSimpleResult.visible = true
} else {
txSimpleResult.text = "Your transaction has been broadcasted over the network.\nYour transaction id is:"
txSimpleOutput.text = res[0]
- txSimpleOutput.visible = true
- txSimpleResult.visible = true
- txSimpleValue.visible = false
- txSimpleRecipient.visible = false
- txSimpleValue.text = ""
- txSimpleRecipient.text = ""
- txSimpleRecipient.focus = true
- newSimpleTxButton.visible = true
- this.visible = false
+ this.visible = false
+ simpleSendColumn.state = "DONE"
}
}
}
@@ -247,18 +284,12 @@ ApplicationWindow {
width: 530
}
Button {
- id: newSimpleTxButton
+ id: newSimpleTxButton
visible: false
text: "Create an other transaction"
onClicked: {
this.visible = false
- txSimpleResult.text = ""
- txSimpleOutput.text = ""
- txSimpleResult.visible = false
- txSimpleOutput.visible = false
- txSimpleValue.visible = true
- txSimpleRecipient.visible = true
- txSimpleButton.visible = true
+ simpleSendColumn.state = "SETUP"
}
}
}
@@ -266,49 +297,49 @@ ApplicationWindow {
Component {
id: newContract
Column {
- id: mainContractColumn
- function contractFormReady(){
- if(codeView.text.length > 0 && txValue.text.length > 0 && txGas.text.length > 0 && txGasPrice.length > 0) {
- txButton.state = "READY"
- }else{
- txButton.state = "NOTREADY"
- }
- }
- states: [
- State{
- name: "ERROR"
- PropertyChanges { target: txResult; visible:true}
- PropertyChanges { target: codeView; visible:true}
- },
- State {
- name: "DONE"
- PropertyChanges { target: txValue; visible:false}
- PropertyChanges { target: txGas; visible:false}
- PropertyChanges { target: txGasPrice; visible:false}
- PropertyChanges { target: codeView; visible:false}
- PropertyChanges { target: txButton; visible:false}
- PropertyChanges { target: txDataLabel; visible:false}
-
- PropertyChanges { target: txResult; visible:true}
- PropertyChanges { target: txOutput; visible:true}
- PropertyChanges { target: newTxButton; visible:true}
- },
- State {
- name: "SETUP"
- PropertyChanges { target: txValue; visible:true; text: ""}
- PropertyChanges { target: txGas; visible:true; text: ""}
- PropertyChanges { target: txGasPrice; visible:true; text: ""}
- PropertyChanges { target: codeView; visible:true; text: ""}
- PropertyChanges { target: txButton; visible:true}
- PropertyChanges { target: txDataLabel; visible:true}
-
- PropertyChanges { target: txResult; visible:false}
- PropertyChanges { target: txOutput; visible:false}
- PropertyChanges { target: newTxButton; visible:false}
- }
- ]
+ id: mainContractColumn
+ function contractFormReady(){
+ if(codeView.text.length > 0 && txValue.text.length > 0 && txGas.text.length > 0 && txGasPrice.length > 0) {
+ txButton.state = "READY"
+ }else{
+ txButton.state = "NOTREADY"
+ }
+ }
+ states: [
+ State{
+ name: "ERROR"
+ PropertyChanges { target: txResult; visible:true}
+ PropertyChanges { target: codeView; visible:true}
+ },
+ State {
+ name: "DONE"
+ PropertyChanges { target: txValue; visible:false}
+ PropertyChanges { target: txGas; visible:false}
+ PropertyChanges { target: txGasPrice; visible:false}
+ PropertyChanges { target: codeView; visible:false}
+ PropertyChanges { target: txButton; visible:false}
+ PropertyChanges { target: txDataLabel; visible:false}
+
+ PropertyChanges { target: txResult; visible:true}
+ PropertyChanges { target: txOutput; visible:true}
+ PropertyChanges { target: newTxButton; visible:true}
+ },
+ State {
+ name: "SETUP"
+ PropertyChanges { target: txValue; visible:true; text: ""}
+ PropertyChanges { target: txGas; visible:true; text: ""}
+ PropertyChanges { target: txGasPrice; visible:true; text: ""}
+ PropertyChanges { target: codeView; visible:true; text: ""}
+ PropertyChanges { target: txButton; visible:true}
+ PropertyChanges { target: txDataLabel; visible:true}
+
+ PropertyChanges { target: txResult; visible:false}
+ PropertyChanges { target: txOutput; visible:false}
+ PropertyChanges { target: newTxButton; visible:false}
+ }
+ ]
width: 400
- spacing: 5
+ spacing: 5
anchors.left: parent.left
anchors.top: parent.top
anchors.leftMargin: 5
@@ -319,31 +350,31 @@ ApplicationWindow {
width: 200
placeholderText: "Amount"
validator: IntValidator { }
- onTextChanged: {
- contractFormReady()
- }
+ onTextChanged: {
+ contractFormReady()
+ }
}
TextField {
id: txGas
width: 200
validator: IntValidator { }
placeholderText: "Gas"
- onTextChanged: {
- contractFormReady()
- }
+ onTextChanged: {
+ contractFormReady()
+ }
}
TextField {
id: txGasPrice
width: 200
placeholderText: "Gas price"
validator: IntValidator { }
- onTextChanged: {
- contractFormReady()
- }
+ onTextChanged: {
+ contractFormReady()
+ }
}
Label {
- id: txDataLabel
+ id: txDataLabel
text: "Transaction data"
}
@@ -352,58 +383,58 @@ ApplicationWindow {
anchors.topMargin: 5
Layout.fillWidth: true
width: parent.width /2
- onTextChanged: {
- contractFormReady()
- }
+ onTextChanged: {
+ contractFormReady()
+ }
}
Button {
id: txButton
- states: [
- State {
- name: "READY"
- PropertyChanges { target: txButton; enabled: true}
- },
- State {
- name: "NOTREADY"
- PropertyChanges { target: txButton; enabled:false}
- }
- ]
+ states: [
+ State {
+ name: "READY"
+ PropertyChanges { target: txButton; enabled: true}
+ },
+ State {
+ name: "NOTREADY"
+ PropertyChanges { target: txButton; enabled:false}
+ }
+ ]
text: "Send"
- enabled: false
+ enabled: false
onClicked: {
//this.enabled = false
var res = eth.createTx("", txValue.text, txGas.text, txGasPrice.text, codeView.text)
if(res[1]) {
- txResult.text = "Your contract could not be send over the network:\n"
- txResult.text += res[1].error()
- txResult.text += ""
- mainContractColumn.state = "ERROR"
+ txResult.text = "Your contract could not be send over the network:\n"
+ txResult.text += res[1].error()
+ txResult.text += ""
+ mainContractColumn.state = "ERROR"
} else {
- txResult.text = "Your contract has been submitted:\n"
- txOutput.text = res[0]
- mainContractColumn.state = "DONE"
+ txResult.text = "Your contract has been submitted:\n"
+ txOutput.text = res[0]
+ mainContractColumn.state = "DONE"
}
}
}
- Text {
- id: txResult
- visible: false
- }
+ Text {
+ id: txResult
+ visible: false
+ }
TextField {
id: txOutput
visible: false
width: 530
}
Button {
- id: newTxButton
+ id: newTxButton
visible: false
text: "Create an other contract"
onClicked: {
this.visible = false
- txResult.text = ""
- txOutput.text = ""
- mainContractColumn.state = "SETUP"
+ txResult.text = ""
+ txOutput.text = ""
+ mainContractColumn.state = "SETUP"
}
}
@@ -461,26 +492,26 @@ ApplicationWindow {
}
/*
- signal addPlugin(string name)
- Component {
- id: pluginWindow
- Rectangle {
- anchors.fill: parent
- Label {
- id: pluginTitle
- anchors.centerIn: parent
- text: "Hello world"
- }
- Component.onCompleted: setView(this)
- }
- }
-
- onAddPlugin: {
- var pluginWin = pluginWindow.createObject(mainView)
- console.log(pluginWin)
- pluginWin.pluginTitle.text = "Test"
- }
- */
+ signal addPlugin(string name)
+ Component {
+ id: pluginWindow
+ Rectangle {
+ anchors.fill: parent
+ Label {
+ id: pluginTitle
+ anchors.centerIn: parent
+ text: "Hello world"
+ }
+ Component.onCompleted: setView(this)
+ }
+ }
+
+ onAddPlugin: {
+ var pluginWin = pluginWindow.createObject(mainView)
+ console.log(pluginWin)
+ pluginWin.pluginTitle.text = "Test"
+ }
+ */
}
}
@@ -665,52 +696,52 @@ ApplicationWindow {
function setAsm(asm) {
//for(var i = 0; i < asm.length; i++) {
- asmModel.append({asm: asm})
- //}
- }
- function clearAsm() {
- asmModel.clear()
- }
+ asmModel.append({asm: asm})
+ //}
+ }
+ function clearAsm() {
+ asmModel.clear()
+ }
- function setMem(mem) {
- memModel.append({num: mem.num, value: mem.value})
- }
- function clearMem(){
- memModel.clear()
- }
+ function setMem(mem) {
+ memModel.append({num: mem.num, value: mem.value})
+ }
+ function clearMem(){
+ memModel.clear()
+ }
- function setStack(stack) {
- stackModel.append({value: stack})
- }
+ function setStack(stack) {
+ stackModel.append({value: stack})
+ }
- function clearStack() {
- stackModel.clear()
- }
+ function clearStack() {
+ stackModel.clear()
+ }
- function loadPlugin(name) {
- console.log("Loading plugin" + name)
- mainView.addPlugin(name)
- }
+ function loadPlugin(name) {
+ console.log("Loading plugin" + name)
+ mainView.addPlugin(name)
+ }
- function setWalletValue(value) {
- walletValueLabel.text = value
- }
+ function setWalletValue(value) {
+ walletValueLabel.text = value
+ }
- function addTx(tx) {
- txModel.insert(0, {hash: tx.hash, address: tx.address, value: tx.value})
- }
+ function addTx(tx) {
+ txModel.insert(0, {hash: tx.hash, address: tx.address, value: tx.value})
+ }
- function addBlock(block) {
- blockModel.insert(0, {number: block.number, hash: block.hash})
- }
+ function addBlock(block) {
+ blockModel.insert(0, {number: block.number, hash: block.hash})
+ }
- function addLog(str) {
- if(str.len != 0) {
- logModel.append({description: str})
+ function addLog(str) {
+ if(str.len != 0) {
+ logModel.append({description: str})
+ }
}
- }
- function setPeers(text) {
- peerLabel.text = text
+ function setPeers(text) {
+ peerLabel.text = text
+ }
}
-}