mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-06-21 20:49:29 +02:00
Change the "Mute" tablet button to "Audio"
This commit is contained in:
parent
98c1a18326
commit
77f0fb1491
6 changed files with 52 additions and 16 deletions
|
@ -14,6 +14,7 @@ FocusScope {
|
||||||
|
|
||||||
property var rootMenu: Menu { objectName:"rootMenu" }
|
property var rootMenu: Menu { objectName:"rootMenu" }
|
||||||
property var point: Qt.point(50, 50)
|
property var point: Qt.point(50, 50)
|
||||||
|
property string subMenu: ""
|
||||||
|
|
||||||
TabletMouseHandler { id: menuPopperUpper }
|
TabletMouseHandler { id: menuPopperUpper }
|
||||||
|
|
||||||
|
@ -101,6 +102,24 @@ FocusScope {
|
||||||
buildMenu()
|
buildMenu()
|
||||||
}
|
}
|
||||||
function buildMenu() {
|
function buildMenu() {
|
||||||
menuPopperUpper.popup(tabletMenu, rootMenu.items)
|
// Build submenu if specified.
|
||||||
|
if (subMenu !== "") {
|
||||||
|
var index = 0;
|
||||||
|
var found = false;
|
||||||
|
while (!found && index < rootMenu.items.length) {
|
||||||
|
found = rootMenu.items[index].title === subMenu;
|
||||||
|
if (!found) {
|
||||||
|
index += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
subMenu = ""; // Continue with full menu after initially displaying submenu.
|
||||||
|
if (found) {
|
||||||
|
menuPopperUpper.popup(tabletMenu, rootMenu.items[index].items);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise build whole menu.
|
||||||
|
menuPopperUpper.popup(tabletMenu, rootMenu.items);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,14 @@ Item {
|
||||||
objectName: "tabletRoot"
|
objectName: "tabletRoot"
|
||||||
property string username: "Unknown user"
|
property string username: "Unknown user"
|
||||||
property var eventBridge;
|
property var eventBridge;
|
||||||
|
property string option: ""
|
||||||
|
|
||||||
signal showDesktop();
|
signal showDesktop();
|
||||||
|
|
||||||
|
function setOption(value) {
|
||||||
|
option = value;
|
||||||
|
}
|
||||||
|
|
||||||
function loadSource(url) {
|
function loadSource(url) {
|
||||||
loader.source = url;
|
loader.source = url;
|
||||||
}
|
}
|
||||||
|
@ -72,6 +77,9 @@ Item {
|
||||||
if (loader.item.hasOwnProperty("sendToScript")) {
|
if (loader.item.hasOwnProperty("sendToScript")) {
|
||||||
loader.item.sendToScript.connect(tabletRoot.sendToScript);
|
loader.item.sendToScript.connect(tabletRoot.sendToScript);
|
||||||
}
|
}
|
||||||
|
if (loader.item.hasOwnProperty("subMenu")) {
|
||||||
|
loader.item.subMenu = option;
|
||||||
|
}
|
||||||
loader.item.forceActiveFocus();
|
loader.item.forceActiveFocus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,10 +213,11 @@ void TabletProxy::setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabletProxy::gotoMenuScreen() {
|
void TabletProxy::gotoMenuScreen(const QString& submenu) {
|
||||||
if (_qmlTabletRoot) {
|
if (_qmlTabletRoot) {
|
||||||
if (_state != State::Menu) {
|
if (_state != State::Menu) {
|
||||||
removeButtonsFromHomeScreen();
|
removeButtonsFromHomeScreen();
|
||||||
|
QMetaObject::invokeMethod(_qmlTabletRoot, "setOption", Q_ARG(const QVariant&, QVariant(submenu)));
|
||||||
auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader");
|
auto loader = _qmlTabletRoot->findChild<QQuickItem*>("loader");
|
||||||
QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToMenuScreen()), Qt::DirectConnection);
|
QObject::connect(loader, SIGNAL(loaded()), this, SLOT(addButtonsToMenuScreen()), Qt::DirectConnection);
|
||||||
QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL)));
|
QMetaObject::invokeMethod(_qmlTabletRoot, "loadSource", Q_ARG(const QVariant&, QVariant(VRMENU_SOURCE_URL)));
|
||||||
|
|
|
@ -72,7 +72,7 @@ public:
|
||||||
|
|
||||||
void setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscreenSurface);
|
void setQmlTabletRoot(QQuickItem* qmlTabletRoot, QObject* qmlOffscreenSurface);
|
||||||
|
|
||||||
Q_INVOKABLE void gotoMenuScreen();
|
Q_INVOKABLE void gotoMenuScreen(const QString& submenu = "");
|
||||||
|
|
||||||
/**jsdoc
|
/**jsdoc
|
||||||
* transition to the home screen
|
* transition to the home screen
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
var DEFAULT_SCRIPTS = [
|
var DEFAULT_SCRIPTS = [
|
||||||
"system/progress.js",
|
"system/progress.js",
|
||||||
"system/away.js",
|
"system/away.js",
|
||||||
"system/mute.js",
|
"system/audio.js",
|
||||||
"system/hmd.js",
|
"system/hmd.js",
|
||||||
"system/menu.js",
|
"system/menu.js",
|
||||||
"system/bubble.js",
|
"system/bubble.js",
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
//
|
//
|
||||||
// goto.js
|
// audio.js
|
||||||
// scripts/system/
|
|
||||||
//
|
//
|
||||||
// Created by Howard Stearns on 2 Jun 2016
|
// Created by Howard Stearns on 2 Jun 2016
|
||||||
// Copyright 2016 High Fidelity, Inc.
|
// Copyright 2016 High Fidelity, Inc.
|
||||||
|
@ -14,22 +13,33 @@
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
var button;
|
var button;
|
||||||
var buttonName = "MUTE";
|
var TOOLBAR_BUTTON_NAME = "MUTE";
|
||||||
|
var TABLET_BUTTON_NAME = "AUDIO";
|
||||||
var toolBar = null;
|
var toolBar = null;
|
||||||
var tablet = null;
|
var tablet = null;
|
||||||
|
var isHUDUIEnabled = Settings.getValue("HUDUIEnabled");
|
||||||
|
var HOME_BUTTON_TEXTURE = "http://hifi-content.s3.amazonaws.com/alan/dev/tablet-with-home-button.fbx/tablet-with-home-button.fbm/button-root.png";
|
||||||
|
|
||||||
function onMuteToggled() {
|
function onMuteToggled() {
|
||||||
button.editProperties({isActive: AudioDevice.getMuted()});
|
if (isHUDUIEnabled) {
|
||||||
|
button.editProperties({ isActive: AudioDevice.getMuted() });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function onClicked(){
|
function onClicked(){
|
||||||
var menuItem = "Mute Microphone";
|
if (isHUDUIEnabled) {
|
||||||
Menu.setIsOptionChecked(menuItem, !Menu.isOptionChecked(menuItem));
|
var menuItem = "Mute Microphone";
|
||||||
|
Menu.setIsOptionChecked(menuItem, !Menu.isOptionChecked(menuItem));
|
||||||
|
} else {
|
||||||
|
var entity = HMD.tabletID;
|
||||||
|
Entities.editEntity(entity, { textures: JSON.stringify({ "tex.close": HOME_BUTTON_TEXTURE }) });
|
||||||
|
tablet.gotoMenuScreen("Audio");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Settings.getValue("HUDUIEnabled")) {
|
if (Settings.getValue("HUDUIEnabled")) {
|
||||||
toolBar = Toolbars.getToolbar("com.highfidelity.interface.toolbar.system");
|
toolBar = Toolbars.getToolbar("com.highfidelity.interface.toolbar.system");
|
||||||
button = toolBar.addButton({
|
button = toolBar.addButton({
|
||||||
objectName: buttonName,
|
objectName: TOOLBAR_BUTTON_NAME,
|
||||||
imageURL: Script.resolvePath("assets/images/tools/mic.svg"),
|
imageURL: Script.resolvePath("assets/images/tools/mic.svg"),
|
||||||
visible: true,
|
visible: true,
|
||||||
alpha: 0.9
|
alpha: 0.9
|
||||||
|
@ -37,10 +47,8 @@ if (Settings.getValue("HUDUIEnabled")) {
|
||||||
} else {
|
} else {
|
||||||
tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
|
tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
|
||||||
button = tablet.addButton({
|
button = tablet.addButton({
|
||||||
icon: "icons/tablet-icons/mic-a.svg",
|
icon: "icons/tablet-icons/mic-i.svg",
|
||||||
text: buttonName,
|
text: TABLET_BUTTON_NAME,
|
||||||
activeIcon: "icons/tablet-icons/mic-i.svg",
|
|
||||||
activeText: "UNMUTE",
|
|
||||||
sortOrder: 1
|
sortOrder: 1
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -56,7 +64,7 @@ Script.scriptEnding.connect(function () {
|
||||||
tablet.removeButton(button);
|
tablet.removeButton(button);
|
||||||
}
|
}
|
||||||
if (toolBar) {
|
if (toolBar) {
|
||||||
toolBar.removeButton(buttonName);
|
toolBar.removeButton(TOOLBAR_BUTTON_NAME);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue