Skip to content
Snippets Groups Projects
Commit c8008c54 authored by Andreas Traczyk's avatar Andreas Traczyk
Browse files

fix: in-call chat view opening and closing

- fixes the in-call chat view requiring reselection to open
- fixes the in-call chat view staying open, on top of the principal
  chat view when a call ends

Gitlab: #415
Gitlab: #416
Change-Id: Idcfaaf263d5d53451dedf955ce441f0a705309a9
parent 2bca28b7
No related branches found
No related tags found
No related merge requests found
......@@ -51,14 +51,22 @@ Rectangle {
closeInCallConversation)
}
function openInCallConversation() {
if (linkedWebview) {
linkedWebview.resetMessagingHeaderBackButtonSource(false)
linkedWebview.setMessagingHeaderButtonsVisible(false)
}
inAudioCallMessageWebViewStack.visible = true
inAudioCallMessageWebViewStack.push(linkedWebview)
}
function closeInCallConversation() {
if (inAudioCallMessageWebViewStack.visible) {
linkedWebview.resetMessagingHeaderBackButtonSource(
true)
if (linkedWebview) {
linkedWebview.resetMessagingHeaderBackButtonSource(true)
linkedWebview.setMessagingHeaderButtonsVisible(true)
inAudioCallMessageWebViewStack.visible = false
inAudioCallMessageWebViewStack.clear()
}
inAudioCallMessageWebViewStack.visible = false
inAudioCallMessageWebViewStack.clear()
}
function closeContextMenuAndRelatedWindows() {
......@@ -136,22 +144,9 @@ Rectangle {
}
onOverlayChatButtonClicked: {
if (inAudioCallMessageWebViewStack.visible) {
linkedWebview.resetMessagingHeaderBackButtonSource(
true)
linkedWebview.setMessagingHeaderButtonsVisible(
true)
inAudioCallMessageWebViewStack.visible = false
inAudioCallMessageWebViewStack.clear()
} else {
linkedWebview.resetMessagingHeaderBackButtonSource(
false)
linkedWebview.setMessagingHeaderButtonsVisible(
false)
inAudioCallMessageWebViewStack.visible = true
inAudioCallMessageWebViewStack.push(
linkedWebview)
}
inAudioCallMessageWebViewStack.visible ?
closeInCallConversation() :
openInCallConversation()
}
}
......
......@@ -44,6 +44,8 @@ Rectangle {
signal overlayChatButtonClicked
onVisibleChanged: if (!visible) callViewContextMenu.close()
function setRecording(localIsRecording) {
callViewContextMenu.localIsRecording = localIsRecording
recordingRect.visible = localIsRecording
......
......@@ -50,25 +50,25 @@ Rectangle {
property string responsibleConvUid: ""
property string responsibleAccountId: ""
// TODO: this should all be done by listening to
// parent visibility change or parent `Component.onDestruction`
function needToCloseInCallConversationAndPotentialWindow() {
// Close potential window, context menu releated windows.
if (!callStackMainView.currentItem)
return
if (callStackMainView.currentItem.stackNumber === CallStackView.AudioPageStack) {
if (audioCallPage) {
audioCallPage.closeInCallConversation()
audioCallPage.closeContextMenuAndRelatedWindows()
} else if (callStackMainView.currentItem.stackNumber === CallStackView.VideoPageStack) {
}
if (videoCallPage) {
videoCallPage.closeInCallConversation()
videoCallPage.closeContextMenuAndRelatedWindows()
}
}
function setLinkedWebview(webViewId) {
if (callStackMainView.currentItem.stackNumber === CallStackView.AudioPageStack) {
if (audioCallPage)
audioCallPage.setLinkedWebview(webViewId)
} else if (callStackMainView.currentItem.stackNumber === CallStackView.VideoPageStack) {
if (videoCallPage)
videoCallPage.setLinkedWebview(webViewId)
}
}
function getItemFromStack(itemNumber) {
......
......@@ -44,6 +44,14 @@ Item {
signal pluginItemClicked
signal transferCallButtonClicked
function close() {
// leave this debug line is a reminder of a design failure
console.debug("call view context menu close")
const menu = ContextMenuGenerator.getMenu()
if (menu)
menu.close()
}
function openMenu(){
ContextMenuGenerator.initMenu()
if (isSIP){
......
......@@ -63,14 +63,22 @@ Rectangle {
closeInCallConversation)
}
function openInCallConversation() {
if (linkedWebview) {
linkedWebview.resetMessagingHeaderBackButtonSource(false)
linkedWebview.setMessagingHeaderButtonsVisible(false)
}
inVideoCallMessageWebViewStack.visible = true
inVideoCallMessageWebViewStack.push(linkedWebview)
}
function closeInCallConversation() {
if (inVideoCallMessageWebViewStack.visible) {
linkedWebview.resetMessagingHeaderBackButtonSource(
true)
if (linkedWebview) {
linkedWebview.resetMessagingHeaderBackButtonSource(true)
linkedWebview.setMessagingHeaderButtonsVisible(true)
inVideoCallMessageWebViewStack.visible = false
inVideoCallMessageWebViewStack.clear()
}
inVideoCallMessageWebViewStack.visible = false
inVideoCallMessageWebViewStack.clear()
}
function closeContextMenuAndRelatedWindows() {
......@@ -200,22 +208,9 @@ Rectangle {
}
onOverlayChatButtonClicked: {
if (inVideoCallMessageWebViewStack.visible) {
linkedWebview.resetMessagingHeaderBackButtonSource(
true)
linkedWebview.setMessagingHeaderButtonsVisible(
true)
inVideoCallMessageWebViewStack.visible = false
inVideoCallMessageWebViewStack.clear()
} else {
linkedWebview.resetMessagingHeaderBackButtonSource(
false)
linkedWebview.setMessagingHeaderButtonsVisible(
false)
inVideoCallMessageWebViewStack.visible = true
inVideoCallMessageWebViewStack.push(
linkedWebview)
}
inVideoCallMessageWebViewStack.visible ?
closeInCallConversation() :
openInCallConversation()
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment