Merge master into miner branch
This commit is contained in:
75
ethereal/ui/ui_lib.go
Normal file
75
ethereal/ui/ui_lib.go
Normal file
@ -0,0 +1,75 @@
|
||||
package ethui
|
||||
|
||||
import (
|
||||
"bitbucket.org/kardianos/osext"
|
||||
"github.com/ethereum/eth-go"
|
||||
"github.com/ethereum/eth-go/ethutil"
|
||||
"github.com/niemeyer/qml"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
// UI Library that has some basic functionality exposed
|
||||
type UiLib struct {
|
||||
engine *qml.Engine
|
||||
eth *eth.Ethereum
|
||||
connected bool
|
||||
}
|
||||
|
||||
// Opens a QML file (external application)
|
||||
func (ui *UiLib) Open(path string) {
|
||||
component, err := ui.engine.LoadFile(path[7:])
|
||||
if err != nil {
|
||||
ethutil.Config.Log.Debugln(err)
|
||||
}
|
||||
win := component.CreateWindow(nil)
|
||||
|
||||
go func() {
|
||||
win.Show()
|
||||
win.Wait()
|
||||
}()
|
||||
}
|
||||
|
||||
func (ui *UiLib) Connect(button qml.Object) {
|
||||
if !ui.connected {
|
||||
ui.eth.Start()
|
||||
ui.connected = true
|
||||
button.Set("enabled", false)
|
||||
}
|
||||
}
|
||||
|
||||
func (ui *UiLib) ConnectToPeer(addr string) {
|
||||
ui.eth.ConnectToPeer(addr)
|
||||
}
|
||||
|
||||
func (ui *UiLib) AssetPath(p string) string {
|
||||
return AssetPath(p)
|
||||
}
|
||||
|
||||
func AssetPath(p string) string {
|
||||
var base string
|
||||
// If the current working directory is the go-ethereum dir
|
||||
// assume a debug build and use the source directory as
|
||||
// asset directory.
|
||||
pwd, _ := os.Getwd()
|
||||
if pwd == path.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "go-ethereum", "ethereal") {
|
||||
base = path.Join(pwd, "assets")
|
||||
} else {
|
||||
switch runtime.GOOS {
|
||||
case "darwin":
|
||||
// Get Binary Directory
|
||||
exedir, _ := osext.ExecutableFolder()
|
||||
base = filepath.Join(exedir, "../Resources")
|
||||
case "linux":
|
||||
base = "/usr/share/ethereal"
|
||||
case "window":
|
||||
fallthrough
|
||||
default:
|
||||
base = "."
|
||||
}
|
||||
}
|
||||
|
||||
return path.Join(base, p)
|
||||
}
|
Reference in New Issue
Block a user