aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorAlexandre Van de Sande <alex.vandesande@ethdev.com>2015-03-03 05:39:07 +0800
committerAlexandre Van de Sande <alex.vandesande@ethdev.com>2015-03-03 05:39:07 +0800
commit21c373b55dc8543fb97ebf3c66128506d4f74d0a (patch)
tree35e73be31294b4726e6a42161ffcd513c8fe3807 /cmd
parentdea65840186fe861017524c9cb59ae07ac97ed06 (diff)
downloaddexon-21c373b55dc8543fb97ebf3c66128506d4f74d0a.tar
dexon-21c373b55dc8543fb97ebf3c66128506d4f74d0a.tar.gz
dexon-21c373b55dc8543fb97ebf3c66128506d4f74d0a.tar.bz2
dexon-21c373b55dc8543fb97ebf3c66128506d4f74d0a.tar.lz
dexon-21c373b55dc8543fb97ebf3c66128506d4f74d0a.tar.xz
dexon-21c373b55dc8543fb97ebf3c66128506d4f74d0a.tar.zst
dexon-21c373b55dc8543fb97ebf3c66128506d4f74d0a.zip
Network Health Panel with mining
Diffstat (limited to 'cmd')
-rw-r--r--cmd/mist/assets/ext/mist.js1
-rw-r--r--cmd/mist/assets/qml/main.qml21
-rw-r--r--cmd/mist/assets/qml/views/miner.qml17
-rw-r--r--cmd/mist/assets/qml/views/network.qml163
-rw-r--r--cmd/mist/gui.go3
5 files changed, 178 insertions, 27 deletions
diff --git a/cmd/mist/assets/ext/mist.js b/cmd/mist/assets/ext/mist.js
index 2fc38cdfa..849e0804e 100644
--- a/cmd/mist/assets/ext/mist.js
+++ b/cmd/mist/assets/ext/mist.js
@@ -17,7 +17,6 @@
// this function is included locally, but you can also include separately via a header definition
-console.log("loaded?");
document.onkeydown = function(evt) {
// This functions keeps track of keyboard inputs in order to allow copy, paste and other features
diff --git a/cmd/mist/assets/qml/main.qml b/cmd/mist/assets/qml/main.qml
index 1f7fcbec6..f8c01e25c 100644
--- a/cmd/mist/assets/qml/main.qml
+++ b/cmd/mist/assets/qml/main.qml
@@ -46,12 +46,13 @@ ApplicationWindow {
walletWeb.view.url = "http://ethereum-dapp-wallet.meteor.com/";
walletWeb.menuItem.title = "Wallet";
- addPlugin("./views/miner.qml", {noAdd: true, close: false, section: "ethereum", active: false});
+ addPlugin("./views/miner.qml", {noAdd: true, close: false, section: "legacy", active: false});
+ addPlugin("./views/network.qml", {noAdd: true, close: false, section: "ethereum", active: false});
- var whisperTab = addPlugin("./views/browser.qml", {noAdd: true, close: true, section: "ethereum", active: false});
+ /* var whisperTab = addPlugin("./views/browser.qml", {noAdd: true, close: true, section: "ethereum", active: false});
whisperTab.view.url = "http://ethereum-dapp-whisper-client.meteor.com/";
whisperTab.menuItem.title = "Whisper Chat";
-
+*/
addPlugin("./views/wallet.qml", {noAdd: true, close: false, section: "legacy"});
addPlugin("./views/transaction.qml", {noAdd: true, close: false, section: "legacy"});
addPlugin("./views/whisper.qml", {noAdd: true, close: false, section: "legacy"});
@@ -536,6 +537,8 @@ ApplicationWindow {
Text {
id: secondary
+ //only shows secondary title if there's no badge
+ visible: (badgeContent == "icon" || badgeContent == "number" )? false : true
font.family: sourceSansPro.name
font.weight: Font.Light
anchors {
@@ -730,18 +733,14 @@ ApplicationWindow {
Rectangle {
height: 19
color: "#00ff00"
+ visible: (menuApps.children.length > 0)
+
Text {
text: "APPS"
font.family: sourceSansPro.name
font.weight: Font.Regular
anchors.fill: parent
anchors.leftMargin: 16
-
- // anchors {
- // left: parent.left
- // top: parent.top
- // leftMargin: 16
- // }
color: "#AAA0A0"
}
}
@@ -749,6 +748,8 @@ ApplicationWindow {
ColumnLayout {
id: menuApps
spacing: 3
+
+
anchors {
left: parent.left
right: parent.right
@@ -775,7 +776,7 @@ ApplicationWindow {
ColumnLayout {
id: menuLegacy
- visible: false
+ visible: true
spacing: 3
anchors {
left: parent.left
diff --git a/cmd/mist/assets/qml/views/miner.qml b/cmd/mist/assets/qml/views/miner.qml
index e239c7d7b..4025ff485 100644
--- a/cmd/mist/assets/qml/views/miner.qml
+++ b/cmd/mist/assets/qml/views/miner.qml
@@ -19,20 +19,9 @@ Rectangle {
id: lastBlockLabel
objectName: "lastBlockLabel"
text: "---"
- onTextChanged: {
- //menuItem.secondaryTitle = text
- }
- }
-
- Label {
- objectName: "miningLabel"
- visible: false
- font.pixelSize: 10
- anchors.right: lastBlockLabel.left
- anchors.rightMargin: 5
- onTextChanged: {
- menuItem.secondaryTitle = text
- }
+ onTextChanged: {
+ //menuItem.secondaryTitle = text
+ }
}
ColumnLayout {
diff --git a/cmd/mist/assets/qml/views/network.qml b/cmd/mist/assets/qml/views/network.qml
new file mode 100644
index 000000000..a628cc157
--- /dev/null
+++ b/cmd/mist/assets/qml/views/network.qml
@@ -0,0 +1,163 @@
+import QtQuick 2.0
+import QtQuick.Controls 1.0;
+import QtQuick.Controls.Styles 1.0
+import QtQuick.Layouts 1.0;
+import QtWebEngine 1.0
+import QtWebEngine.experimental 1.0
+import QtQuick.Window 2.0;
+import Ethereum 1.0
+import Qt.WebSockets 1.0
+//import "qwebchannel.js" as WebChannel
+
+
+
+Rectangle {
+ id: window
+ anchors.fill: parent
+ color: "#00000000"
+
+ property var title: "Network"
+ property var iconSource: "../mining-icon.png"
+ property var menuItem
+ property var hideUrl: true
+
+ property alias url: webview.url
+ property alias windowTitle: webview.title
+ property alias webView: webview
+
+ property var cleanPath: false
+ property var open: function(url) {
+ if(!window.cleanPath) {
+ var uri = url;
+ if(!/.*\:\/\/.*/.test(uri)) {
+ uri = "http://" + uri;
+ }
+
+ var reg = /(^https?\:\/\/(?:www\.)?)([a-zA-Z0-9_\-]*\.eth)(.*)/
+
+ if(reg.test(uri)) {
+ uri.replace(reg, function(match, pre, domain, path) {
+ uri = pre;
+
+ var lookup = eth.lookupDomain(domain.substring(0, domain.length - 4));
+ var ip = [];
+ for(var i = 0, l = lookup.length; i < l; i++) {
+ ip.push(lookup.charCodeAt(i))
+ }
+
+ if(ip.length != 0) {
+ uri += lookup;
+ } else {
+ uri += domain;
+ }
+
+ uri += path;
+ });
+ }
+
+ window.cleanPath = true;
+
+ webview.url = uri;
+
+ //uriNav.text = uri.text.replace(/(^https?\:\/\/(?:www\.)?)([a-zA-Z0-9_\-]*\.\w{2,3})(.*)/, "$1$2<span style='color:#CCC'>$3</span>");
+ uriNav.text = uri;
+
+ } else {
+ // Prevent inf loop.
+ window.cleanPath = false;
+ }
+ }
+
+ Label {
+ objectName: "miningLabel"
+ visible: false
+ font.pixelSize: 10
+ anchors.right: lastBlockLabel.left
+ anchors.rightMargin: 5
+ onTextChanged: {
+ menuItem.secondaryTitle = eth.miner().mining()? eth.miner().hashRate() + " Khash" : ""
+ }
+ }
+
+ Item {
+ objectName: "root"
+ id: root
+ anchors.fill: parent
+ state: "inspectorShown"
+
+ Timer {
+ interval: 1000; running: true; repeat: true
+ onTriggered: {
+ webview.runJavaScript("Miner.mining", function(miningSliderValue) {
+
+ // Check if it's mining and set it accordingly
+ if (miningSliderValue > 0 && !eth.miner().mining()) {
+ eth.setGasPrice("10000000000000");
+
+ eth.miner().start();
+ } else if (miningSliderValue == 0 && eth.miner().mining()) {
+ eth.miner().stop();
+ } else if (eth.miner().mining()) {
+
+ webview.runJavaScript('console.log(localStorage.timeSpent); Miner.timeSpentMining++; Miner.hashrate = ' + eth.miner().hashRate() );
+
+
+ } else if (miningSliderValue == "undefined") {
+
+ webview.runJavaScript('Miner.mining = 0' );
+
+ }
+ });
+
+ }
+ }
+
+ WebEngineView {
+ objectName: "webView"
+ id: webview
+ anchors.fill: parent
+
+ url: "http://localhost:3000/"
+
+ experimental.settings.javascriptCanAccessClipboard: true
+
+
+ onJavaScriptConsoleMessage: {
+ console.log(sourceID + ":" + lineNumber + ":" + JSON.stringify(message));
+ }
+
+ onLoadingChanged: {
+ if (loadRequest.status == WebEngineView.LoadSucceededStatus) {
+ webview.runJavaScript(eth.readFile("mist.js"));
+ }
+ }
+ }
+
+
+
+
+
+
+ WebEngineView {
+ id: inspector
+ visible: false
+ z:10
+ anchors {
+ left: root.left
+ right: root.right
+ top: root.top
+ bottom: root.bottom
+ }
+
+ }
+
+ states: [
+ State {
+ name: "inspectorShown"
+ PropertyChanges {
+ target: inspector
+ }
+ }
+ ]
+ }
+}
diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index 4af0cff43..e4b7a7ccb 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -419,8 +419,7 @@ func (gui *Gui) update() {
case <-generalUpdateTicker.C:
statusText := "#" + gui.eth.ChainManager().CurrentBlock().Number().String()
lastBlockLabel.Set("text", statusText)
- miningLabel.Set("text", "Mining @ "+strconv.FormatInt(gui.uiLib.Miner().HashRate(), 10)+"/Khash")
-
+ //miningLabel.Set("text", strconv.FormatInt(gui.uiLib.Miner().HashRate(), 10))
case <-statsUpdateTicker.C:
gui.setStatsPane()
}