From 3ea45de7c73b87e34bea7707f9c36368a011cebc Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Fri, 22 Mar 2019 13:16:56 -0700 Subject: [PATCH] fixing qml bug in MicBar --- interface/resources/qml/AvatarInputsBar.qml | 35 ++++++++++++++----- interface/resources/qml/hifi/audio/MicBar.qml | 2 +- interface/src/scripting/Audio.cpp | 3 ++ 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/interface/resources/qml/AvatarInputsBar.qml b/interface/resources/qml/AvatarInputsBar.qml index adeb74242d..d975312aad 100644 --- a/interface/resources/qml/AvatarInputsBar.qml +++ b/interface/resources/qml/AvatarInputsBar.qml @@ -19,30 +19,49 @@ Item { objectName: "AvatarInputsBar" property int modality: Qt.NonModal readonly property bool ignoreRadiusEnabled: AvatarInputs.ignoreRadiusEnabled; - width: HMD.active ? audio.width : audioApplication.width; - height: HMD.active ? audio.height : audioApplication.height; x: 10; y: 5; readonly property bool shouldReposition: true; + property bool hmdActive: HMD.active; + width: hmdActive ? audio.width : audioApplication.width; + height: hmdActive ? audio.height : audioApplication.height; + + onHmdActiveChanged: { + console.log("hmd active = " + hmdActive); + } + + Timer { + id: hmdActiveCheckTimer; + interval: 500; + repeat: true; + onTriggered: { + root.hmdActive = HMD.active; + } + + } HifiAudio.MicBar { id: audio; - visible: AvatarInputs.showAudioTools && HMD.active; + visible: AvatarInputs.showAudioTools && root.hmdActive; standalone: true; dragTarget: parent; } HifiAudio.MicBarApplication { id: audioApplication; - visible: AvatarInputs.showAudioTools && !HMD.active; - onVisibleChanged: { - console.log("visible changed: " + visible); - } + visible: AvatarInputs.showAudioTools && !root.hmdActive; standalone: true; dragTarget: parent; } + + Component.onCompleted: { + HMD.displayModeChanged.connect(function(isHmdMode) { + root.hmdActive = isHmdMode; + }); + } + BubbleIcon { dragTarget: parent - visible: !HMD.active; + visible: !root.hmdActive; } } diff --git a/interface/resources/qml/hifi/audio/MicBar.qml b/interface/resources/qml/hifi/audio/MicBar.qml index 71e3764826..4b243e033a 100644 --- a/interface/resources/qml/hifi/audio/MicBar.qml +++ b/interface/resources/qml/hifi/audio/MicBar.qml @@ -19,9 +19,9 @@ Rectangle { id: micBar HifiConstants { id: hifi; } + property var muted: AudioScriptingInterface.muted; readonly property var level: AudioScriptingInterface.inputLevel; readonly property var clipping: AudioScriptingInterface.clipping; - readonly property var muted: AudioScriptingInterface.muted; readonly property var pushToTalk: AudioScriptingInterface.pushToTalk; readonly property var pushingToTalk: AudioScriptingInterface.pushingToTalk; diff --git a/interface/src/scripting/Audio.cpp b/interface/src/scripting/Audio.cpp index 434688e474..0e0d13ae45 100644 --- a/interface/src/scripting/Audio.cpp +++ b/interface/src/scripting/Audio.cpp @@ -228,6 +228,9 @@ void Audio::loadData() { setMutedHMD(_hmdMutedSetting.get()); setPTTDesktop(_pttDesktopSetting.get()); setPTTHMD(_pttHMDSetting.get()); + + auto client = DependencyManager::get().data(); + QMetaObject::invokeMethod(client, "setMuted", Q_ARG(bool, isMuted()), Q_ARG(bool, false)); } bool Audio::getPTTHMD() const {