mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-04-22 06:02:03 +02:00
callview: fullscreen to compact view revision
- add "close" icon for fullscreen exit insead of "back arrow" - fullscreen exit does not switch to welcome view - "toggle fullscreen" centralized in CallStackView - avoid using white svg images - spelling revision Gitlab: #135 Change-Id: I871b75aac22d23b33be8e177102fe68bb8bd5e86
This commit is contained in:
parent
930b1ff443
commit
5a07055708
8 changed files with 62 additions and 40 deletions
|
@ -28,7 +28,7 @@ import "../../commoncomponents"
|
||||||
Popup {
|
Popup {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
property bool toogleUpdatePopupHeight: false
|
property bool toggleUpdatePopupHeight: false
|
||||||
|
|
||||||
y: accountComboBox.height - 1
|
y: accountComboBox.height - 1
|
||||||
implicitWidth: accountComboBox.width - 1
|
implicitWidth: accountComboBox.width - 1
|
||||||
|
|
|
@ -97,7 +97,7 @@ Rectangle {
|
||||||
|
|
||||||
acceptedButtons: Qt.LeftButton
|
acceptedButtons: Qt.LeftButton
|
||||||
|
|
||||||
onDoubleClicked: showFullScreenReqested()
|
onDoubleClicked: callStackView.toggleFullScreen()
|
||||||
|
|
||||||
CallOverlay {
|
CallOverlay {
|
||||||
id: audioCallOverlay
|
id: audioCallOverlay
|
||||||
|
|
|
@ -171,18 +171,27 @@ Rectangle {
|
||||||
Layout.topMargin: JamiTheme.preferredMarginSize
|
Layout.topMargin: JamiTheme.preferredMarginSize
|
||||||
Layout.leftMargin: JamiTheme.preferredMarginSize
|
Layout.leftMargin: JamiTheme.preferredMarginSize
|
||||||
|
|
||||||
source: "qrc:/images/icons/arrow_back-white-24dp.svg"
|
|
||||||
|
source: callStackView.isFullscreen ? "qrc:/images/icons/round-close-24px.svg" :
|
||||||
|
"qrc:/images/icons/ic_arrow_back_24px.svg"
|
||||||
|
|
||||||
pressedColor: JamiTheme.invertedPressedButtonColor
|
pressedColor: JamiTheme.invertedPressedButtonColor
|
||||||
hoveredColor: JamiTheme.invertedHoveredButtonColor
|
hoveredColor: JamiTheme.invertedHoveredButtonColor
|
||||||
normalColor: JamiTheme.invertedNormalButtonColor
|
normalColor: JamiTheme.invertedNormalButtonColor
|
||||||
|
|
||||||
|
imageColor: JamiTheme.whiteColor
|
||||||
|
|
||||||
toolTipText: qsTr("Toggle to display side panel")
|
toolTipText: qsTr("Toggle to display side panel")
|
||||||
|
|
||||||
visible: mainViewWindow.sidePanelOnly
|
visible: mainViewWindow.sidePanelOnly
|
||||||
|
|
||||||
onClicked: mainViewWindow.showWelcomeView()
|
onClicked: {
|
||||||
|
if (callStackView.isFullscreen) {
|
||||||
|
callStackView.toggleFullScreen()
|
||||||
|
} else {
|
||||||
|
mainViewWindow.showWelcomeView()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
|
|
|
@ -30,6 +30,15 @@ import "../js/callfullscreenwindowcontainercreation.js" as CallFullScreenWindowC
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: callStackViewWindow
|
id: callStackViewWindow
|
||||||
|
|
||||||
|
property bool isFullscreen: false
|
||||||
|
|
||||||
|
enum StackNumber {
|
||||||
|
IncomingPageStack,
|
||||||
|
OutgoingPageStack,
|
||||||
|
AudioPageStack,
|
||||||
|
VideoPageStack
|
||||||
|
}
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
Shortcut {
|
Shortcut {
|
||||||
|
@ -69,7 +78,7 @@ Rectangle {
|
||||||
|
|
||||||
function showAudioCallPage() {
|
function showAudioCallPage() {
|
||||||
var itemToFind = callStackMainView.find(function (item) {
|
var itemToFind = callStackMainView.find(function (item) {
|
||||||
return item.stackNumber === 0
|
return item.stackNumber === CallStackView.AudioPageStack
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!itemToFind) {
|
if (!itemToFind) {
|
||||||
|
@ -82,7 +91,7 @@ Rectangle {
|
||||||
|
|
||||||
function showOutgoingCallPage() {
|
function showOutgoingCallPage() {
|
||||||
var itemToFind = callStackMainView.find(function (item) {
|
var itemToFind = callStackMainView.find(function (item) {
|
||||||
return item.stackNumber === 1
|
return item.stackNumber === CallStackView.OutgoingPageStack
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!itemToFind) {
|
if (!itemToFind) {
|
||||||
|
@ -94,7 +103,7 @@ Rectangle {
|
||||||
|
|
||||||
function showIncomingCallPage(accountId, convUid) {
|
function showIncomingCallPage(accountId, convUid) {
|
||||||
var itemToFind = callStackMainView.find(function (item) {
|
var itemToFind = callStackMainView.find(function (item) {
|
||||||
return item.stackNumber === 3
|
return item.stackNumber === CallStackView.IncomingPageStack
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!itemToFind) {
|
if (!itemToFind) {
|
||||||
|
@ -109,7 +118,7 @@ Rectangle {
|
||||||
|
|
||||||
function showVideoCallPage() {
|
function showVideoCallPage() {
|
||||||
var itemToFind = callStackMainView.find(function (item) {
|
var itemToFind = callStackMainView.find(function (item) {
|
||||||
return item.stackNumber === 2
|
return item.stackNumber === CallStackView.VideoPageStack
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!itemToFind) {
|
if (!itemToFind) {
|
||||||
|
@ -123,18 +132,24 @@ Rectangle {
|
||||||
videoCallPage.setDistantRendererId(callId)
|
videoCallPage.setDistantRendererId(callId)
|
||||||
}
|
}
|
||||||
|
|
||||||
function toogleFullScreen(callPage){
|
function toggleFullScreen() {
|
||||||
callPage.isFullscreen = !callPage.isFullscreen
|
isFullscreen = !isFullscreen
|
||||||
|
var callPage = callStackMainView.currentItem
|
||||||
CallFullScreenWindowContainerCreation.createvideoCallFullScreenWindowContainerObject()
|
CallFullScreenWindowContainerCreation.createvideoCallFullScreenWindowContainerObject()
|
||||||
|
|
||||||
if (!CallFullScreenWindowContainerCreation.checkIfVisible()) {
|
if (!CallFullScreenWindowContainerCreation.checkIfVisible()) {
|
||||||
CallFullScreenWindowContainerCreation.setAsContainerChild(
|
CallFullScreenWindowContainerCreation.setAsContainerChild(callPage)
|
||||||
callPage)
|
|
||||||
CallFullScreenWindowContainerCreation.showVideoCallFullScreenWindowContainer()
|
CallFullScreenWindowContainerCreation.showVideoCallFullScreenWindowContainer()
|
||||||
} else {
|
} else {
|
||||||
callPage.parent = callStackMainView
|
callPage.parent = callStackMainView
|
||||||
CallFullScreenWindowContainerCreation.closeVideoCallFullScreenWindowContainer()
|
CallFullScreenWindowContainerCreation.closeVideoCallFullScreenWindowContainer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (callStackMainView.find(function (item) {
|
||||||
|
return item.stackNumber === CallStackView.VideoPageStack
|
||||||
|
})) {
|
||||||
|
videoCallPage.handleParticipantsInfo(CallAdapter.getConferencesInfos())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
|
@ -157,16 +172,13 @@ Rectangle {
|
||||||
AudioCallPage {
|
AudioCallPage {
|
||||||
id: audioCallPage
|
id: audioCallPage
|
||||||
|
|
||||||
property int stackNumber: 0
|
property int stackNumber: CallStackView.AudioPageStack
|
||||||
property bool isFullscreen: false
|
|
||||||
|
|
||||||
onShowFullScreenReqested: toogleFullScreen(this)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OutgoingCallPage {
|
OutgoingCallPage {
|
||||||
id: outgoingCallPage
|
id: outgoingCallPage
|
||||||
|
|
||||||
property int stackNumber: 1
|
property int stackNumber: CallStackView.OutgoingPageStack
|
||||||
|
|
||||||
onCallCancelButtonIsClicked: {
|
onCallCancelButtonIsClicked: {
|
||||||
CallAdapter.hangUpACall(responsibleAccountId, responsibleConvUid)
|
CallAdapter.hangUpACall(responsibleAccountId, responsibleConvUid)
|
||||||
|
@ -176,19 +188,14 @@ Rectangle {
|
||||||
VideoCallPage {
|
VideoCallPage {
|
||||||
id: videoCallPage
|
id: videoCallPage
|
||||||
|
|
||||||
property int stackNumber: 2
|
property int stackNumber: CallStackView.VideoPageStack
|
||||||
property bool isFullscreen: false
|
|
||||||
|
|
||||||
onShowFullScreenReqested: {
|
|
||||||
toogleFullScreen(this)
|
|
||||||
videoCallPage.handleParticipantsInfo(CallAdapter.getConferencesInfos())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IncomingCallPage {
|
IncomingCallPage {
|
||||||
id: incomingCallPage
|
id: incomingCallPage
|
||||||
|
|
||||||
property int stackNumber: 3
|
property int stackNumber: CallStackView.IncomingPageStack
|
||||||
|
|
||||||
onCallAcceptButtonIsClicked: {
|
onCallAcceptButtonIsClicked: {
|
||||||
CallAdapter.acceptACall(responsibleAccountId, responsibleConvUid)
|
CallAdapter.acceptACall(responsibleAccountId, responsibleConvUid)
|
||||||
|
|
|
@ -73,23 +73,23 @@ Item {
|
||||||
})
|
})
|
||||||
|
|
||||||
if (isAudioOnly && !isPaused)
|
if (isAudioOnly && !isPaused)
|
||||||
ContextMenuGenerator.addMenuItem(audioCallPage.isFullscreen ? JamiStrings.exitFullScreen :
|
ContextMenuGenerator.addMenuItem(callStackView.isFullscreen ? JamiStrings.exitFullScreen :
|
||||||
JamiStrings.fullScreen,
|
JamiStrings.fullScreen,
|
||||||
audioCallPage.isFullscreen ?
|
callStackView.isFullscreen ?
|
||||||
"qrc:/images/icons/close_fullscreen-24px.svg" :
|
"qrc:/images/icons/close_fullscreen-24px.svg" :
|
||||||
"qrc:/images/icons/open_in_full-24px.svg",
|
"qrc:/images/icons/open_in_full-24px.svg",
|
||||||
function (){
|
function (){
|
||||||
audioCallPage.showFullScreenReqested()
|
callStackView.toggleFullScreen()
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!isAudioOnly && !isPaused) {
|
if (!isAudioOnly && !isPaused) {
|
||||||
ContextMenuGenerator.addMenuItem(videoCallPage.isFullscreen ? JamiStrings.exitFullScreen :
|
ContextMenuGenerator.addMenuItem(callStackView.isFullscreen ? JamiStrings.exitFullScreen :
|
||||||
JamiStrings.fullScreen,
|
JamiStrings.fullScreen,
|
||||||
videoCallPage.isFullscreen ?
|
callStackView.isFullscreen ?
|
||||||
"qrc:/images/icons/close_fullscreen-24px.svg" :
|
"qrc:/images/icons/close_fullscreen-24px.svg" :
|
||||||
"qrc:/images/icons/open_in_full-24px.svg",
|
"qrc:/images/icons/open_in_full-24px.svg",
|
||||||
function (){
|
function (){
|
||||||
videoCallPage.showFullScreenReqested()
|
callStackView.toggleFullScreen()
|
||||||
})
|
})
|
||||||
|
|
||||||
ContextMenuGenerator.addMenuSeparator()
|
ContextMenuGenerator.addMenuSeparator()
|
||||||
|
|
|
@ -58,12 +58,14 @@ Rectangle {
|
||||||
Layout.topMargin: JamiTheme.preferredMarginSize
|
Layout.topMargin: JamiTheme.preferredMarginSize
|
||||||
Layout.leftMargin: JamiTheme.preferredMarginSize
|
Layout.leftMargin: JamiTheme.preferredMarginSize
|
||||||
|
|
||||||
source: "qrc:/images/icons/arrow_back-white-24dp.svg"
|
source: "qrc:/images/icons/ic_arrow_back_24px.svg"
|
||||||
|
|
||||||
pressedColor: JamiTheme.invertedPressedButtonColor
|
pressedColor: JamiTheme.invertedPressedButtonColor
|
||||||
hoveredColor: JamiTheme.invertedHoveredButtonColor
|
hoveredColor: JamiTheme.invertedHoveredButtonColor
|
||||||
normalColor: JamiTheme.invertedNormalButtonColor
|
normalColor: JamiTheme.invertedNormalButtonColor
|
||||||
|
|
||||||
|
imageColor: JamiTheme.whiteColor
|
||||||
|
|
||||||
toolTipText: qsTr("Toggle to display side panel")
|
toolTipText: qsTr("Toggle to display side panel")
|
||||||
|
|
||||||
visible: mainViewWindow.sidePanelOnly
|
visible: mainViewWindow.sidePanelOnly
|
||||||
|
|
|
@ -79,7 +79,8 @@ Rectangle {
|
||||||
|
|
||||||
function handleParticipantsInfo(infos) {
|
function handleParticipantsInfo(infos) {
|
||||||
if (infos.length === 0) {
|
if (infos.length === 0) {
|
||||||
bestName = UtilsAdapter.getBestName(accountId, convUid)
|
bestName = UtilsAdapter.getBestName(AccountAdapter.currentAccountId,
|
||||||
|
UtilsAdapter.getCurrConvId())
|
||||||
} else {
|
} else {
|
||||||
bestName = ""
|
bestName = ""
|
||||||
}
|
}
|
||||||
|
@ -139,7 +140,9 @@ Rectangle {
|
||||||
handle: Rectangle {
|
handle: Rectangle {
|
||||||
implicitWidth: videoCallPageRect.width
|
implicitWidth: videoCallPageRect.width
|
||||||
implicitHeight: JamiTheme.splitViewHandlePreferredWidth
|
implicitHeight: JamiTheme.splitViewHandlePreferredWidth
|
||||||
color: SplitHandle.pressed ? JamiTheme.pressColor : (SplitHandle.hovered ? JamiTheme.hoverColor : JamiTheme.tabbarBorderColor)
|
color: SplitHandle.pressed ? JamiTheme.pressColor :
|
||||||
|
(SplitHandle.hovered ? JamiTheme.hoverColor :
|
||||||
|
JamiTheme.tabbarBorderColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
@ -155,7 +158,7 @@ Rectangle {
|
||||||
|
|
||||||
acceptedButtons: Qt.LeftButton
|
acceptedButtons: Qt.LeftButton
|
||||||
|
|
||||||
onDoubleClicked: showFullScreenReqested()
|
onDoubleClicked: callStackView.toggleFullScreen()
|
||||||
|
|
||||||
CallOverlay {
|
CallOverlay {
|
||||||
id: videoCallOverlay
|
id: videoCallOverlay
|
||||||
|
@ -170,7 +173,8 @@ Rectangle {
|
||||||
videoCallOverlay.setRecording(CallAdapter.isRecordingThisCall())
|
videoCallOverlay.setRecording(CallAdapter.isRecordingThisCall())
|
||||||
}
|
}
|
||||||
|
|
||||||
function onUpdateOverlay(isPaused, isAudioOnly, isAudioMuted, isVideoMuted, isRecording, isSIP, isConferenceCall, bestName) {
|
function onUpdateOverlay(isPaused, isAudioOnly, isAudioMuted, isVideoMuted,
|
||||||
|
isRecording, isSIP, isConferenceCall, bestName) {
|
||||||
videoCallOverlay.showOnHoldImage(isPaused)
|
videoCallOverlay.showOnHoldImage(isPaused)
|
||||||
videoCallOverlay.updateButtonStatus(isPaused,
|
videoCallOverlay.updateButtonStatus(isPaused,
|
||||||
isAudioOnly,
|
isAudioOnly,
|
||||||
|
|
|
@ -50,8 +50,8 @@ ColumnLayout {
|
||||||
enableSDESToggle.checked = (SettingsAdapter.getAccountConfig_SRTP_KeyExchange() === Account.KeyExchangeProtocol.SDES)
|
enableSDESToggle.checked = (SettingsAdapter.getAccountConfig_SRTP_KeyExchange() === Account.KeyExchangeProtocol.SDES)
|
||||||
fallbackRTPToggle.checked = SettingsAdapter.getAccountConfig_SRTP_RtpFallback()
|
fallbackRTPToggle.checked = SettingsAdapter.getAccountConfig_SRTP_RtpFallback()
|
||||||
encryptNegotitationToggle.checked = SettingsAdapter.getAccountConfig_TLS_Enable()
|
encryptNegotitationToggle.checked = SettingsAdapter.getAccountConfig_TLS_Enable()
|
||||||
verifyIncomingCertificatesServerToogle.checked = SettingsAdapter.getAccountConfig_TLS_VerifyServer()
|
verifyIncomingCertificatesServerToggle.checked = SettingsAdapter.getAccountConfig_TLS_VerifyServer()
|
||||||
verifyIncomingCertificatesClientToogle.checked = SettingsAdapter.getAccountConfig_TLS_VerifyClient()
|
verifyIncomingCertificatesClientToggle.checked = SettingsAdapter.getAccountConfig_TLS_VerifyClient()
|
||||||
requireCeritificateForTLSIncomingToggle.checked = SettingsAdapter.getAccountConfig_TLS_RequireClientCertificate()
|
requireCeritificateForTLSIncomingToggle.checked = SettingsAdapter.getAccountConfig_TLS_RequireClientCertificate()
|
||||||
|
|
||||||
var method = SettingsAdapter.getAccountConfig_TLS_Method_inInt()
|
var method = SettingsAdapter.getAccountConfig_TLS_Method_inInt()
|
||||||
|
@ -245,7 +245,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
ToggleSwitch {
|
ToggleSwitch {
|
||||||
id: verifyIncomingCertificatesServerToogle
|
id: verifyIncomingCertificatesServerToggle
|
||||||
|
|
||||||
labelText: JamiStrings.verifyCertificatesServer
|
labelText: JamiStrings.verifyCertificatesServer
|
||||||
fontPointSize: JamiTheme.settingsFontSize
|
fontPointSize: JamiTheme.settingsFontSize
|
||||||
|
@ -256,7 +256,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
ToggleSwitch {
|
ToggleSwitch {
|
||||||
id: verifyIncomingCertificatesClientToogle
|
id: verifyIncomingCertificatesClientToggle
|
||||||
|
|
||||||
labelText: JamiStrings.verifyCertificatesClient
|
labelText: JamiStrings.verifyCertificatesClient
|
||||||
fontPointSize: JamiTheme.settingsFontSize
|
fontPointSize: JamiTheme.settingsFontSize
|
||||||
|
|
Loading…
Add table
Reference in a new issue