1
0
Fork 0
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:
ababi 2020-10-08 18:16:33 +02:00 committed by Andreas Traczyk
parent 930b1ff443
commit 5a07055708
8 changed files with 62 additions and 40 deletions

View file

@ -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

View file

@ -97,7 +97,7 @@ Rectangle {
acceptedButtons: Qt.LeftButton acceptedButtons: Qt.LeftButton
onDoubleClicked: showFullScreenReqested() onDoubleClicked: callStackView.toggleFullScreen()
CallOverlay { CallOverlay {
id: audioCallOverlay id: audioCallOverlay

View file

@ -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 {

View file

@ -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)

View file

@ -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()

View file

@ -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

View file

@ -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,

View file

@ -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