Make clicking the tablet mic icon or audio bar toggle the mute state

This commit is contained in:
David Rowe 2017-02-11 15:11:27 +13:00
parent acaf8c69c6
commit a08347936e
4 changed files with 33 additions and 4 deletions

View file

@ -1,4 +1,4 @@
import QtQuick 2.0
import QtQuick 2.5
import QtGraphicalEffects 1.0
import "../../styles-uit"
@ -104,6 +104,7 @@ Item {
anchors.top: parent.top
Item {
id: audioIcon
anchors.verticalCenter: parent.verticalCenter
width: 40
height: 40
@ -116,7 +117,8 @@ Item {
}
Item {
visible: !tablet.micEnabled
visible: (!tablet.micEnabled && !toggleMuteMouseArea.containsMouse)
|| (tablet.micEnabled && toggleMuteMouseArea.containsMouse)
Image {
id: muteIcon
@ -126,13 +128,13 @@ Item {
ColorOverlay {
anchors.fill: muteIcon
source: muteIcon
color: "#ff0000"
color: toggleMuteMouseArea.containsMouse ? "#a0a0a0" : "#ff0000"
}
}
}
Item {
id: item1
id: audioBar
width: 170
height: 10
anchors.left: parent.left
@ -182,6 +184,22 @@ Item {
}
}
MouseArea {
id: toggleMuteMouseArea
anchors {
left: audioIcon.left
right: audioBar.right
top: audioIcon.top
bottom: audioIcon.bottom
}
hoverEnabled: true
preventStealing: true
propagateComposedEvents: false
scrollGestureEnabled: false
onClicked: tabletRoot.toggleMicEnabled()
}
RalewaySemiBold {
id: usernameText
text: tablet.parent.parent.username

View file

@ -42,6 +42,10 @@ Item {
}
}
function toggleMicEnabled() {
ApplicationInterface.toggleMuteAudio();
}
function setUsername(newUsername) {
username = newUsername;
}

View file

@ -6854,3 +6854,8 @@ void Application::updateThreadPoolCount() const {
qCDebug(interfaceapp) << "Setting thread pool size to " << threadPoolSize;
QThreadPool::globalInstance()->setMaxThreadCount(threadPoolSize);
}
void Application::toggleMuteAudio() {
auto menu = Menu::getInstance();
menu->setIsOptionChecked(MenuOption::MuteAudio, !menu->isOptionChecked(MenuOption::MuteAudio));
}

View file

@ -386,6 +386,8 @@ public slots:
void addAssetToWorldMessageClose();
Q_INVOKABLE void toggleMuteAudio();
private slots:
void showDesktop();
void clearDomainOctreeDetails();