forked from mirror/go-ethereum
commit
08de13a57b
@ -0,0 +1,22 @@ |
|||||||
|
import QtQuick 2.0 |
||||||
|
import QtQuick.Controls 1.0; |
||||||
|
import QtQuick.Layouts 1.0; |
||||||
|
import Ethereum 1.0 |
||||||
|
|
||||||
|
ApplicationWindow { |
||||||
|
minimumWidth: 500 |
||||||
|
maximumWidth: 500 |
||||||
|
maximumHeight: 400 |
||||||
|
minimumHeight: 400 |
||||||
|
|
||||||
|
function onNewBlockCb(block) { |
||||||
|
console.log("Please overwrite onNewBlock(block):", block) |
||||||
|
} |
||||||
|
function onObjectChangeCb(stateObject) { |
||||||
|
console.log("Please overwrite onObjectChangeCb(object)", stateObject) |
||||||
|
} |
||||||
|
function onStorageChangeCb(storageObject) { |
||||||
|
var ev = ["storage", storageObject.stateAddress, storageObject.address].join(":"); |
||||||
|
console.log("Please overwrite onStorageChangeCb(object)", ev) |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,59 @@ |
|||||||
|
package ethui |
||||||
|
|
||||||
|
import ( |
||||||
|
"github.com/ethereum/eth-go/ethchain" |
||||||
|
"github.com/ethereum/eth-go/ethpub" |
||||||
|
"github.com/ethereum/eth-go/ethutil" |
||||||
|
"github.com/go-qml/qml" |
||||||
|
) |
||||||
|
|
||||||
|
type QmlApplication struct { |
||||||
|
win *qml.Window |
||||||
|
engine *qml.Engine |
||||||
|
lib *UiLib |
||||||
|
path string |
||||||
|
} |
||||||
|
|
||||||
|
func NewQmlApplication(path string, lib *UiLib) *QmlApplication { |
||||||
|
engine := qml.NewEngine() |
||||||
|
return &QmlApplication{engine: engine, path: path, lib: lib} |
||||||
|
} |
||||||
|
|
||||||
|
func (app *QmlApplication) Create() error { |
||||||
|
component, err := app.engine.LoadFile(app.path) |
||||||
|
if err != nil { |
||||||
|
ethutil.Config.Log.Debugln(err) |
||||||
|
} |
||||||
|
app.win = component.CreateWindow(nil) |
||||||
|
|
||||||
|
return nil |
||||||
|
} |
||||||
|
|
||||||
|
func (app *QmlApplication) Destroy() { |
||||||
|
app.engine.Destroy() |
||||||
|
} |
||||||
|
|
||||||
|
func (app *QmlApplication) NewWatcher(quitChan chan bool) { |
||||||
|
} |
||||||
|
|
||||||
|
// Events
|
||||||
|
func (app *QmlApplication) NewBlock(block *ethchain.Block) { |
||||||
|
pblock := ðpub.PBlock{Number: int(block.BlockInfo().Number), Hash: ethutil.Hex(block.Hash())} |
||||||
|
app.win.Call("onNewBlockCb", pblock) |
||||||
|
} |
||||||
|
|
||||||
|
func (app *QmlApplication) ObjectChanged(stateObject *ethchain.StateObject) { |
||||||
|
app.win.Call("onObjectChangeCb", ethpub.NewPStateObject(stateObject)) |
||||||
|
} |
||||||
|
|
||||||
|
func (app *QmlApplication) StorageChanged(storageObject *ethchain.StorageState) { |
||||||
|
app.win.Call("onStorageChangeCb", ethpub.NewPStorageState(storageObject)) |
||||||
|
} |
||||||
|
|
||||||
|
// Getters
|
||||||
|
func (app *QmlApplication) Engine() *qml.Engine { |
||||||
|
return app.engine |
||||||
|
} |
||||||
|
func (app *QmlApplication) Window() *qml.Window { |
||||||
|
return app.win |
||||||
|
} |
Loading…
Reference in new issue