aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-02-12 02:22:23 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-02-12 02:22:23 +0800
commitebc506dae8a15e5dcce4e4369e21d04e3b8f9aa4 (patch)
treee6c322bc8cea2419abb294e568623ca74a769365
parentd311b1b9b7a4b99fded617ca1806aa9f00f590ab (diff)
parent6221b282d40c18c5c79c459e3b6218cd565a20b1 (diff)
downloadgo-tangerine-ebc506dae8a15e5dcce4e4369e21d04e3b8f9aa4.tar.gz
go-tangerine-ebc506dae8a15e5dcce4e4369e21d04e3b8f9aa4.tar.zst
go-tangerine-ebc506dae8a15e5dcce4e4369e21d04e3b8f9aa4.zip
Merge pull request #302 from alexvandesande/UI
Catalog Page Behaviour
-rw-r--r--cmd/mist/assets/qml/main.qml54
-rw-r--r--cmd/mist/assets/qml/views/browser.qml19
-rw-r--r--cmd/mist/assets/qml/views/catalog.qml142
3 files changed, 96 insertions, 119 deletions
diff --git a/cmd/mist/assets/qml/main.qml b/cmd/mist/assets/qml/main.qml
index e169f54ec..d03ef43d9 100644
--- a/cmd/mist/assets/qml/main.qml
+++ b/cmd/mist/assets/qml/main.qml
@@ -39,7 +39,7 @@ ApplicationWindow {
// Takes care of loading all default plugins
Component.onCompleted: {
- addPlugin("./views/catalog.qml", {noAdd: true, close: false, section: "begin"});
+ var catalog = addPlugin("./views/catalog.qml", {noAdd: true, close: false, section: "begin"});
var wallet = addPlugin("./views/wallet.qml", {noAdd: true, close: false, section: "ethereum", active: true});
addPlugin("./views/miner.qml", {noAdd: true, close: false, section: "ethereum", active: true});
@@ -49,9 +49,9 @@ ApplicationWindow {
addPlugin("./views/pending_tx.qml", {noAdd: true, close: false, section: "legacy"});
addPlugin("./views/info.qml", {noAdd: true, close: false, section: "legacy"});
- mainSplit.setView(wallet.view, wallet.menuItem);
+ mainSplit.setView(catalog.view, catalog.menuItem);
- newBrowserTab("http://ethereum-dapp-whisper-client.meteor.com/chat/amsteam");
+ //newBrowserTab("http://ethereum-dapp-catalog.meteor.com");
// Command setup
gui.sendCommand(0)
@@ -114,10 +114,33 @@ ApplicationWindow {
}
function newBrowserTab(url) {
- var window = addPlugin("./views/browser.qml", {noAdd: true, close: true, section: "apps", active: true});
- window.view.url = url;
- window.menuItem.title = "Mist";
- activeView(window.view, window.menuItem);
+
+ var urlMatches = url.toString().match(/^[a-z]*\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
+ var requestedDomain = urlMatches && urlMatches[1];
+
+ var domainAlreadyOpen = false;
+
+ console.log("requested: " + requestedDomain )
+
+ for(var i = 0; i < mainSplit.views.length; i++) {
+ if (mainSplit.views[i].view.url) {
+ var matches = mainSplit.views[i].view.url.toString().match(/^[a-z]*\:\/\/(?:www\.)?([^\/?#]+)(?:[\/?#]|$)/i);
+ var existingDomain = matches && matches[1];
+ console.log("exists: " + existingDomain);
+ if (requestedDomain == existingDomain) {
+ domainAlreadyOpen = true;
+ mainSplit.views[i].view.url = url;
+ activeView(mainSplit.views[i].view, mainSplit.views[i].menuItem);
+ }
+ }
+ }
+
+ if (!domainAlreadyOpen) {
+ var window = addPlugin("./views/browser.qml", {noAdd: true, close: true, section: "apps", active: true});
+ window.view.url = url;
+ window.menuItem.title = "Mist";
+ activeView(window.view, window.menuItem);
+ }
}
@@ -332,8 +355,9 @@ ApplicationWindow {
id: mainSplit
anchors.fill: parent
- resizing: false
+ //resizing: false // this is NOT where we remove that damning resizing handle..
handleDelegate: Item {
+ //This handle is a way to remove the line between the split views
Rectangle {
anchors.fill: parent
}
@@ -497,7 +521,7 @@ ApplicationWindow {
anchors.fill: parent
border.width: 0
radius: 5
- color: "#FFFFFFFF"
+ color: "#FAFAFA"
}
Rectangle {
anchors {
@@ -506,7 +530,7 @@ ApplicationWindow {
right: r.right
}
width: 10
- color: "#FFFFFFFF"
+ color: "#FAFAFA"
border.width:0
Rectangle {
@@ -517,7 +541,7 @@ ApplicationWindow {
top: parent.top
}
height: 1
- color: "#FFFFFF"
+ color: "#FAFAFA"
}
Rectangle {
@@ -528,7 +552,7 @@ ApplicationWindow {
bottom: parent.bottom
}
height: 1
- color: "#FFFFFF"
+ color: "#FAFAFA"
}
}
}
@@ -800,7 +824,7 @@ ApplicationWindow {
anchors.top: parent.top
color: "#00000000"
- Rectangle {
+ /*Rectangle {
id: urlPane
height: 40
color: "#00000000"
@@ -847,7 +871,7 @@ ApplicationWindow {
z: -1
height: 1
color: "#CCCCCC"
- }
+ }*/
Rectangle {
id: mainView
@@ -855,7 +879,7 @@ ApplicationWindow {
anchors.right: parent.right
anchors.left: parent.left
anchors.bottom: parent.bottom
- anchors.top: divider.bottom
+ anchors.top: parent.top
function createView(component) {
var view = component.createObject(mainView)
diff --git a/cmd/mist/assets/qml/views/browser.qml b/cmd/mist/assets/qml/views/browser.qml
index db89c6837..04b2229ec 100644
--- a/cmd/mist/assets/qml/views/browser.qml
+++ b/cmd/mist/assets/qml/views/browser.qml
@@ -345,14 +345,21 @@ Rectangle {
if (topBarStyle=="transparent") {
// Adjust for a transparent sidebar Dapp
- navBarBackground.visible = false;
- back.visible = false;
- appInfoPane.anchors.leftMargin = -16;
- appInfoPaneShadow.anchors.leftMargin = -16;
- webview.anchors.topMargin = -74;
+ navBarBackground.visible = false;
+ back.visible = false;
+ appInfoPane.anchors.leftMargin = -16;
+ appInfoPaneShadow.anchors.leftMargin = -16;
+ webview.anchors.topMargin = -74;
webview.runJavaScript("document.querySelector('body').classList.add('ethereum-dapp-url-bar-style-transparent')")
- };
+ } else {
+ navBarBackground.visible = true;
+ back.visible = true;
+ appInfoPane.anchors.leftMargin = 0;
+ appInfoPaneShadow.anchors.leftMargin = 0;
+ webview.anchors.topMargin = 0;
+
+ };
});
diff --git a/cmd/mist/assets/qml/views/catalog.qml b/cmd/mist/assets/qml/views/catalog.qml
index 7f42c25dc..a7832e9fa 100644
--- a/cmd/mist/assets/qml/views/catalog.qml
+++ b/cmd/mist/assets/qml/views/catalog.qml
@@ -12,7 +12,7 @@ Rectangle {
anchors.fill: parent
color: "#00000000"
- property var title: ""
+ property var title: "Catalog"
property var iconSource: ""
property var menuItem
property var hideUrl: true
@@ -75,111 +75,57 @@ Rectangle {
anchors.fill: parent
state: "inspectorShown"
- RowLayout {
- id: navBar
- height: 184
- z: 20
-
- anchors {
- left: parent.left
- right: parent.right
- }
-
- Rectangle {
- id: appInfoPane
- height: 28
- color: "#efefef"
- radius: 6
- z:25
-
- MouseArea {
- anchors.fill: parent
- z: 10
- hoverEnabled: true
- onEntered: {
- uriNav.visible = true
- appTitle.visible = false
- appDomain.visible = false
- }
- }
-
- anchors {
- left: parent.left
- right: parent.right
- leftMargin: 10
- rightMargin: 10
- top: parent.verticalCenter
- topMargin: 23
- }
-
- TextField {
- id: uriNav
- anchors {
- left: parent.left
- right: parent.right
- leftMargin: 16
- top: parent.verticalCenter
- topMargin: -10
- }
-
- horizontalAlignment: Text.AlignHCenter
-
- style: TextFieldStyle {
- textColor: "#928484"
- background: Rectangle {
- border.width: 0
- color: "transparent"
- }
- }
- text: "Type the address of a new Dapp";
- y: parent.height / 2 - this.height / 2
- z: 30
- activeFocusOnPress: true
- Keys.onReturnPressed: {
- newBrowserTab(this.text);
- this.text = "Type the address of a new Dapp";
- }
-
- }
- }
-
- Rectangle {
- id: appInfoPaneShadow
- width: 10
- height: 30
- color: "#BDB6B6"
- radius: 6
- z: 15
-
- anchors {
- left: parent.left
- right: parent.right
- leftMargin:10
- rightMargin:10
- top: parent.verticalCenter
- topMargin: 23
- }
-
-
- }
-
- }
-
-
WebEngineView {
objectName: "webView"
id: webview
anchors.fill: parent
- onLoadingChanged: {
- if (loadRequest.status == WebEngineView.LoadSucceededStatus) {
- webview.runJavaScript(eth.readFile("bignumber.min.js"));
- webview.runJavaScript(eth.readFile("ethereum.js/dist/ethereum.js"));
- }
- }
+ property var protocol: "http://"
+ //property var domain: "localhost:3000"
+ property var domain: "ethereum-dapp-catalog.meteor.com"
+ url: protocol + domain
+
+ //navigationRequest: WebEngineView.IgnoreRequest
+ // onLoadingChanged: {
+ // if (loadRequest.status == WebEngineView.LoadSucceededStatus) {
+ // webview.runJavaScript(eth.readFile("bignumber.min.js"));
+ // webview.runJavaScript(eth.readFile("ethereum.js/dist/ethereum.js"));
+ // }
+ // }
+
+ //onNavigationRequested: {
+ // detect URL scheme prefix, most likely an external link
+ //var schemaRE = /^\w+:/;
+ //if (schemaRE.test(request.url)) {
+ // request.action = WebView.AcceptRequest;
+ //} else {
+ //request.action = WebView.IgnoreRequest;
+ // delegate request.url here
+ //}
+ //}
+
onJavaScriptConsoleMessage: {
console.log(sourceID + ":" + lineNumber + ":" + JSON.stringify(message));
}
+
+ onNavigationRequested: {
+ var cleanTitle = request.url.toString()
+ var matches = cleanTitle.match(/^[a-z]*\:\/\/([^\/?#]+)(?:[\/?#]|$)/i);
+ var requestedDomain = matches && matches[1];
+
+ console.debug ("NavigationRequested: " + request.url + " navigationType=" + request.navigationType)
+
+ if(request.navigationType==0){
+
+ if (requestedDomain === this.domain){
+ request.action = WebEngineView.AcceptRequest;
+ } else {
+ request.action = WebEngineView.IgnoreRequest;
+ newBrowserTab(request.url);
+ }
+
+ }
+ }
}