Merge branch 'master' into alpha-kung

This commit is contained in:
Kung-vr
2019-02-04 00:04:14 +09:00
75 changed files with 1141 additions and 801 deletions
+1 -1
View File
@@ -425,7 +425,7 @@ int main( int argc, char* argv[] )
QString path = QStandardPaths::locate(
QStandardPaths::AppDataLocation,
QStringLiteral( "res/qml/mainwidget.qml" ) );
QStringLiteral( "res/qml/common/mainwidget.qml" ) );
QQmlComponent component( &qmlEngine, QUrl::fromLocalFile( path ) );
auto errors = component.errors();
+3 -3
View File
@@ -332,9 +332,9 @@ void OverlayController::SetWidget( QQuickItem* quickItem,
m_ulOverlayHandle,
vr::VROverlayFlags_SendVRSmoothScrollEvents,
true );
QString thumbIconPath
= QStandardPaths::locate( QStandardPaths::AppDataLocation,
QStringLiteral( "res/thumbicon.png" ) );
QString thumbIconPath = QStandardPaths::locate(
QStandardPaths::AppDataLocation,
QStringLiteral( "res/img/icons/thumbicon.png" ) );
if ( QFile::exists( thumbIconPath ) )
{
vr::VROverlay()->SetOverlayFromFile(

Before

Width:  |  Height:  |  Size: 598 B

After

Width:  |  Height:  |  Size: 598 B

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 219 B

Before

Width:  |  Height:  |  Size: 181 B

After

Width:  |  Height:  |  Size: 181 B

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Before

Width:  |  Height:  |  Size: 147 B

After

Width:  |  Height:  |  Size: 147 B

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

+1 -1
View File
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "common"
MyStackViewPage {
-741
View File
@@ -1,741 +0,0 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
MyStackViewPage {
width: 1200
headerText: "Audio Settings"
property bool componentCompleted: false
MyDialogOkPopup {
id: audioMessageDialog
function showMessage(title, text) {
dialogTitle = title
dialogText = text
open()
}
}
MyDialogOkCancelPopup {
id: pttDeleteProfileDialog
property int profileIndex: -1
dialogTitle: "Delete Profile"
dialogText: "Do you really want to delete this ptt profile?"
onClosed: {
if (okClicked) {
AudioTabController.deletePttProfile(profileIndex)
}
}
}
MyDialogOkCancelPopup {
id: audioDeleteProfileDialog
property int profileIndex: -1
dialogTitle: "Delete Profile"
dialogText: "Do you really want to delete this audio profile?"
onClosed: {
if (okClicked) {
AudioTabController.deleteAudioProfile(profileIndex)
pttProfileComboBox.currentIndex = 0
}
}
}
PttControllerConfigDialog {
id: pttControllerConfigDialog
pttControllerConfigClass: AudioTabController
}
MyDialogOkCancelPopup {
id: pttNewProfileDialog
dialogTitle: "Create New PTT Profile"
dialogWidth: 600
dialogHeight: 220
dialogContentItem: ColumnLayout {
RowLayout {
Layout.topMargin: 16
Layout.leftMargin: 16
Layout.rightMargin: 16
MyText {
text: "Name: "
}
MyTextField {
id: pttNewProfileName
keyBoardUID: 590
color: "#cccccc"
text: ""
Layout.fillWidth: true
font.pointSize: 20
function onInputEvent(input) {
pttNewProfileName.text = input
}
}
}
}
onClosed: {
if (okClicked) {
if (pttNewProfileName.text != "") {
AudioTabController.addPttProfile(pttNewProfileName.text)
} else {
audioMessageDialog.showMessage("Create New Profile", "ERROR: No name given.")
}
}
}
function openPopup() {
pttNewProfileName.text = ""
open()
}
}
MyDialogOkCancelPopup {
id: audioNewProfileDialog
dialogTitle: "Create New Audio Profile"
dialogWidth: 600
dialogHeight: 300
dialogContentItem: ColumnLayout {
RowLayout {
Layout.topMargin: 16
Layout.leftMargin: 16
Layout.rightMargin: 16
MyText {
text: "Name: "
}
MyTextField {
id: audioNewProfileName
keyBoardUID: 590
color: "#cccccc"
text: ""
Layout.fillWidth: true
font.pointSize: 20
function onInputEvent(input) {
audioNewProfileName.text = input
}
}
}
RowLayout {
Layout.topMargin: 16
Layout.leftMargin: 16
Layout.rightMargin: 16
MyToggleButton {
id: audioDefaultProfileToggle
Layout.preferredWidth: 250
text: "Make Default"
onCheckedChanged: {
AudioTabController.setAudioProfileDefault(checked, false)
}
}
}
}
onClosed: {
if (okClicked) {
if (audioNewProfileName.text != "") {
AudioTabController.addAudioProfile(audioNewProfileName.text)
} else {
audioMessageDialog.showMessage("Create New Profile", "ERROR: No name given.")
}
}
}
function openPopup() {
audioNewProfileName.text = ""
open()
}
}
content: ColumnLayout {
spacing: 24
RowLayout {
MyText {
text: "Playback Device: "
Layout.preferredWidth: 260
}
MyComboBox {
id: audioPlaybackNameCombo
Layout.maximumWidth: 850
Layout.minimumWidth: 850
Layout.preferredWidth: 850
onActivated: {
if (componentCompleted) {
AudioTabController.setPlaybackDeviceIndex(currentIndex)
}
}
}
}
ColumnLayout {
spacing: 18
RowLayout {
MyText {
text: "Mirror Device: "
Layout.preferredWidth: 260
}
MyComboBox {
id: audioMirrorNameCombo
Layout.maximumWidth: 850
Layout.minimumWidth: 850
Layout.preferredWidth: 850
onActivated: {
if (componentCompleted) {
AudioTabController.setMirrorDeviceIndex(currentIndex - 1)
}
}
}
}
RowLayout {
MyText {
text: "Mirror Volume:"
Layout.preferredWidth: 260
}
MyPushButton2 {
id: audioMirrorVolumeMinusButton
text: "-"
Layout.preferredWidth: 40
onClicked: {
audioMirrorVolumeSlider.value -= 0.1
}
}
MySlider {
id: audioMirrorVolumeSlider
from: 0.0
to: 1.0
stepSize: 0.01
value: 1.0
Layout.fillWidth: true
onPositionChanged: {
var val = this.position * 100
audioMirrorVolumeText.text = Math.round(val) + "%"
}
onValueChanged: {
AudioTabController.setMirrorVolume(this.value.toFixed(2), false)
}
}
MyPushButton2 {
id: audioMirrorVolumePlusButton
text: "+"
Layout.preferredWidth: 40
onClicked: {
audioMirrorVolumeSlider.value += 0.1
}
}
MyText {
id: audioMirrorVolumeText
text: "100%"
Layout.preferredWidth: 85
horizontalAlignment: Text.AlignRight
}
MyPushButton2 {
id: audioMirrorMuteToggle
Layout.leftMargin: 12
checkable: true
contentItem: Image {
source: parent.checked ? "speaker_off.svg" : "speaker_on.svg"
sourceSize.width: 32
sourceSize.height: 32
anchors.fill: parent
}
onCheckedChanged: {
AudioTabController.setMirrorMuted(checked, false)
}
}
}
}
ColumnLayout {
spacing: 18
RowLayout {
MyText {
text: "Microphone: "
Layout.preferredWidth: 260
}
MyComboBox {
id: audioMicNameCombo
Layout.maximumWidth: 850
Layout.minimumWidth: 850
Layout.preferredWidth: 850
onActivated: {
if (componentCompleted) {
AudioTabController.setMicDeviceIndex(currentIndex)
}
}
}
}
RowLayout {
MyText {
text: "Microphone Volume:"
Layout.preferredWidth: 260
}
MyPushButton2 {
id: audioMicVolumeMinusButton
text: "-"
Layout.preferredWidth: 40
onClicked: {
audioMicVolumeSlider.value -= 0.1
}
}
MySlider {
id: audioMicVolumeSlider
from: 0.0
to: 1.0
stepSize: 0.01
value: 1.0
Layout.fillWidth: true
onPositionChanged: {
var val = this.position * 100
audioMicVolumeText.text = Math.round(val) + "%"
}
onValueChanged: {
AudioTabController.setMicVolume(this.value.toFixed(2))
}
}
MyPushButton2 {
id: audioMicVolumePlusButton
text: "+"
Layout.preferredWidth: 40
onClicked: {
audioMicVolumeSlider.value += 0.1
}
}
MyText {
id: audioMicVolumeText
text: "100%"
Layout.preferredWidth: 85
horizontalAlignment: Text.AlignRight
}
MyPushButton2 {
id: audioMicMuteToggle
Layout.leftMargin: 12
checkable: true
contentItem: Image {
source: parent.checked ? "mic_off.svg" : "mic_on.svg"
sourceSize.width: 32
sourceSize.height: 32
anchors.fill: parent
}
onCheckedChanged: {
AudioTabController.setMicMuted(checked)
}
}
}
MyToggleButton {
id: audioMuteProximitySensorToggle
Layout.preferredWidth: 600
text: "Proximity Sensor Mutes/Unmutes Microphone"
onClicked: {
AudioTabController.setMicProximitySensorCanMute(checked, false)
}
}
RowLayout {
MyToggleButton {
id: audioPttEnabledToggle
Layout.preferredWidth: 260
text: "Push-to-Talk:"
onClicked: {
AudioTabController.pttEnabled = checked
}
}
MyToggleButton {
id: audioPttLeftControllerToggle
text: "Left Controller"
onClicked: {
AudioTabController.setPttLeftControllerEnabled(checked, false)
}
}
MyPushButton {
text: "Configure"
onClicked: {
pttControllerConfigDialog.openPopup(0)
}
}
Item {
Layout.fillWidth: true
}
MyToggleButton {
id: audioPttRightControllerToggle
text: "Right Controller"
onClicked: {
AudioTabController.setPttRightControllerEnabled(checked, false)
}
}
MyPushButton {
text: "Configure"
onClicked: {
pttControllerConfigDialog.openPopup(1)
}
}
}
RowLayout {
MyToggleButton {
id: audioPttShowNotificationToggle
Layout.leftMargin: 350
text: "Show notification in HMD"
onCheckedChanged: {
AudioTabController.setPttShowNotification(checked, false)
}
}
MyToggleButton {
id: audioPttReverseToggle
Layout.leftMargin: 118
text: "Push-to-Mute"
onClicked: {
AudioTabController.setMicReversePtt(checked, false)
}
}
}
RowLayout {
spacing: 10
MyText {
Layout.preferredWidth: 150
text: "Audio Profile:"
}
MyComboBox {
id: audioProfileComboBox
Layout.preferredWidth: 250
model: [""]
onCurrentIndexChanged: {
if (currentIndex > 0) {
audioApplyProfileButton.enabled = true
audioDeleteProfileButton.enabled = true
} else {
audioApplyProfileButton.enabled = false
audioDeleteProfileButton.enabled = false
}
}
}
MyPushButton {
id: audioApplyProfileButton
enabled: true
Layout.preferredWidth: 150
text: "Apply"
onClicked: {
if (audioProfileComboBox.currentIndex > 0) {
AudioTabController.applyAudioProfile(audioProfileComboBox.currentIndex - 1)
}
}
}
MyText {
text: "PTT Profile:"
Layout.preferredWidth: 150
}
MyComboBox {
id: pttProfileComboBox
Layout.preferredWidth: 250
model: [""]
onCurrentIndexChanged: {
if (currentIndex > 0) {
pttApplyProfileButton.enabled = true
pttDeleteProfileButton.enabled = true
} else {
pttApplyProfileButton.enabled = false
pttDeleteProfileButton.enabled = false
}
}
}
MyPushButton {
id: pttApplyProfileButton
enabled: true
Layout.preferredWidth: 150
text: "Apply"
onClicked: {
if (pttProfileComboBox.currentIndex > 0) {
AudioTabController.applyPttProfile(pttProfileComboBox.currentIndex - 1)
}
}
}
}
RowLayout {
spacing: 18
MyPushButton {
id: audioDeleteProfileButton
enabled: true
Layout.preferredWidth: 200
text: "Delete Profile"
onClicked: {
if (audioProfileComboBox.currentIndex > 0) {
audioDeleteProfileDialog.profileIndex = audioProfileComboBox.currentIndex - 1
audioDeleteProfileDialog.open()
}
}
}
MyPushButton {
Layout.preferredWidth: 200
text: "New Profile"
onClicked: {
audioNewProfileDialog.openPopup()
}
}
Item {
Layout.fillWidth: true
}
MyPushButton {
id: pttDeleteProfileButton
enabled: true
Layout.preferredWidth: 200
text: "Delete Profile"
onClicked: {
if (pttProfileComboBox.currentIndex > 0) {
pttDeleteProfileDialog.profileIndex = pttProfileComboBox.currentIndex - 1
pttDeleteProfileDialog.open()
}
}
}
MyPushButton {
Layout.preferredWidth: 200
text: "New Profile"
onClicked: {
pttNewProfileDialog.openPopup()
}
}
}
}
Component.onCompleted: {
var devs1 = []
var devs2 = ["<None>"]
var playbackDeviceCount = AudioTabController.getPlaybackDeviceCount()
for (var i = 0; i < playbackDeviceCount; i++) {
var name = AudioTabController.getPlaybackDeviceName(i)
devs1.push(name)
devs2.push(name)
}
audioPlaybackNameCombo.model = devs1
audioPlaybackNameCombo.currentIndex = AudioTabController.playbackDeviceIndex
audioMirrorNameCombo.model = devs2
if (AudioTabController.mirrorDeviceIndex < 0) {
audioMirrorNameCombo.currentIndex = 0
audioMirrorVolumeMinusButton.enabled = false
audioMirrorVolumeSlider.enabled = false
audioMirrorVolumePlusButton.enabled = false
audioMirrorMuteToggle.enabled = false
} else {
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
audioMirrorNameCombo.currentIndex = AudioTabController.mirrorDeviceIndex + 1
}
var devs3 = []
var micDeviceCount = AudioTabController.getRecordingDeviceCount()
for (var i = 0; i < micDeviceCount; i++) {
var name = AudioTabController.getRecordingDeviceName(i)
devs3.push(name)
}
audioMicNameCombo.model = devs3
if (AudioTabController.micDeviceIndex < 0) {
audioMicNameCombo.currentIndex = 0
audioMicVolumeMinusButton.enabled = false
audioMicVolumeSlider.enabled = false
audioMicVolumePlusButton.enabled = false
audioMicMuteToggle.enabled = false
audioMuteProximitySensorToggle.enabled = false
} else {
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
audioMuteProximitySensorToggle.enabled = true
audioMicVolumeSlider.value = AudioTabController.micVolume
audioMicMuteToggle.checked = AudioTabController.micMuted
audioMuteProximitySensorToggle.checked = AudioTabController.micProximitySensorCanMute
audioMicNameCombo.currentIndex = AudioTabController.micDeviceIndex
}
reloadPttProfiles()
reloadAudioProfiles()
audioPttEnabledToggle.checked = AudioTabController.pttEnabled
audioPttLeftControllerToggle.checked = AudioTabController.pttLeftControllerEnabled
audioPttRightControllerToggle.checked = AudioTabController.pttRightControllerEnabled
audioPttShowNotificationToggle.checked = AudioTabController.pttShowNotification
audioPttReverseToggle.checked = AudioTabController.micReversePtt
audioDefaultProfileToggle.checked = AudioTabController.audioProfileDefault
componentCompleted = true
}
Connections {
target: AudioTabController
onPlaybackDeviceIndexChanged: {
audioPlaybackNameCombo.currentIndex = index
}
onMirrorDeviceIndexChanged: {
if (index < 0) {
audioMirrorNameCombo.currentIndex = 0
audioMirrorVolumeMinusButton.enabled = false
audioMirrorVolumeSlider.enabled = false
audioMirrorVolumePlusButton.enabled = false
audioMirrorMuteToggle.enabled = false
} else {
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
audioMirrorNameCombo.currentIndex = index + 1
}
}
onMirrorVolumeChanged: {
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
}
onMirrorMutedChanged: {
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
}
onMicDeviceIndexChanged: {
if (index < 0) {
audioMicNameCombo.currentIndex = 0
audioMicVolumeMinusButton.enabled = false
audioMicVolumeSlider.enabled = false
audioMicVolumePlusButton.enabled = false
audioMicMuteToggle.enabled = false
} else {
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
audioMicNameCombo.currentIndex = index
}
}
onMicVolumeChanged: {
audioMicVolumeSlider.value = AudioTabController.micVolume
}
onMicMutedChanged: {
audioMicMuteToggle.checked = AudioTabController.micMuted
}
onMicProximitySensorCanMuteChanged: {
audioMuteProximitySensorToggle.checked = AudioTabController.micProximitySensorCanMute
}
onMicReversePttChanged: {
audioPttReverseToggle.checked = AudioTabController.micReversePtt
}
onPttEnabledChanged: {
audioPttEnabledToggle.checked = AudioTabController.pttEnabled
}
onPttActiveChanged: {
}
onPttShowNotificationChanged: {
audioPttShowNotificationToggle.checked = AudioTabController.pttShowNotification
}
onPttLeftControllerEnabledChanged: {
audioPttLeftControllerToggle.checked = AudioTabController.pttLeftControllerEnabled
}
onPttRightControllerEnabledChanged: {
audioPttRightControllerToggle.checked = AudioTabController.pttRightControllerEnabled
}
onAudioProfileDefaultChanged: {
audioDefaultProfileToggle.checked = AudioTabController.audioProfileDefault
}
onPttProfilesUpdated: {
reloadPttProfiles()
}
onAudioProfilesUpdated: {
reloadAudioProfiles()
}
onAudioProfileAdded:{
audioProfileComboBox.currentIndex = AudioTabController.getAudioProfileCount()
}
onPttProfileAdded:{
pttProfileComboBox.currentIndex = AudioTabController.getPttProfileCount()
}
onDefaultProfileDisplay:{
audioProfileComboBox.currentIndex = AudioTabController.getDefaultAudioProfileIndex() + 1
}
onPlaybackDeviceListChanged: {
var devs1 = []
var devs2 = ["<None>"]
var playbackDeviceCount = AudioTabController.getPlaybackDeviceCount()
for (var i = 0; i < playbackDeviceCount; i++) {
var name = AudioTabController.getPlaybackDeviceName(i)
devs1.push(name)
devs2.push(name)
}
audioPlaybackNameCombo.model = devs1
audioPlaybackNameCombo.currentIndex = AudioTabController.playbackDeviceIndex
audioMirrorNameCombo.model = devs2
if (AudioTabController.mirrorDeviceIndex < 0) {
audioMirrorNameCombo.currentIndex = 0
audioMirrorVolumeMinusButton.enabled = false
audioMirrorVolumeSlider.enabled = false
audioMirrorVolumePlusButton.enabled = false
audioMirrorMuteToggle.enabled = false
} else {
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
audioMirrorNameCombo.currentIndex = AudioTabController.mirrorDeviceIndex + 1
}
}
onRecordingDeviceListChanged: {
var devs3 = []
var micDeviceCount = AudioTabController.getRecordingDeviceCount()
for (var i = 0; i < micDeviceCount; i++) {
var name = AudioTabController.getRecordingDeviceName(i)
devs3.push(name)
}
audioMicNameCombo.model = devs3
if (AudioTabController.micDeviceIndex < 0) {
audioMicNameCombo.currentIndex = 0
audioMicVolumeMinusButton.enabled = false
audioMicVolumeSlider.enabled = false
audioMicVolumePlusButton.enabled = false
audioMicMuteToggle.enabled = false
} else {
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
audioMicVolumeSlider.value = AudioTabController.micVolume
audioMicMuteToggle.checked = AudioTabController.micMuted
audioMicNameCombo.currentIndex = AudioTabController.micDeviceIndex
}
}
}
}
function reloadPttProfiles() {
var profiles = [""]
var profileCount = AudioTabController.getPttProfileCount()
for (var i = 0; i < profileCount; i++) {
profiles.push(AudioTabController.getPttProfileName(i))
}
pttProfileComboBox.currentIndex = 0
pttProfileComboBox.model = profiles
}
function reloadAudioProfiles(){
var profiles = [""]
var profileCount = AudioTabController.getAudioProfileCount()
for (var i = 0; i < profileCount; i++) {
profiles.push(AudioTabController.getAudioProfileName(i))
}
audioProfileComboBox.currentIndex = 0;
audioProfileComboBox.model = profiles
}
}
+1
View File
@@ -4,6 +4,7 @@ import QtQuick.Layouts 1.3
import QtQuick.Dialogs 1.2
import matzman666.advsettings 1.0
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
import "common"
MyStackViewPage {
headerText: "Chaperone Settings"
+1
View File
@@ -4,6 +4,7 @@ import QtQuick.Layouts 1.3
import QtQuick.Dialogs 1.2
import matzman666.advsettings 1.0
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
import "common"
MyStackViewPage {
headerText: "Chaperone Proximity Warning Settings"
+1 -1
View File
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "common"
MyStackViewPage {
+1 -1
View File
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "common"
MyStackViewPage {
+1 -1
View File
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "common"
MyStackViewPage {
headerText: "Revive Settings"
+3 -1
View File
@@ -3,7 +3,9 @@ import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
import "common"
import "utilities_page"
import "audio_page"
MyStackViewPage {
id: rootPage
@@ -342,7 +344,7 @@ MyStackViewPage {
Layout.leftMargin: 12
checkable: true
contentItem: Image {
source: parent.checked ? "mic_off.svg" : "mic_on.svg"
source: parent.checked ? "qrc:/microphone/off" : "qrc:/microphone/on"
sourceSize.width: 32
sourceSize.height: 32
anchors.fill: parent
+1 -1
View File
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "common"
MyStackViewPage {
headerText: "Application Settings"
+1 -1
View File
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "common"
MyStackViewPage {
+1
View File
@@ -2,6 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "common"
MyStackViewPage {
id: myStackViewPage1
+36
View File
@@ -0,0 +1,36 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../common"
import "device_selector"
import "proximity"
import "push_to_talk"
import "profiles"
MyStackViewPage {
width: 1200
headerText: "Audio Settings"
content: ColumnLayout {
spacing: 24
AudioDeviceSelector {
}
MirrorVolumeSlider {
}
MicVolumeSlider {
}
ColumnLayout {
spacing: 18
ProximityToggle {
}
PttButtons {
}
ProfileButtons {
}
}
}
}
@@ -0,0 +1,64 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
RowLayout {
id: audioPlaybackNameCombo
property string deviceText: "Audio Device: "
property alias devices: selector.model
property alias deviceIndex: selector.currentIndex
MyText {
text: deviceText
Layout.preferredWidth: 260
}
MyComboBox {
id: selector
Layout.maximumWidth: 850
Layout.minimumWidth: 850
Layout.preferredWidth: 850
onActivated: {
if (deviceIndex >= 0) {
AudioTabController.setPlaybackDeviceIndex(deviceIndex, false)
}
setShownAudioDevice(index)
}
}
Component.onCompleted: {
audioPlaybackNameCombo.devices = getAudioDeviceList()
setShownAudioDevice(AudioTabController.playbackDeviceIndex)
}
Connections {
target: AudioTabController
onPlaybackDeviceIndexChanged: {
setShownAudioDevice(index)
}
onPlaybackDeviceListChanged: {
audioPlaybackNameCombo.devices = getAudioDeviceList()
setShownAudioDevice(AudioTabController.playbackDeviceIndex)
}
}
function getAudioDeviceList() {
var devices = []
var playbackDevicesCount = AudioTabController.getPlaybackDeviceCount()
for (var i = 0; i < playbackDevicesCount; i++) {
var deviceName = AudioTabController.getPlaybackDeviceName(i)
devices.push(deviceName)
}
// Setting the model zeroes out the
// index so we need to set devices first.
return devices
}
function setShownAudioDevice(index) {
// If incorrect device, show "None".
if (index < 0) {
deviceIndex = 0
}
else {
deviceIndex = index
}
}
}
@@ -0,0 +1,64 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
RowLayout {
id: audioMicNameCombo
property string deviceText: "Microphone: "
// The entries in the dropdown box.
property alias devices: selector.model
// The current index of the chosen device.
// Add one for use in the dropdown box because of the "None" entry.
property alias deviceIndex: selector.currentIndex
MyText {
text: deviceText
Layout.preferredWidth: 260
}
MyComboBox {
id: selector
Layout.maximumWidth: 850
Layout.minimumWidth: 850
Layout.preferredWidth: 850
onActivated: {
if (deviceIndex >= 0) {
AudioTabController.setMicDeviceIndex(currentIndex)
}
}
}
function getAudioDeviceList() {
var devices = []
var playbackDevicesCount = AudioTabController.getRecordingDeviceCount()
for (var i = 0; i < playbackDevicesCount; i++) {
var deviceName = AudioTabController.getRecordingDeviceName(i)
devices.push(deviceName)
}
// Setting the model zeroes out the
// index so we need to set devices first.
return devices
}
function setShownAudioDevice(index) {
if (index < 0) {
deviceIndex = 0
}
else {
deviceIndex = index
}
}
Component.onCompleted: {
devices = getAudioDeviceList()
setShownAudioDevice(AudioTabController.micDeviceIndex)
}
Connections {
target: AudioTabController
onMicDeviceIndexChanged: {
setShownAudioDevice(index)
}
onRecordingDeviceListChanged: {
devices = getAudioDeviceList()
setShownAudioDevice(AudioTabController.micDeviceIndex)
}
}
}
@@ -0,0 +1,130 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
ColumnLayout {
spacing: 18
MicDeviceSelector {
id: audioMicNameCombo
}
RowLayout {
MyText {
text: "Microphone Volume:"
Layout.preferredWidth: 260
}
MyPushButton2 {
id: audioMicVolumeMinusButton
text: "-"
Layout.preferredWidth: 40
onClicked: {
audioMicVolumeSlider.value -= 0.1
}
}
MySlider {
id: audioMicVolumeSlider
from: 0.0
to: 1.0
stepSize: 0.01
value: 1.0
Layout.fillWidth: true
onPositionChanged: {
var val = this.position * 100
audioMicVolumeText.text = Math.round(val) + "%"
}
onValueChanged: {
AudioTabController.setMicVolume(this.value.toFixed(2))
}
}
MyPushButton2 {
id: audioMicVolumePlusButton
text: "+"
Layout.preferredWidth: 40
onClicked: {
audioMicVolumeSlider.value += 0.1
}
}
MyText {
id: audioMicVolumeText
text: "100%"
Layout.preferredWidth: 85
horizontalAlignment: Text.AlignRight
}
MyPushButton2 {
id: audioMicMuteToggle
Layout.leftMargin: 12
checkable: true
contentItem: Image {
source: parent.checked ? "qrc:/microphone/off" : "qrc:/microphone/on"
sourceSize.width: 32
sourceSize.height: 32
anchors.fill: parent
}
onCheckedChanged: {
AudioTabController.setMicMuted(checked)
}
}
}
Component.onCompleted: {
if (AudioTabController.micDeviceIndex < 0) {
audioMicVolumeMinusButton.enabled = false
audioMicVolumeSlider.enabled = false
audioMicVolumePlusButton.enabled = false
audioMicMuteToggle.enabled = false
}
else {
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
audioMicVolumeSlider.value = AudioTabController.micVolume
audioMicMuteToggle.checked = AudioTabController.micMuted
}
}
Connections {
target: AudioTabController
onMicDeviceIndexChanged: {
if (index < 0) {
audioMicVolumeMinusButton.enabled = false
audioMicVolumeSlider.enabled = false
audioMicVolumePlusButton.enabled = false
audioMicMuteToggle.enabled = false
} else {
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
}
}
onMicVolumeChanged: {
audioMicVolumeSlider.value = AudioTabController.micVolume
}
onMicMutedChanged: {
audioMicMuteToggle.checked = AudioTabController.micMuted
}
onPlaybackDeviceListChanged: {
}
onRecordingDeviceListChanged: {
if (AudioTabController.micDeviceIndex < 0) {
audioMicVolumeMinusButton.enabled = false
audioMicVolumeSlider.enabled = false
audioMicVolumePlusButton.enabled = false
audioMicMuteToggle.enabled = false
} else {
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
audioMicVolumeSlider.value = AudioTabController.micVolume
audioMicMuteToggle.checked = AudioTabController.micMuted
}
}
}
}
@@ -0,0 +1,74 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
RowLayout {
id: audioMirrorNameCombo
// Text shown to the left.
property string deviceText: "Mirror Device: "
// The entries in the dropdown box.
property alias devices: selector.model
// The current index of the chosen device.
// Add one for use in the dropdown box because of the "None" entry.
property alias deviceIndex: selector.currentIndex
MyText {
text: deviceText
Layout.preferredWidth: 260
}
MyComboBox {
id: selector
Layout.maximumWidth: 850
Layout.minimumWidth: 850
Layout.preferredWidth: 850
onActivated: {
if (deviceIndex >= 0) {
// The mirror device list contains a "None" entry, hence
// we need to subtract one to get the real index.
AudioTabController.setMirrorDeviceIndex(deviceIndex - 1)
}
}
}
Component.onCompleted: {
// Populate dropdown with devices
audioMirrorNameCombo.devices = getAudioDeviceList()
var mirrorIndex = AudioTabController.mirrorDeviceIndex
setShownAudioDevice(mirrorIndex)
}
Connections {
target: AudioTabController
onMirrorDeviceIndexChanged: {
setShownAudioDevice(index)
}
onPlaybackDeviceListChanged: {
audioPlaybackNameCombo.devices = getAudioDeviceList()
setShownAudioDevice(AudioTabController.playbackDeviceIndex)
}
}
function getAudioDeviceList() {
var devices = ["<None>"]
var playbackDevicesCount = AudioTabController.getPlaybackDeviceCount()
for (var i = 0; i < playbackDevicesCount; i++) {
var deviceName = AudioTabController.getPlaybackDeviceName(i)
devices.push(deviceName)
}
// Setting the model zeroes out the
// index so we need to set devices first.
return devices
}
function setShownAudioDevice(index) {
// If incorrect device, show "None".
if (index < 0) {
deviceIndex = 0
}
else {
// The mirror device list contains a "None" entry
// hence we need to add one to show the correct entry.
deviceIndex = index + 1
}
}
}
@@ -0,0 +1,129 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
import "."
ColumnLayout {
spacing: 18
MirrorDeviceSelector {
id: audioMirrorNameCombo
}
RowLayout {
MyText {
text: "Mirror Volume:"
Layout.preferredWidth: 260
}
MyPushButton2 {
id: audioMirrorVolumeMinusButton
text: "-"
Layout.preferredWidth: 40
onClicked: {
audioMirrorVolumeSlider.value -= 0.1
}
}
MySlider {
id: audioMirrorVolumeSlider
from: 0.0
to: 1.0
stepSize: 0.01
value: 1.0
Layout.fillWidth: true
onPositionChanged: {
var val = this.position * 100
audioMirrorVolumeText.text = Math.round(val) + "%"
}
onValueChanged: {
AudioTabController.setMirrorVolume(this.value.toFixed(2), false)
}
}
MyPushButton2 {
id: audioMirrorVolumePlusButton
text: "+"
Layout.preferredWidth: 40
onClicked: {
audioMirrorVolumeSlider.value += 0.1
}
}
MyText {
id: audioMirrorVolumeText
text: "100%"
Layout.preferredWidth: 85
horizontalAlignment: Text.AlignRight
}
MyPushButton2 {
id: audioMirrorMuteToggle
Layout.leftMargin: 12
checkable: true
contentItem: Image {
source: parent.checked ? "qrc:/speaker/off" : "qrc:/speaker/on"
sourceSize.width: 32
sourceSize.height: 32
anchors.fill: parent
}
onCheckedChanged: {
AudioTabController.setMirrorMuted(checked, false)
}
}
}
Component.onCompleted: {
if (AudioTabController.mirrorDeviceIndex < 0) {
audioMirrorVolumeMinusButton.enabled = false
audioMirrorVolumeSlider.enabled = false
audioMirrorVolumePlusButton.enabled = false
audioMirrorMuteToggle.enabled = false
} else {
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
}
}
Connections {
target: AudioTabController
onMirrorDeviceIndexChanged: {
if (index < 0) {
audioMirrorNameCombo.deviceIndex = 0
audioMirrorVolumeMinusButton.enabled = false
audioMirrorVolumeSlider.enabled = false
audioMirrorVolumePlusButton.enabled = false
audioMirrorMuteToggle.enabled = false
} else {
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
audioMirrorNameCombo.deviceIndex = index + 1
}
}
onMirrorVolumeChanged: {
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
}
onMirrorMutedChanged: {
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
}
onPlaybackDeviceListChanged: {
if (AudioTabController.mirrorDeviceIndex < 0) {
audioMirrorVolumeMinusButton.enabled = false
audioMirrorVolumeSlider.enabled = false
audioMirrorVolumePlusButton.enabled = false
audioMirrorMuteToggle.enabled = false
} else {
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
}
}
}
}
@@ -0,0 +1,18 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
MyDialogOkCancelPopup {
id: audioDeleteProfileDialog
property int profileIndex: -1
dialogTitle: "Delete Profile"
dialogText: "Do you really want to delete this audio profile?"
onClosed: {
if (okClicked) {
AudioTabController.deleteAudioProfile(profileIndex)
pttProfileComboBox.currentIndex = 0
}
}
}
@@ -0,0 +1,14 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
MyDialogOkPopup {
id: audioMessageDialog
function showMessage(title, text) {
dialogTitle = title
dialogText = text
open()
}
}
@@ -0,0 +1,70 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
MyDialogOkCancelPopup {
id: audioNewProfileDialog
dialogTitle: "Create New Audio Profile"
dialogWidth: 600
dialogHeight: 300
dialogContentItem: ColumnLayout {
RowLayout {
Layout.topMargin: 16
Layout.leftMargin: 16
Layout.rightMargin: 16
MyText {
text: "Name: "
}
MyTextField {
id: audioNewProfileName
keyBoardUID: 590
color: "#cccccc"
text: ""
Layout.fillWidth: true
font.pointSize: 20
function onInputEvent(input) {
audioNewProfileName.text = input
}
}
}
RowLayout {
id: test
Layout.topMargin: 16
Layout.leftMargin: 16
Layout.rightMargin: 16
MyToggleButton {
id: audioDefaultProfileToggle
Layout.preferredWidth: 250
text: "Make Default"
onCheckedChanged: {
AudioTabController.setAudioProfileDefault(checked, false)
}
}
Component.onCompleted: {
audioDefaultProfileToggle.checked = AudioTabController.audioProfileDefault
}
}
}
onClosed: {
if (okClicked) {
if (audioNewProfileName.text != "") {
AudioTabController.addAudioProfile(audioNewProfileName.text)
} else {
audioMessageDialog.showMessage("Create New Profile", "ERROR: No name given.")
}
}
}
Connections {
target: AudioTabController
onAudioProfileDefaultChanged: {
defaultProfileToggle = AudioTabController.audioProfileDefault
}
}
function openPopup() {
audioNewProfileName.text = ""
open()
}
}
@@ -0,0 +1,17 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
MyDialogOkCancelPopup {
id: pttDeleteProfileDialog
property int profileIndex: -1
dialogTitle: "Delete Profile"
dialogText: "Do you really want to delete this ptt profile?"
onClosed: {
if (okClicked) {
AudioTabController.deletePttProfile(profileIndex)
}
}
}
@@ -0,0 +1,47 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
MyDialogOkCancelPopup {
id: pttNewProfileDialog
dialogTitle: "Create New PTT Profile"
dialogWidth: 600
dialogHeight: 220
dialogContentItem: ColumnLayout {
RowLayout {
Layout.topMargin: 16
Layout.leftMargin: 16
Layout.rightMargin: 16
MyText {
text: "Name: "
}
MyTextField {
id: pttNewProfileName
keyBoardUID: 590
color: "#cccccc"
text: ""
Layout.fillWidth: true
font.pointSize: 20
function onInputEvent(input) {
pttNewProfileName.text = input
}
}
}
}
onClosed: {
if (okClicked) {
if (pttNewProfileName.text != "") {
AudioTabController.addPttProfile(pttNewProfileName.text)
} else {
audioMessageDialog.showMessage("Create New Profile", "ERROR: No name given.")
}
}
}
function openPopup() {
pttNewProfileName.text = ""
open()
}
}
@@ -0,0 +1,185 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
import "../dialog_boxes"
ColumnLayout {
AudioMessageDialog {
id: audioMessageDialog
}
PttDeleteProfileDialog {
id: pttDeleteProfileDialog
}
AudioDeleteProfileDialog {
id: audioDeleteProfileDialog
}
PttNewProfileDialog {
id: pttNewProfileDialog
}
AudioNewProfileDialog {
id: audioNewProfileDialog
}
RowLayout {
spacing: 10
MyText {
Layout.preferredWidth: 150
text: "Audio Profile:"
}
MyComboBox {
id: audioProfileComboBox
Layout.preferredWidth: 250
model: [""]
onCurrentIndexChanged: {
if (currentIndex > 0) {
audioApplyProfileButton.enabled = true
audioDeleteProfileButton.enabled = true
} else {
audioApplyProfileButton.enabled = false
audioDeleteProfileButton.enabled = false
}
}
}
MyPushButton {
id: audioApplyProfileButton
enabled: true
Layout.preferredWidth: 150
text: "Apply"
onClicked: {
if (audioProfileComboBox.currentIndex > 0) {
AudioTabController.applyAudioProfile(
audioProfileComboBox.currentIndex - 1)
}
}
}
MyText {
text: "PTT Profile:"
Layout.preferredWidth: 150
}
MyComboBox {
id: pttProfileComboBox
Layout.preferredWidth: 250
model: [""]
onCurrentIndexChanged: {
if (currentIndex > 0) {
pttApplyProfileButton.enabled = true
pttDeleteProfileButton.enabled = true
} else {
pttApplyProfileButton.enabled = false
pttDeleteProfileButton.enabled = false
}
}
}
MyPushButton {
id: pttApplyProfileButton
enabled: true
Layout.preferredWidth: 150
text: "Apply"
onClicked: {
if (pttProfileComboBox.currentIndex > 0) {
AudioTabController.applyPttProfile(
pttProfileComboBox.currentIndex - 1)
}
}
}
}
RowLayout {
spacing: 18
MyPushButton {
id: audioDeleteProfileButton
enabled: true
Layout.preferredWidth: 200
text: "Delete Profile"
onClicked: {
if (audioProfileComboBox.currentIndex > 0) {
audioDeleteProfileDialog.profileIndex = audioProfileComboBox.currentIndex - 1
audioDeleteProfileDialog.open()
}
}
}
MyPushButton {
Layout.preferredWidth: 200
text: "New Profile"
onClicked: {
audioNewProfileDialog.openPopup()
}
}
Item {
Layout.fillWidth: true
}
MyPushButton {
id: pttDeleteProfileButton
enabled: true
Layout.preferredWidth: 200
text: "Delete Profile"
onClicked: {
if (pttProfileComboBox.currentIndex > 0) {
pttDeleteProfileDialog.profileIndex = pttProfileComboBox.currentIndex - 1
pttDeleteProfileDialog.open()
}
}
}
MyPushButton {
Layout.preferredWidth: 200
text: "New Profile"
onClicked: {
pttNewProfileDialog.openPopup()
}
}
}
Component.onCompleted: {
reloadPttProfiles()
reloadAudioProfiles()
}
Connections {
target: AudioTabController
onPttProfilesUpdated: {
reloadPttProfiles()
}
onAudioProfilesUpdated: {
reloadAudioProfiles()
}
onAudioProfileAdded: {
audioProfileComboBox.currentIndex = AudioTabController.getAudioProfileCount()
}
onPttProfileAdded: {
pttProfileComboBox.currentIndex = AudioTabController.getPttProfileCount()
}
onDefaultProfileDisplay: {
audioProfileComboBox.currentIndex = AudioTabController.getDefaultAudioProfileIndex(
) + 1
}
}
function reloadPttProfiles() {
var profiles = [""]
var profileCount = AudioTabController.getPttProfileCount()
for (var i = 0; i < profileCount; i++) {
profiles.push(AudioTabController.getPttProfileName(i))
}
pttProfileComboBox.currentIndex = 0
pttProfileComboBox.model = profiles
}
function reloadAudioProfiles() {
var profiles = [""]
var profileCount = AudioTabController.getAudioProfileCount()
for (var i = 0; i < profileCount; i++) {
profiles.push(AudioTabController.getAudioProfileName(i))
}
audioProfileComboBox.currentIndex = 0
audioProfileComboBox.model = profiles
}
}
@@ -0,0 +1,28 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
MyToggleButton {
id: audioMuteProximitySensorToggle
Layout.preferredWidth: 600
text: "Proximity Sensor Mutes/Unmutes Microphone"
onClicked: {
AudioTabController.setMicProximitySensorCanMute(checked, false)
}
Component.onCompleted: {
if (AudioTabController.micDeviceIndex < 0) {
audioMuteProximitySensorToggle.enabled = false
} else {
audioMuteProximitySensorToggle.enabled = true
audioMuteProximitySensorToggle.checked = AudioTabController.micProximitySensorCanMute
}
}
Connections {
target: AudioTabController
onMicProximitySensorCanMuteChanged: {
audioMuteProximitySensorToggle.checked = AudioTabController.micProximitySensorCanMute
}
}
}
@@ -0,0 +1,97 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../../common"
ColumnLayout {
RowLayout {
PttControllerConfigDialog {
id: pttControllerConfigDialog
pttControllerConfigClass: AudioTabController
}
MyToggleButton {
id: audioPttEnabledToggle
Layout.preferredWidth: 260
text: "Push-to-Talk:"
onClicked: {
AudioTabController.pttEnabled = checked
}
}
MyToggleButton {
id: audioPttLeftControllerToggle
text: "Left Controller"
onClicked: {
AudioTabController.setPttLeftControllerEnabled(checked, false)
}
}
MyPushButton {
text: "Configure"
onClicked: {
pttControllerConfigDialog.openPopup(0)
}
}
Item {
Layout.fillWidth: true
}
MyToggleButton {
id: audioPttRightControllerToggle
text: "Right Controller"
onClicked: {
AudioTabController.setPttRightControllerEnabled(checked, false)
}
}
MyPushButton {
text: "Configure"
onClicked: {
pttControllerConfigDialog.openPopup(1)
}
}
}
RowLayout {
MyToggleButton {
id: audioPttShowNotificationToggle
Layout.leftMargin: 350
text: "Show notification in HMD"
onCheckedChanged: {
AudioTabController.setPttShowNotification(checked, false)
}
}
MyToggleButton {
id: audioPttReverseToggle
Layout.leftMargin: 118
text: "Push-to-Mute"
onClicked: {
AudioTabController.setMicReversePtt(checked, false)
}
}
}
Component.onCompleted: {
audioPttEnabledToggle.checked = AudioTabController.pttEnabled
audioPttLeftControllerToggle.checked = AudioTabController.pttLeftControllerEnabled
audioPttRightControllerToggle.checked = AudioTabController.pttRightControllerEnabled
audioPttShowNotificationToggle.checked = AudioTabController.pttShowNotification
audioPttReverseToggle.checked = AudioTabController.micReversePtt
}
Connections {
target: AudioTabController
onPttEnabledChanged: {
audioPttEnabledToggle.checked = AudioTabController.pttEnabled
}
onPttLeftControllerEnabledChanged: {
audioPttLeftControllerToggle.checked = AudioTabController.pttLeftControllerEnabled
}
onPttRightControllerEnabledChanged: {
audioPttRightControllerToggle.checked = AudioTabController.pttRightControllerEnabled
}
onMicReversePttChanged: {
audioPttReverseToggle.checked = AudioTabController.micReversePtt
}
onPttShowNotificationChanged: {
audioPttShowNotificationToggle.checked = AudioTabController.pttShowNotification
}
}
}
@@ -2,6 +2,8 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.2
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
// Needed for MyResources in the default folder.
import ".."
Rectangle {
color: "#1b2939"
@@ -24,7 +26,7 @@ Rectangle {
enabled: headerShowBackButton
opacity: headerShowBackButton ? 1.0 : 0.0
contentItem: Image {
source: "backarrow.svg"
source: "qrc:/common/backarrow"
sourceSize.width: 50
sourceSize.height: 50
anchors.fill: parent
@@ -1,7 +1,8 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
// Needed for MyResources in the default folder.
import ".."
CheckBox {
checkState: Qt.Checked
@@ -30,7 +31,7 @@ CheckBox {
height: 28
x: (parent.width - width) / 2
y: (parent.height - height) / 2
source: "check.svg"
source: "qrc:/common/box_checkmark"
sourceSize.width: width
sourceSize.height: height
visible: parent.parent.checked
@@ -1,7 +1,9 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import "utilities_page"
import ".."
import "../utilities_page"
import "../audio_page"
Rectangle {
id: root
+1 -1
View File
@@ -1 +1 @@
singleton MyResources 1.0 MyResources.qml
singleton MyResources 1.0 common/MyResources.qml
+1 -1
View File
@@ -6,7 +6,7 @@ import "media_keys"
import "alarm_clock"
import "desktop_size"
import "keyboard_utils"
import ".."
import "../common"
MyStackViewPage {
headerText: "Utilities"
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../.."
import "../../common"
GroupBox {
id: alarmGroupBox
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../.."
import "../../common"
GroupBox {
id: steamDesktopGroupBox
@@ -2,7 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
import "../.."
import "../../common"
GroupBox {
id: keyboardGroupBox
@@ -2,8 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
// Necessary for the project specific Components.
import "../.."
import "../../common"
MyPushButton2 {
// Public properties
@@ -2,8 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import matzman666.advsettings 1.0
// Necessary for the project specific Components.
import "../.."
import "../../common"
GroupBox {
id: mediaKeysGroupBox
@@ -26,10 +25,10 @@ GroupBox {
}
RowLayout {
property string playPauseButtonPath: "outline_play_pause_white_24dp.svg"
property string stopButtonPath: "outline_stop_white_24dp.svg"
property string previousButtonPath: "outline_skip_previous_white_24dp.svg"
property string nextButtonPath: "outline_skip_next_white_24dp.svg"
property string playPauseButtonPath: "qrc:/media_keys/play_pause"
property string stopButtonPath: "qrc:/media_keys/stop"
property string previousButtonPath: "qrc:/media_keys/previous"
property string nextButtonPath: "qrc:/media_keys/next"
MediaButton {
id: previousSongButton
+20
View File
@@ -0,0 +1,20 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/common">
<file alias="backarrow">img/common/backarrow.svg</file>
<file alias="box_checkmark">img/common/check.svg</file>
</qresource>
<qresource prefix="/microphone">
<file alias="on">img/audio/microphone/mic_on.svg</file>
<file alias="off">img/audio/microphone/mic_off.svg</file>
</qresource>
<qresource prefix="/speaker">
<file alias="on">img/audio/speaker/speaker_on.svg</file>
<file alias="off">img/audio/speaker/speaker_off.svg</file>
</qresource>
<qresource prefix="/media_keys">
<file alias="play_pause">img/audio/media_keys/outline_play_pause_white_24dp.svg</file>
<file alias="next">img/audio/media_keys/outline_skip_next_white_24dp.svg</file>
<file alias="previous">img/audio/media_keys/outline_skip_previous_white_24dp.svg</file>
<file alias="stop">img/audio/media_keys/outline_stop_white_24dp.svg</file>
</qresource>
</RCC>
+2 -1
View File
@@ -72,7 +72,8 @@ void AudioTabController::initStage2( OverlayController* var_parent,
{
QString notifIconPath = QStandardPaths::locate(
QStandardPaths::AppDataLocation,
QStringLiteral( "/res/qml/ptt_notification.png" ) );
QStringLiteral(
"/res/img/audio/microphone/ptt_notification.png" ) );
if ( QFile::exists( notifIconPath ) )
{
vr::VROverlay()->SetOverlayFromFile(
@@ -274,7 +274,7 @@ void UtilitiesTabController::modAlarmTimeMinute( int value, bool notify )
QString getBatteryIconPath( int batteryState )
{
QString batteryPrefix = "/res/battery_";
QString batteryPrefix = "/res/img/battery/battery_";
return QStandardPaths::locate(
QStandardPaths::AppDataLocation,
batteryPrefix + QString::number( batteryState ) + ".png" );