diff --git a/ethereal/assets/ext/filter.js b/ethereal/assets/ext/filter.js index 5c1c03aad..6d6ec8748 100644 --- a/ethereal/assets/ext/filter.js +++ b/ethereal/assets/ext/filter.js @@ -3,7 +3,7 @@ var Filter = function(options) { this.seed = Math.floor(Math.random() * 1000000); this.options = options; - if(options == "chain") { + if(options === "chain") { eth.registerFilterString(options, this.seed); } else if(typeof options === "object") { eth.registerFilter(options, this.seed); diff --git a/ethereal/assets/qml/views/chain.qml b/ethereal/assets/qml/views/chain.qml index ed019acf1..5bfc4b6c7 100644 --- a/ethereal/assets/qml/views/chain.qml +++ b/ethereal/assets/qml/views/chain.qml @@ -98,15 +98,18 @@ Rectangle { function addBlock(block, initial) { - var txs = JSON.parse(block.transactions); - var amount = 0 if(initial == undefined){ initial = false } + /* + var txs = JSON.parse(block.transactions); if(txs != null){ amount = txs.length } + */ + var txs = block.transactions; + var amount = block.transactions.length; if(initial){ blockModel.append({size: block.size, number: block.number, name: block.name, gasLimit: block.gasLimit, gasUsed: block.gasUsed, coinbase: block.coinbase, hash: block.hash, txs: txs, txAmount: amount, time: block.time, prettyTime: convertToPretty(block.time)}) @@ -241,8 +244,8 @@ Rectangle { singleBlock.set(0,block) popup.height = 300 transactionModel.clear() - if(block.txs != undefined){ - for(var i = 0; i < block.txs.count; ++i) { + if(block.txs !== undefined){ + for(var i = 0; i < block.txs.length; i++) { transactionModel.insert(0, block.txs.get(i)) } if(block.txs.get(0).data){ diff --git a/ethereal/assets/qml/views/wallet.qml b/ethereal/assets/qml/views/wallet.qml index ce472812e..c2513289e 100644 --- a/ethereal/assets/qml/views/wallet.qml +++ b/ethereal/assets/qml/views/wallet.qml @@ -157,6 +157,7 @@ Rectangle { addTxs(filter.messages()) } + function addTxs(messages) { for(var i = 0; i < messages.length; i++) { var message = messages[i]; diff --git a/ethereal/assets/qml/wallet.qml b/ethereal/assets/qml/wallet.qml index ed527ced7..0ddbd26bd 100644 --- a/ethereal/assets/qml/wallet.qml +++ b/ethereal/assets/qml/wallet.qml @@ -18,7 +18,7 @@ ApplicationWindow { height: 600 minimumHeight: 300 - title: "Ether browser" + title: "Ethegate" // This signal is used by the filter API. The filter API connects using this signal handler from // the different QML files and plugins. @@ -55,25 +55,28 @@ ApplicationWindow { } function addPlugin(path, options) { - var component = Qt.createComponent(path); - if(component.status != Component.Ready) { - if(component.status == Component.Error) { - console.debug("Error:"+ component.errorString()); + try { + var component = Qt.createComponent(path); + if(component.status != Component.Ready) { + if(component.status == Component.Error) { + console.debug("Error:"+ component.errorString()); + } + + return } - return + var views = mainSplit.addComponent(component, options) + views.menuItem.path = path + + mainSplit.views.push(views); + + if(!options.noAdd) { + gui.addPlugin(path) + } + + return views.view + } catch(e) { } - - var views = mainSplit.addComponent(component, options) - views.menuItem.path = path - - mainSplit.views.push(views); - - if(!options.noAdd) { - gui.addPlugin(path) - } - - return views.view } MenuBar { diff --git a/ethereal/bindings.go b/ethereal/bindings.go index e129ea6af..141c4a469 100644 --- a/ethereal/bindings.go +++ b/ethereal/bindings.go @@ -78,7 +78,7 @@ func (gui *Gui) GetLogLevel() ethlog.LogLevel { } func (self *Gui) AddPlugin(pluginPath string) { - self.plugins[pluginPath] = plugin{Name: "SomeName", Path: pluginPath} + self.plugins[pluginPath] = plugin{Name: pluginPath, Path: pluginPath} json, _ := json.MarshalIndent(self.plugins, "", " ") ethutil.WriteFile(ethutil.Config.ExecPath+"/plugins.json", json) diff --git a/ethereal/gui.go b/ethereal/gui.go index bd1466e8b..33fd35e6e 100644 --- a/ethereal/gui.go +++ b/ethereal/gui.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "math/big" + "path" "runtime" "strconv" "strings" @@ -63,12 +64,7 @@ func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, clientIden pipe := ethpipe.NewJSPipe(ethereum) gui := &Gui{eth: ethereum, txDb: db, pipe: pipe, logLevel: ethlog.LogLevel(logLevel), Session: session, open: false, clientIdentity: clientIdentity, config: config, plugins: make(map[string]plugin)} - data, err := ethutil.ReadAllFile(ethutil.Config.ExecPath + "/plugins.json") - if err != nil { - fmt.Println(err) - } - fmt.Println("plugins:", string(data)) - + data, _ := ethutil.ReadAllFile(path.Join(ethutil.Config.ExecPath, "plugins.json")) json.Unmarshal([]byte(data), &gui.plugins) return gui @@ -339,6 +335,8 @@ func (gui *Gui) update() { }() for _, plugin := range gui.plugins { + logger.Infoln("Loading plugin ", plugin.Name) + gui.win.Root().Call("addPlugin", plugin.Path, "") } diff --git a/ethereal/ui_lib.go b/ethereal/ui_lib.go index fa09751e1..80e711aa7 100644 --- a/ethereal/ui_lib.go +++ b/ethereal/ui_lib.go @@ -44,6 +44,10 @@ func NewUiLib(engine *qml.Engine, eth *eth.Ethereum, assetPath string) *UiLib { return &UiLib{JSPipe: ethpipe.NewJSPipe(eth), engine: engine, eth: eth, assetPath: assetPath, jsEngine: javascript.NewJSRE(eth), filterCallbacks: make(map[int][]int), filters: make(map[int]*GuiFilter)} } +func (self *UiLib) Note(msg string) { + logger.Infoln(msg) +} + func (self *UiLib) LookupDomain(domain string) string { world := self.World()