diff --git a/interface/resources/html/interface-welcome.html b/interface/resources/html/interface-welcome.html
index 26ae6ff5c0..1fc719ed72 100644
--- a/interface/resources/html/interface-welcome.html
+++ b/interface/resources/html/interface-welcome.html
@@ -1,8 +1,7 @@
-
Move around
-

+
- Move around with WASD & fly
- up or down with E & C.
- Cmnd/Ctrl+G will send you
- home. Hitting Enter will let you
+ Move around with WASD & fly
+ up or down with E & C.
+ Cmnd/Ctrl+G will send you
+ home. Hitting Enter will let you
teleport to a user or location.
-
Listen & talk
-

+
Listen & talk
+
- Use your best headphones
- and microphone for high
- fidelity audio. Chat via text by
+ Use your best headphones
+ and microphone for high
+ fidelity audio. Chat via text by
pressing the \ key.
Connect devices
-

+
- Have an Oculus Rift, a Razer
- Hydra, or a PrimeSense 3D
+ Have an Oculus Rift, a Razer
+ Hydra, or a PrimeSense 3D
camera? We support them all.
Run a script
-

+
- Cmnd/Cntrl+J will launch a
- Running Scripts dialog to help
- manage your scripts and search
+ Cmnd/Cntrl+J will launch a
+ Running Scripts dialog to help
+ manage your scripts and search
for new ones to run.
Script something
-

+
- Write a script; we're always
- adding new features.
- Cmnd/Cntrl+J will launch a
- Running Scripts dialog to help
+ Write a script; we're always
+ adding new features.
+ Cmnd/Cntrl+J will launch a
+ Running Scripts dialog to help
manage your scripts.
Import models
-

