mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 03:58:07 +02:00
Stand-alone Tags: Throw up popup for first unoptimized domain
Throw up a popup in stand-alone builds when user attempts to go to an unoptimized domain.
This commit is contained in:
parent
b38fc65372
commit
750dbfae21
5 changed files with 185 additions and 13 deletions
|
@ -269,7 +269,7 @@ Item {
|
||||||
hoverEnabled: false
|
hoverEnabled: false
|
||||||
onClicked: {
|
onClicked: {
|
||||||
Tablet.playSound(TabletEnums.ButtonClick);
|
Tablet.playSound(TabletEnums.ButtonClick);
|
||||||
goFunction("hifi://" + hifiUrl);
|
goFunction("hifi://" + hifiUrl, standaloneOptimized);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,11 +92,11 @@ Rectangle {
|
||||||
});
|
});
|
||||||
categoriesModel.append({
|
categoriesModel.append({
|
||||||
id: -1,
|
id: -1,
|
||||||
name: "Standalone Optimized"
|
name: "Stand-alone Optimized"
|
||||||
});
|
});
|
||||||
categoriesModel.append({
|
categoriesModel.append({
|
||||||
id: -1,
|
id: -1,
|
||||||
name: "Standalone Compatible"
|
name: "Stand-alone Compatible"
|
||||||
});
|
});
|
||||||
result.data.items.forEach(function(category) {
|
result.data.items.forEach(function(category) {
|
||||||
categoriesModel.append({
|
categoriesModel.append({
|
||||||
|
|
144
interface/resources/qml/hifi/tablet/TADLightbox.qml
Normal file
144
interface/resources/qml/hifi/tablet/TADLightbox.qml
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
//
|
||||||
|
// TADLightbox.qml
|
||||||
|
// qml/hifi/tablet
|
||||||
|
//
|
||||||
|
// TADLightbox
|
||||||
|
//
|
||||||
|
// Created by Roxanne Skelly on 2019-03-07
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
import Hifi 1.0 as Hifi
|
||||||
|
import QtQuick 2.5
|
||||||
|
import QtGraphicalEffects 1.0
|
||||||
|
import stylesUit 1.0
|
||||||
|
import controlsUit 1.0 as HifiControlsUit
|
||||||
|
import "qrc:////qml//controls" as HifiControls
|
||||||
|
|
||||||
|
// references XXX from root context
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
property string titleText;
|
||||||
|
property string bodyImageSource;
|
||||||
|
property string bodyText;
|
||||||
|
property string button1color: hifi.buttons.noneBorderlessGray;
|
||||||
|
property string button1text;
|
||||||
|
property var button1method;
|
||||||
|
property string button2color: hifi.buttons.blue;
|
||||||
|
property string button2text;
|
||||||
|
property var button2method;
|
||||||
|
property string buttonLayout: "leftright";
|
||||||
|
|
||||||
|
id: root;
|
||||||
|
visible: false;
|
||||||
|
anchors.fill: parent;
|
||||||
|
color: Qt.rgba(0, 0, 0, 0.5);
|
||||||
|
z: 999;
|
||||||
|
|
||||||
|
HifiConstants { id: hifi; }
|
||||||
|
|
||||||
|
// This object is always used in a popup.
|
||||||
|
// This MouseArea is used to prevent a user from being
|
||||||
|
// able to click on a button/mouseArea underneath the popup.
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent;
|
||||||
|
propagateComposedEvents: false;
|
||||||
|
hoverEnabled: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.centerIn: parent;
|
||||||
|
width: 376;
|
||||||
|
height: childrenRect.height + 30;
|
||||||
|
color: "white";
|
||||||
|
|
||||||
|
RalewaySemiBold {
|
||||||
|
id: titleText;
|
||||||
|
text: root.titleText;
|
||||||
|
anchors.top: parent.top;
|
||||||
|
anchors.topMargin: 30;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 30;
|
||||||
|
anchors.right: parent.right;
|
||||||
|
anchors.rightMargin: 30;
|
||||||
|
height: paintedHeight;
|
||||||
|
color: hifi.colors.black;
|
||||||
|
size: 24;
|
||||||
|
verticalAlignment: Text.AlignTop;
|
||||||
|
wrapMode: Text.WordWrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
RalewayRegular {
|
||||||
|
id: bodyText;
|
||||||
|
text: root.bodyText;
|
||||||
|
anchors.top: root.bodyImageSource ? bodyImage.bottom : (root.titleText ? titleText.bottom : parent.top);
|
||||||
|
anchors.topMargin: root.bodyImageSource ? 20 : (root.titleText ? 20 : 30);
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: 30;
|
||||||
|
anchors.right: parent.right;
|
||||||
|
anchors.rightMargin: 30;
|
||||||
|
height: paintedHeight;
|
||||||
|
color: hifi.colors.black;
|
||||||
|
size: 20;
|
||||||
|
verticalAlignment: Text.AlignTop;
|
||||||
|
wrapMode: Text.WordWrap;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: buttons;
|
||||||
|
anchors.top: bodyText.bottom;
|
||||||
|
anchors.topMargin: 30;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.right: parent.right;
|
||||||
|
height: root.buttonLayout === "leftright" ? 70 : 150;
|
||||||
|
|
||||||
|
// Button 1
|
||||||
|
HifiControlsUit.Button {
|
||||||
|
id: button1;
|
||||||
|
color: root.button1color;
|
||||||
|
colorScheme: hifi.colorSchemes.light;
|
||||||
|
anchors.top: root.buttonLayout === "leftright" ? parent.top : parent.top;
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: root.buttonLayout === "leftright" ? 30 : 10;
|
||||||
|
anchors.right: root.buttonLayout === "leftright" ? undefined : parent.right;
|
||||||
|
anchors.rightMargin: root.buttonLayout === "leftright" ? undefined : 10;
|
||||||
|
width: root.buttonLayout === "leftright" ? (root.button2text ? parent.width/2 - anchors.leftMargin*2 : parent.width - anchors.leftMargin * 2) :
|
||||||
|
(undefined);
|
||||||
|
height: 40;
|
||||||
|
text: root.button1text;
|
||||||
|
onClicked: {
|
||||||
|
button1method();
|
||||||
|
}
|
||||||
|
visible: (root.button1text !== "");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Button 2
|
||||||
|
HifiControlsUit.Button {
|
||||||
|
id: button2;
|
||||||
|
visible: root.button2text;
|
||||||
|
color: root.button2color;
|
||||||
|
colorScheme: hifi.colorSchemes.light;
|
||||||
|
anchors.top: root.buttonLayout === "leftright" ? parent.top : button1.bottom;
|
||||||
|
anchors.topMargin: root.buttonLayout === "leftright" ? undefined : 20;
|
||||||
|
anchors.left: root.buttonLayout === "leftright" ? undefined : parent.left;
|
||||||
|
anchors.leftMargin: root.buttonLayout === "leftright" ? undefined : 10;
|
||||||
|
anchors.right: parent.right;
|
||||||
|
anchors.rightMargin: root.buttonLayout === "leftright" ? 30 : 10;
|
||||||
|
width: root.buttonLayout === "leftright" ? parent.width/2 - anchors.rightMargin*2 : undefined;
|
||||||
|
height: 40;
|
||||||
|
text: root.button2text;
|
||||||
|
onClicked: {
|
||||||
|
button2method();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// FUNCTION DEFINITIONS END
|
||||||
|
//
|
||||||
|
}
|
|
@ -73,7 +73,7 @@ StackView {
|
||||||
function resetAfterTeleport() {
|
function resetAfterTeleport() {
|
||||||
//storyCardFrame.shown = root.shown = false;
|
//storyCardFrame.shown = root.shown = false;
|
||||||
}
|
}
|
||||||
function goCard(targetString) {
|
function goCard(targetString, standaloneOptimized) {
|
||||||
if (0 !== targetString.indexOf('hifi://')) {
|
if (0 !== targetString.indexOf('hifi://')) {
|
||||||
var card = tabletWebView.createObject();
|
var card = tabletWebView.createObject();
|
||||||
card.url = addressBarDialog.metaverseServerUrl + targetString;
|
card.url = addressBarDialog.metaverseServerUrl + targetString;
|
||||||
|
@ -82,7 +82,7 @@ StackView {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
location.text = targetString;
|
location.text = targetString;
|
||||||
toggleOrGo(targetString, true);
|
toggleOrGo(targetString, true, standaloneOptimized);
|
||||||
clearAddressLineTimer.start();
|
clearAddressLineTimer.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,7 +392,18 @@ StackView {
|
||||||
right: parent.right
|
right: parent.right
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TADLightbox {
|
||||||
|
id: unoptimizedDomain
|
||||||
|
titleText: "Unoptimized Domain"
|
||||||
|
bodyText: "You're trying to access a place that hasn't been optimized for your device. Are you sure you want to continue."
|
||||||
|
button1text: "CANCEL"
|
||||||
|
button2text: "YES CONTINUE"
|
||||||
|
visible: false
|
||||||
|
button1method: function() {
|
||||||
|
visible = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateLocationText(enteringAddress) {
|
function updateLocationText(enteringAddress) {
|
||||||
|
@ -407,14 +418,30 @@ StackView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleOrGo(address, fromSuggestions) {
|
function toggleOrGo(address, fromSuggestions, standaloneOptimized) {
|
||||||
if (address !== undefined && address !== "") {
|
|
||||||
addressBarDialog.loadAddress(address, fromSuggestions);
|
var goTarget = function () {
|
||||||
clearAddressLineTimer.start();
|
if (address !== undefined && address !== "") {
|
||||||
} else if (addressLine.text !== "") {
|
addressBarDialog.loadAddress(address, fromSuggestions);
|
||||||
addressBarDialog.loadAddress(addressLine.text, fromSuggestions);
|
clearAddressLineTimer.start();
|
||||||
clearAddressLineTimer.start();
|
} else if (addressLine.text !== "") {
|
||||||
|
addressBarDialog.loadAddress(addressLine.text, fromSuggestions);
|
||||||
|
clearAddressLineTimer.start();
|
||||||
|
}
|
||||||
|
DialogsManager.hideAddressBar();
|
||||||
|
}
|
||||||
|
|
||||||
|
unoptimizedDomain.button2method = function() {
|
||||||
|
Settings.setValue("ShowUnoptimizedDomainWarning", false);
|
||||||
|
goTarget();
|
||||||
|
}
|
||||||
|
|
||||||
|
var showPopup = PlatformInfo.isStandalone() && !standaloneOptimized && Settings.getValue("ShowUnoptimizedDomainWarning", true);
|
||||||
|
|
||||||
|
if(!showPopup) {
|
||||||
|
goTarget();
|
||||||
|
} else {
|
||||||
|
unoptimizedDomain.visible = true;
|
||||||
}
|
}
|
||||||
DialogsManager.hideAddressBar();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3036,6 +3036,7 @@ void Application::initializeUi() {
|
||||||
QUrl{ "hifi/commerce/purchases/Purchases.qml" },
|
QUrl{ "hifi/commerce/purchases/Purchases.qml" },
|
||||||
QUrl{ "hifi/commerce/wallet/Wallet.qml" },
|
QUrl{ "hifi/commerce/wallet/Wallet.qml" },
|
||||||
QUrl{ "hifi/commerce/wallet/WalletHome.qml" },
|
QUrl{ "hifi/commerce/wallet/WalletHome.qml" },
|
||||||
|
QUrl{ "hifi/tablet/TabletAddressDialog.qml" },
|
||||||
}, platformInfoCallback);
|
}, platformInfoCallback);
|
||||||
|
|
||||||
QmlContextCallback ttsCallback = [](QQmlContext* context) {
|
QmlContextCallback ttsCallback = [](QQmlContext* context) {
|
||||||
|
|
Loading…
Reference in a new issue