From 7aeab85c2b203be56651ce57db73bd671e1b1665 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Tue, 12 Jul 2022 13:54:06 +0200 Subject: [PATCH] Add a menu to select video conference laout in waiting room. --- .../ui/views/App/Calls/WaitingRoom.qml | 41 ++++++++++++++++++- .../App/Styles/Calls/WaitingRoomStyle.qml | 19 +++++---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/linphone-app/ui/views/App/Calls/WaitingRoom.qml b/linphone-app/ui/views/App/Calls/WaitingRoom.qml index 3a1919b4a..c402d6057 100644 --- a/linphone-app/ui/views/App/Calls/WaitingRoom.qml +++ b/linphone-app/ui/views/App/Calls/WaitingRoom.qml @@ -314,11 +314,50 @@ Rectangle { anchors.centerIn: parent anchors.horizontalCenterOffset: contentsStack.cameraWidth/2 - modeChoice.width/2 visible: !mainItem.callModel + toggled: layoutMenu.visible isCustom: true backgroundRadius: width/2 colorSet: selectedMode == LinphoneEnums.ConferenceLayoutGrid ? WaitingRoomStyle.buttons.gridLayout : selectedMode == LinphoneEnums.ConferenceLayoutActiveSpeaker ? WaitingRoomStyle.buttons.activeSpeakerLayout : WaitingRoomStyle.buttons.audioOnly - onClicked: selectedMode = (selectedMode + 1) % 3 + onClicked: layoutMenu.visible = true + Rectangle{ + id: layoutMenu + anchors.bottom: parent.top + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottomMargin: 10 + height: menuLayout.implicitHeight + 10 + width: parent.width + 10 + + visible: false + color: WaitingRoomStyle.menuColor + radius: 5 + + ColumnLayout{ + id: menuLayout + anchors.centerIn: parent + ActionButton{ + isCustom: true + backgroundRadius: width/2 + toggled: modeChoice.selectedMode == LinphoneEnums.ConferenceLayoutGrid + colorSet: WaitingRoomStyle.buttons.gridLayout + onClicked: {modeChoice.selectedMode = LinphoneEnums.ConferenceLayoutGrid ; layoutMenu.visible = false} + } + ActionButton{ + isCustom: true + backgroundRadius: width/2 + toggled: modeChoice.selectedMode == LinphoneEnums.ConferenceLayoutActiveSpeaker + colorSet: WaitingRoomStyle.buttons.activeSpeakerLayout + onClicked: {modeChoice.selectedMode = LinphoneEnums.ConferenceLayoutActiveSpeaker ; layoutMenu.visible = false} + } + ActionButton{ + isCustom: true + backgroundRadius: width/2 + toggled: modeChoice.selectedMode == 2 + colorSet: WaitingRoomStyle.buttons.audioOnly + onClicked: {modeChoice.selectedMode = 2 ; layoutMenu.visible = false} + } + } + } } } } diff --git a/linphone-app/ui/views/App/Styles/Calls/WaitingRoomStyle.qml b/linphone-app/ui/views/App/Styles/Calls/WaitingRoomStyle.qml index 3ed1c8873..d34f71f25 100644 --- a/linphone-app/ui/views/App/Styles/Calls/WaitingRoomStyle.qml +++ b/linphone-app/ui/views/App/Styles/Calls/WaitingRoomStyle.qml @@ -9,6 +9,7 @@ import ColorsList 1.0 QtObject { property string sectionName: 'WaitingRoom' property color backgroundColor: ColorsList.add(sectionName+'_description', '', '', '#798791').color + property color menuColor: ColorsList.add(sectionName+'_menu', 'r').color property QtObject title: QtObject { property color color: ColorsList.add(sectionName+'_title', 'q').color @@ -222,11 +223,11 @@ QtObject { property int iconSize: 40 property string icon : 'conference_layout_grid_custom' property string name : 'gridLayout' - property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg').color - property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg').color + property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_h_b_bg').color + property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_n_b_bg').color property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 's_p_b_bg').color property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_u', icon, 's_p_b_bg').color - property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_n_b_fg').color + property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_h_b_fg').color property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's_n_b_fg').color property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's_p_b_fg').color property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 's_p_b_fg').color @@ -235,11 +236,11 @@ QtObject { property int iconSize: 40 property string icon : 'conference_layout_active_speaker_custom' property string name : 'activeSpeakerLayout' - property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg').color - property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg').color + property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_h_b_bg').color + property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_n_b_bg').color property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 's_p_b_bg').color property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_u', icon, 's_p_b_bg').color - property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_n_b_fg').color + property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_h_b_fg').color property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's_n_b_fg').color property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's_p_b_fg').color property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 's_p_b_fg').color @@ -248,11 +249,11 @@ QtObject { property int iconSize: 40 property string icon : 'conference_audio_only_custom' property string name : 'audioOnly' - property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg').color - property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg').color + property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_h_b_bg').color + property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_n_b_bg').color property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 's_p_b_bg').color property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_u', icon, 's_p_b_bg').color - property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_n_b_fg').color + property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's_h_b_fg').color property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's_n_b_fg').color property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's_p_b_fg').color property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 's_p_b_fg').color