aboutsummaryrefslogtreecommitdiffstats
path: root/ethereal
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-08-22 18:12:41 +0800
committerobscuren <geffobscura@gmail.com>2014-08-22 18:12:41 +0800
commit09c7d158d1180dc9ec042b67f8c1ecb1015a142e (patch)
tree55b6e96f3e7ff3a2ab0037eda1ce56282e508f46 /ethereal
parent9131a7c65eca0951f25c7ea12865244c60090b92 (diff)
downloaddexon-09c7d158d1180dc9ec042b67f8c1ecb1015a142e.tar.gz
dexon-09c7d158d1180dc9ec042b67f8c1ecb1015a142e.tar.zst
dexon-09c7d158d1180dc9ec042b67f8c1ecb1015a142e.zip
Error window
Diffstat (limited to 'ethereal')
-rw-r--r--ethereal/errors.go36
-rw-r--r--ethereal/main.go20
2 files changed, 55 insertions, 1 deletions
diff --git a/ethereal/errors.go b/ethereal/errors.go
new file mode 100644
index 000000000..409b7a281
--- /dev/null
+++ b/ethereal/errors.go
@@ -0,0 +1,36 @@
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "gopkg.in/qml.v1"
+)
+
+func ErrorWindow(err error) {
+ engine := qml.NewEngine()
+ component, e := engine.LoadString("local", qmlErr)
+ if e != nil {
+ fmt.Println("err:", err)
+ os.Exit(1)
+ }
+
+ win := component.CreateWindow(nil)
+ win.Root().ObjectByName("label").Set("text", err.Error())
+ win.Show()
+ win.Wait()
+}
+
+const qmlErr = `
+import QtQuick 2.0; import QtQuick.Controls 1.0;
+ApplicationWindow {
+ width: 600; height: 150;
+ flags: Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
+ title: "Error"
+ Text {
+ x: parent.width / 2 - this.width / 2;
+ y: parent.height / 2 - this.height / 2;
+ objectName: "label";
+ }
+}
+`
diff --git a/ethereal/main.go b/ethereal/main.go
index 4cb8630e8..3729dbdaf 100644
--- a/ethereal/main.go
+++ b/ethereal/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"os"
"runtime"
@@ -12,7 +13,7 @@ import (
const (
ClientIdentifier = "Ethereal"
- Version = "0.6.4"
+ Version = "0.6.5"
)
var ethereum *eth.Ethereum
@@ -28,6 +29,23 @@ func run() error {
utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
db := utils.NewDatabase()
+ err := utils.DBSanityCheck(db)
+ if err != nil {
+ engine := qml.NewEngine()
+ component, e := engine.LoadString("local", qmlErr)
+ if e != nil {
+ fmt.Println("err:", err)
+ os.Exit(1)
+ }
+
+ win := component.CreateWindow(nil)
+ win.Root().ObjectByName("label").Set("text", err.Error())
+ win.Show()
+ win.Wait()
+
+ ErrorWindow(err)
+ os.Exit(1)
+ }
keyManager := utils.NewKeyManager(KeyStore, Datadir, db)