+
- Use the edit.js script to
- add FBX models in-world. You
- can use grids and fine tune
- placement-related parameters
+ Use the edit.js script to
+ add FBX models in-world. You
+ can use grids and fine tune
+ placement-related parameters
with ease.
@@ -149,20 +148,19 @@
Read the docs
- We are writing documentation on
- just about everything. Please,
- devour all we've written and make
- suggestions where necessary.
- Documentation is always at
+ We are writing documentation on
+ just about everything. Please,
+ devour all we've written and make
+ suggestions where necessary.
+ Documentation is always at
docs.highfidelity.com
-
-
+//]]>
diff --git a/interface/resources/qml/Browser.qml b/interface/resources/qml/Browser.qml
index a439f9114c..55a0a6a461 100644
--- a/interface/resources/qml/Browser.qml
+++ b/interface/resources/qml/Browser.qml
@@ -2,29 +2,149 @@ import QtQuick 2.3
import QtQuick.Controls 1.2
import QtWebKit 3.0
import "controls"
+import "styles"
Dialog {
- title: "Browser Window"
- id: testDialog
- objectName: "Browser"
- width: 1280
- height: 720
+ id: root
+ HifiConstants { id: hifi }
+ title: "Browser"
+ resizable: true
+ contentImplicitWidth: clientArea.implicitWidth
+ contentImplicitHeight: clientArea.implicitHeight
+ backgroundColor: "#7f000000"
+
+
+ Component.onCompleted: {
+ enabled = true
+ addressBar.text = webview.url
+ }
+
+ onParentChanged: {
+ if (visible && enabled) {
+ addressBar.forceActiveFocus();
+ addressBar.selectAll()
+ }
+ }
Item {
id: clientArea
- // The client area
- anchors.fill: parent
- anchors.margins: parent.margins
- anchors.topMargin: parent.topMargin
-
+ implicitHeight: 600
+ implicitWidth: 800
+ x: root.clientX
+ y: root.clientY
+ width: root.clientWidth
+ height: root.clientHeight
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: scrollView.top
+ color: "white"
+ }
+ Row {
+ id: buttons
+ spacing: 4
+ anchors.top: parent.top
+ anchors.topMargin: 8
+ anchors.left: parent.left
+ anchors.leftMargin: 8
+ FontAwesome {
+ id: back; text: "\uf0a8"; size: 48; enabled: webview.canGoBack;
+ color: enabled ? hifi.colors.text : hifi.colors.disabledText
+ MouseArea { anchors.fill: parent; onClicked: webview.goBack() }
+ }
+ FontAwesome {
+ id: forward; text: "\uf0a9"; size: 48; enabled: webview.canGoForward;
+ color: enabled ? hifi.colors.text : hifi.colors.disabledText
+ MouseArea { anchors.fill: parent; onClicked: webview.goBack() }
+ }
+ FontAwesome {
+ id: reload; size: 48; text: webview.loading ? "\uf057" : "\uf021"
+ MouseArea { anchors.fill: parent; onClicked: webview.loading ? webview.stop() : webview.reload() }
+ }
+ }
+
+ Border {
+ height: 48
+ radius: 8
+ anchors.top: parent.top
+ anchors.topMargin: 8
+ anchors.right: parent.right
+ anchors.rightMargin: 8
+ anchors.left: buttons.right
+ anchors.leftMargin: 8
+
+ Item {
+ id: barIcon
+ width: parent.height
+ height: parent.height
+ Image {
+ source: webview.icon;
+ x: (parent.height - height) / 2
+ y: (parent.width - width) / 2
+ verticalAlignment: Image.AlignVCenter;
+ horizontalAlignment: Image.AlignHCenter
+ onSourceChanged: console.log("Icon url: " + source)
+ }
+ }
+
+ TextInput {
+ id: addressBar
+ anchors.right: parent.right
+ anchors.rightMargin: 8
+ anchors.left: barIcon.right
+ anchors.leftMargin: 0
+ anchors.verticalCenter: parent.verticalCenter
+
+ Keys.onPressed: {
+ switch(event.key) {
+ case Qt.Key_Enter:
+ case Qt.Key_Return:
+ event.accepted = true
+ if (text.indexOf("http") != 0) {
+ text = "http://" + text
+ }
+ webview.url = text
+ break;
+ }
+ }
+ }
+ }
+
ScrollView {
- anchors.fill: parent
+ id: scrollView
+ anchors.top: buttons.bottom
+ anchors.topMargin: 8
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
WebView {
id: webview
- url: "http://slashdot.org"
+ url: "http://highfidelity.com"
anchors.fill: parent
+ onLoadingChanged: {
+ if (loadRequest.status == WebView.LoadSucceededStarted) {
+ addressBar.text = loadRequest.url
+ }
+ }
+ onIconChanged: {
+ barIcon.source = icon
+ }
}
- }
-
- }
-}
+ }
+ } // item
+
+ Keys.onPressed: {
+ switch(event.key) {
+ case Qt.Key_L:
+ if (event.modifiers == Qt.ControlModifier) {
+ event.accepted = true
+ addressBar.selectAll()
+ addressBar.forceActiveFocus()
+ }
+ break;
+ }
+ }
+
+} // dialog
diff --git a/interface/resources/qml/InfoView.qml b/interface/resources/qml/InfoView.qml
new file mode 100644
index 0000000000..6b49e6f0c7
--- /dev/null
+++ b/interface/resources/qml/InfoView.qml
@@ -0,0 +1,32 @@
+import Hifi 1.0 as Hifi
+import QtQuick 2.3
+import QtQuick.Controls 1.2
+import QtQuick.Controls.Styles 1.3
+import QtWebKit 3.0
+import "controls"
+
+Dialog {
+ id: root
+ width: 800
+ height: 800
+ resizable: true
+
+ Hifi.InfoView {
+ id: infoView
+ // Fille the client area
+ anchors.fill: parent
+ anchors.margins: parent.margins
+ anchors.topMargin: parent.topMargin
+
+ ScrollView {
+ anchors.fill: parent
+ WebView {
+ objectName: "WebView"
+ id: webview
+ url: infoView.url
+ anchors.fill: parent
+ }
+ }
+
+ }
+}
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 5c9842b777..b1ef689599 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -85,7 +85,7 @@
#include