diff --git a/ethereal/assets/qml/views/transaction.qml b/ethereal/assets/qml/views/transaction.qml index 61a1b81cd..80e1670f8 100644 --- a/ethereal/assets/qml/views/transaction.qml +++ b/ethereal/assets/qml/views/transaction.qml @@ -18,13 +18,8 @@ Rectangle { Column { id: mainContractColumn anchors.fill: parent - 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" @@ -208,4 +203,12 @@ Rectangle { } } } + + 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" + } + } } diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml index 58d39381b..3fc9a024c 100644 --- a/ethereal/assets/qml/wallet.qml +++ b/ethereal/assets/qml/wallet.qml @@ -19,11 +19,11 @@ ApplicationWindow { // Takes care of loading all default plugins Component.onCompleted: { - var historyView = addPlugin("./views/history.qml") - var newTxView = addPlugin("./views/transaction.qml") - var chainView = addPlugin("./views/chain.qml") - var infoView = addPlugin("./views/info.qml") - var pendingTxView = addPlugin("./views/pending_tx.qml") + var historyView = addPlugin("./views/history.qml", {title: "History"}) + var newTxView = addPlugin("./views/transaction.qml", {title: "New Transaction"}) + var chainView = addPlugin("./views/chain.qml", {title: "Block chain"}) + var infoView = addPlugin("./views/info.qml", {title: "Info"}) + var pendingTxView = addPlugin("./views/pending_tx.qml", {title: "Pending", canClose: true}) // Call the ready handler gui.done() @@ -38,7 +38,7 @@ ApplicationWindow { return } - return mainSplit.addComponent(component, {objectName: objectName}) + return mainSplit.addComponent(component, options) } MenuBar { @@ -111,7 +111,7 @@ ApplicationWindow { text: "Run JS file" onTriggered: { generalFileDialog.callback = function(path) { - lib.evalJavascriptFile(path) + eth.evalJavascriptFile(path) } generalFileDialog.open() } @@ -169,8 +169,6 @@ ApplicationWindow { RowLayout { Label { - anchors.left: importAppButton.right - anchors.leftMargin: 5 id: walletValueLabel font.pixelSize: 10 @@ -250,7 +248,7 @@ ApplicationWindow { return; } - menu.createMenuItem(view.iconFile, view); + menu.createMenuItem(view.iconFile, view, options); mainSplit.views.push(view); return view @@ -261,8 +259,8 @@ ApplicationWindow { ********************/ Rectangle { id: menu - Layout.minimumWidth: 80 - Layout.maximumWidth: 80 + Layout.minimumWidth: 180 + Layout.maximumWidth: 180 anchors.top: parent.top color: "#252525" @@ -280,11 +278,73 @@ ApplicationWindow { } } + /* + Component { + id: menuItemTemplate + Rectangle { + property var view; + property var source; + property alias title: title.text + height: 25 + + id: tab + + anchors { + left: parent.left + right: parent.right + } + + Label { + id: title + y: parent.height / 2 - this.height / 2 + x: 5 + font.pixelSize: 10 + } + + MouseArea { + anchors.fill: parent + onClicked: { + mainSplit.setView(view) + } + } + + 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") + } + } + } + } + } + */ + + + function createMenuItem(icon, view, options) { + if(options === undefined) { + options = {}; + } - function createMenuItem(icon, view) { var comp = menuItemTemplate.createObject(menuColumn) comp.view = view comp.source = icon + /* + comp.title = options.title + if(options.canClose) { + //comp.closeButton.visible = options.canClose + } + */ } ColumnLayout { @@ -459,7 +519,7 @@ ApplicationWindow { anchors.leftMargin: 5 text: "Import" onClicked: { - lib.importTx(txImportField.text) + eth.importTx(txImportField.text) txImportField.visible = false } } @@ -483,7 +543,7 @@ ApplicationWindow { anchors.leftMargin: 10 placeholderText: "address:port" onAccepted: { - ui.connectToPeer(addrField.text) + eth.connectToPeer(addrField.text) addPeerWin.visible = false } } @@ -493,7 +553,7 @@ ApplicationWindow { anchors.leftMargin: 5 text: "Add" onClicked: { - ui.connectToPeer(addrField.text) + eth.connectToPeer(addrField.text) addPeerWin.visible = false } } diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml index 15177e3fd..a848adf45 100644 --- a/ethereal/assets/qml/webapp.qml +++ b/ethereal/assets/qml/webapp.qml @@ -31,9 +31,13 @@ ApplicationWindow { //text: webview.url Keys.onReturnPressed: { + var uri = this.text; + if(!/.*\:\/\/.*/.test(uri)) { + uri = "http://" + uri; + } + var reg = /(^https?\:\/\/(?:www\.)?)([a-zA-Z0-9_\-]*\.eth)(.*)/ - var uri = this.text; if(reg.test(uri)) { this.text.replace(reg, function(match, pre, domain, path) { uri = pre; @@ -45,7 +49,7 @@ ApplicationWindow { } if(ip.length != 0) { - uri += ip.join("."); + uri += lookup; } else { uri += domain; } diff --git a/ethereal/gui.go b/ethereal/gui.go index 78a930e02..a4e3efb19 100644 --- a/ethereal/gui.go +++ b/ethereal/gui.go @@ -387,12 +387,12 @@ func (gui *Gui) update() { if bytes.Compare(tx.Sender(), gui.address()) == 0 { object.SubAmount(tx.Value) - gui.win.Root().Call("addTx", "post", ethpub.NewPTx(tx), "send") + gui.getObjectByName("transactionView").Call("addTx", "post", ethpub.NewPTx(tx), "send") gui.txDb.Put(tx.Hash(), tx.RlpEncode()) } else if bytes.Compare(tx.Recipient, gui.address()) == 0 { object.AddAmount(tx.Value) - gui.win.Root().Call("addTx", "post", ethpub.NewPTx(tx), "recv") + gui.getObjectByName("transactionView").Call("addTx", "post", ethpub.NewPTx(tx), "recv") gui.txDb.Put(tx.Hash(), tx.RlpEncode()) }