summaryrefslogtreecommitdiff
path: root/src/components/qt_hmi/qml_model_qt5/popups
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/qt_hmi/qml_model_qt5/popups')
-rw-r--r--src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml22
-rw-r--r--src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml8
-rw-r--r--src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml66
3 files changed, 91 insertions, 5 deletions
diff --git a/src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml b/src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml
index 782fd76c18..a6fc4d7107 100644
--- a/src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml
+++ b/src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml
@@ -46,6 +46,7 @@ ContextPopup {
property int appID
property int interactionLayout
property var async
+ property var grammarID
property bool performInteractionIsActiveNow
Text {
@@ -84,13 +85,15 @@ ContextPopup {
}
}
- function performInteraction(initialText, choiceSet, vrHelpTitle, vrHelp, timeout, interactionLayout, appID) {
+ function performInteraction(initialTextArg, choiceSet, vrHelpTitle, vrHelp, timeout, interactionLayout, appID) {
console.debug("enter")
var app = dataContainer.getApplication(appID)
var dataToUpdate = {}
performInteractionIsActiveNow = true
- initialText.text = initialText.fieldText
+ if (initialTextArg !== undefined){
+ initialText.text = initialTextArg.fieldText
+ }
this.timeout = timeout
this.appID = appID
@@ -123,6 +126,8 @@ ContextPopup {
async = new Async.AsyncCall()
if (piPopUp.choiceSet.count !== 0) {
activate()
+ }else if (grammarID) {
+ vrActivate()
}
console.debug("exit")
return async
@@ -132,9 +137,21 @@ ContextPopup {
console.debug("enter")
timer.interval = timeout
timer.start()
+ if (grammarID) {
+ vrPopUp.sortModelforPerformInteraction()
+ }
show()
console.debug("exit")
}
+ function vrActivate () {
+ console.debug("enter")
+ timer.interval = timeout
+ timer.start()
+ vrPopUp.sortModelforPerformInteraction()
+ vrPopUp.show()
+ vrHelpPopup.show()
+ console.debug("exit")
+ }
function complete (reason, data) {
console.debug("enter")
@@ -150,6 +167,7 @@ ContextPopup {
break
}
timer.stop()
+ grammarID = ""
hide()
performInteractionIsActiveNow = false
console.debug("exit")
diff --git a/src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml b/src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml
index 33f82013b2..d16015ec56 100644
--- a/src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml
+++ b/src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml
@@ -42,6 +42,7 @@ PopUp {
width: Constants.ttsPopUpWidth
padding: Constants.ttsPopUpPadding
property var async
+ property string helpPromptstr
ScrollView {
anchors.fill: parent
@@ -50,6 +51,7 @@ PopUp {
anchors.fill: parent
color: Constants.popUpBorderColor
font.pixelSize: Constants.ttsFontSize
+ text:""
}
}
@@ -63,12 +65,16 @@ PopUp {
Timer {
id: ttsPerformInteractionTimer
interval: Constants.ttsSpeakTime
- onTriggered: activate(message)
+ onTriggered:
+ if(interactionPopup.performInteractionIsActiveNow)
+ activate(message)
property var message: undefined
}
]
function performInteraction(helpPrompt, initialPrompt, timeoutPrompt, timeout) {
+ console.debug("Activate TTS popup:", "message");
+ helpPromptstr = helpPrompt
activate(initialPrompt);
if (timeout * 2 - Constants.ttsSpeakTime > 0) {
ttsPerformInteractionTimer.message = timeoutPrompt;
diff --git a/src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml b/src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml
index 2acf4f0651..ed33e5ca8d 100644
--- a/src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml
+++ b/src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml
@@ -57,22 +57,47 @@ PopUp {
anchors.right: parent.right
source: "../res/controlButtons/vrImage.png"
}
+ OvalButton{
+ id:helpButton
+ anchors.rightMargin: Constants.popupMargin
+ anchors.leftMargin: Constants.popupMargin
+ anchors.top: voice.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ text: "Help"
+ onClicked:{
+ if (interactionPopup.performInteractionIsActiveNow)
+ ttsPopUp.activate(ttsPopUp.helpPromptstr)
+ if (dataContainer.activeVR) {
+ vrPopUp.complete();
+ vrHelpPopup.hide()
+ }
+ }
+ }
ScrollableListView {
anchors.bottomMargin: Constants.popupMargin
anchors.rightMargin: Constants.popupMargin
anchors.leftMargin: Constants.popupMargin
- anchors.top: voice.bottom
+ anchors.top: helpButton.bottom
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.left: parent.left
- model: dataContainer.vrCommands
+ model: if (interactionPopup.grammarID) {
+ dataContainer.choicesVrCommands
+ }
+ else {
+ dataContainer.vrCommands
+ }
delegate: OvalButton {
width: parent.width
text: command
+ visible: visibleButtons(grammarID,type)
onClicked: {
+ if (interactionPopup.performInteractionIsActiveNow && type === Common.VRCommandType.Choice)
+ interactionPopup.complete(Common.Result.SUCCESS, {"choiceID": cmdID})
sdlVR.onCommand(cmdID, appID === 0 ? undefined : appID);
if (dataContainer.activeVR) {
vrPopUp.complete();
@@ -93,4 +118,41 @@ PopUp {
sdlVR.stopped();
hide();
}
+
+ function sortModelforPerformInteraction() {
+ var n,
+ i,
+ j;
+ for (n = 0; n < dataContainer.choicesVrCommands.count; n++) {
+ for (i = n + 1; i < dataContainer.choicesVrCommands.count; i++) {
+ if (dataContainer.choicesVrCommands.get(n).type === Common.VRCommandType.Command &&
+ dataContainer.choicesVrCommands.get(i).type === Common.VRCommandType.Choice) {
+ dataContainer.choicesVrCommands.move(i, n, 1);
+ n = 0;
+ }
+ }
+ }
+ for (j = interactionPopup.grammarID.length; j > 0; j--) {
+ for (n = 0; n < dataContainer.choicesVrCommands.count &&
+ dataContainer.choicesVrCommands.get(n).type === Common.VRCommandType.Choice; n++) {
+ for (i = n + 1; i < dataContainer.choicesVrCommands.count &&
+ dataContainer.choicesVrCommands.get(i).type === Common.VRCommandType.Choice; i++) {
+ if (dataContainer.choicesVrCommands.get(n).grammarID !== interactionPopup.grammarID[j-1]
+ && dataContainer.choicesVrCommands.get(i).grammarID === interactionPopup.grammarID[j-1]) {
+ dataContainer.choicesVrCommands.move(i, n, 1);
+ n = 0;
+ }
+ }
+ }
+ }
+ }
+
+ function visibleButtons(grammarID, type) {
+ if (interactionPopup.grammarID) {
+ return interactionPopup.grammarID.indexOf(grammarID) !== -1
+ }
+ else {
+ return type === Common.VRCommandType.Command
+ }
+ }
}