aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-02-22 08:52:47 +0800
committerobscuren <geffobscura@gmail.com>2014-02-22 08:52:47 +0800
commit2b967558cebcef9d3ef9719cbb28a5e596982a5d (patch)
treee0b45a4d2123c70a9f6216ffb0a493018b06154c
parent3e8b27c9dc78ffeeefae987e67730fae17707df4 (diff)
downloadgo-tangerine-2b967558cebcef9d3ef9719cbb28a5e596982a5d.tar
go-tangerine-2b967558cebcef9d3ef9719cbb28a5e596982a5d.tar.gz
go-tangerine-2b967558cebcef9d3ef9719cbb28a5e596982a5d.tar.bz2
go-tangerine-2b967558cebcef9d3ef9719cbb28a5e596982a5d.tar.lz
go-tangerine-2b967558cebcef9d3ef9719cbb28a5e596982a5d.tar.xz
go-tangerine-2b967558cebcef9d3ef9719cbb28a5e596982a5d.tar.zst
go-tangerine-2b967558cebcef9d3ef9719cbb28a5e596982a5d.zip
Working out UI
-rw-r--r--config.go2
-rw-r--r--ui/gui.go21
-rw-r--r--wallet.qml46
3 files changed, 63 insertions, 6 deletions
diff --git a/config.go b/config.go
index c25c8f2a3..79d40d706 100644
--- a/config.go
+++ b/config.go
@@ -21,7 +21,7 @@ func Init() {
flag.BoolVar(&StartConsole, "c", false, "debug and testing console")
flag.BoolVar(&StartMining, "m", false, "start dagger mining")
flag.BoolVar(&ShowGenesis, "g", false, "prints genesis header and exits")
- flag.BoolVar(&UseGui, "gui", false, "use the gui")
+ flag.BoolVar(&UseGui, "gui", true, "use the gui")
flag.BoolVar(&UseUPnP, "upnp", false, "enable UPnP support")
flag.BoolVar(&UseSeed, "seed", true, "seed peers")
flag.BoolVar(&GenAddr, "genaddr", false, "create a new priv/pub key")
diff --git a/ui/gui.go b/ui/gui.go
index 8f063843c..fad7e9591 100644
--- a/ui/gui.go
+++ b/ui/gui.go
@@ -56,10 +56,12 @@ func (ui *Gui) Start() {
context := ui.engine.Context()
context.SetVar("eth", ui.lib)
- context.SetVar("ui", &UiLib{engine: ui.engine})
+ context.SetVar("ui", &UiLib{engine: ui.engine, eth: ui.eth})
ui.eth.BlockManager.SecondaryBlockProcessor = ui
+ ethutil.Config.Log.AddLogSystem(ui)
+
go ui.setInitialBlockChain()
go ui.updatePeers()
@@ -73,13 +75,23 @@ func (ui *Gui) setInitialBlockChain() {
ui.ProcessBlock(block)
}
- ui.eth.Start()
}
func (ui *Gui) ProcessBlock(block *ethchain.Block) {
ui.win.Root().Call("addBlock", NewBlockFromBlock(block))
}
+func (ui *Gui) Println(v ...interface{}) {
+ str := fmt.Sprintln(v...)
+ // remove last \n
+ ui.win.Root().Call("addLog", str[:len(str)-1])
+}
+
+func (ui *Gui) Printf(format string, v ...interface{}) {
+ str := strings.TrimRight(fmt.Sprintf(format, v...), "\n")
+ ui.win.Root().Call("addLog", str)
+}
+
func (ui *Gui) updatePeers() {
for {
ui.win.Root().Call("setPeers", fmt.Sprintf("%d / %d", ui.eth.Peers().Len(), ui.eth.MaxPeers))
@@ -89,6 +101,7 @@ func (ui *Gui) updatePeers() {
type UiLib struct {
engine *qml.Engine
+ eth *eth.Ethereum
}
func (ui *UiLib) Open(path string) {
@@ -104,6 +117,10 @@ func (ui *UiLib) Open(path string) {
}()
}
+func (ui *UiLib) Connect() {
+ ui.eth.Start()
+}
+
type Tester struct {
root qml.Object
}
diff --git a/wallet.qml b/wallet.qml
index f9bd8ec76..e6cb32b18 100644
--- a/wallet.qml
+++ b/wallet.qml
@@ -2,6 +2,7 @@ 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 GoExtensions 1.0
ApplicationWindow {
@@ -60,20 +61,36 @@ ApplicationWindow {
}
TableView {
+ id: blockTable
width: parent.width
- height: 100
- anchors.bottom: parent.bottom
anchors.top: splitView.bottom
+ anchors.bottom: logView.top
TableViewColumn{ role: "number" ; title: "#" ; width: 100 }
TableViewColumn{ role: "hash" ; title: "Hash" ; width: 560 }
model: blockModel
onDoubleClicked: {
- console.log(eth.getBlock(blockModel.get(row).hash))
+ popup.visible = true
+ popup.block = eth.getBlock(blockModel.get(row).hash)
+ popup.hashLabel.text = popup.block.hash
}
}
+ property var logModel: ListModel {
+ id: logModel
+ }
+
+ TableView {
+ id: logView
+ width: parent.width
+ height: 150
+ anchors.bottom: parent.bottom
+ TableViewColumn{ role: "description" ; title: "log" }
+
+ model: logModel
+ }
+
FileDialog {
id: openAppDialog
title: "Open QML Application"
@@ -86,6 +103,13 @@ ApplicationWindow {
RowLayout {
anchors.fill: parent
Button {
+ id: connectButton
+ onClicked: ui.connect()
+ text: "Connect"
+ }
+ Button {
+ anchors.left: connectButton.right
+ anchors.leftMargin: 5
onClicked: openAppDialog.open()
text: "Import App"
}
@@ -107,10 +131,26 @@ ApplicationWindow {
}
}
+ Window {
+ id: popup
+ visible: false
+ property var block
+ Label {
+ id: hashLabel
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+
function addBlock(block) {
blockModel.insert(0, {number: block.number, hash: block.hash})
}
+ function addLog(str) {
+ console.log(str)
+ logModel.insert(0, {description: str})
+ }
+
function setPeers(text) {
peerLabel.text = text
}