mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-04-24 14:38:25 +00:00
Fix alone text in participant list (video conference).
Reload devices when entering in settings. Remove workaround for reloading video devices while in call. Add capture feedback in waiting room and change buttons layout. Replace options icones.
This commit is contained in:
parent
237940d798
commit
d015ffbf14
9 changed files with 76 additions and 51 deletions
|
|
@ -39,6 +39,8 @@
|
||||||
|
|
||||||
ParticipantProxyModel::ParticipantProxyModel (QObject *parent) : QSortFilterProxyModel(parent) {
|
ParticipantProxyModel::ParticipantProxyModel (QObject *parent) : QSortFilterProxyModel(parent) {
|
||||||
setSourceModel(new ParticipantListModel((ConferenceModel*)nullptr, this));
|
setSourceModel(new ParticipantListModel((ConferenceModel*)nullptr, this));
|
||||||
|
connect(this, &ParticipantProxyModel::chatRoomModelChanged, this, &ParticipantProxyModel::countChanged);
|
||||||
|
connect(this, &ParticipantProxyModel::conferenceModelChanged, this, &ParticipantProxyModel::countChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,17 @@ void SettingsModel::settingsWindowClosing(void) {
|
||||||
onSettingsTabChanged(-1);
|
onSettingsTabChanged(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsModel::reloadDevices(){
|
||||||
|
CoreManager::getInstance()->getCore()->reloadSoundDevices();
|
||||||
|
emit captureDevicesChanged(getCaptureDevices());
|
||||||
|
emit playbackDevicesChanged(getPlaybackDevices());
|
||||||
|
emit playbackDeviceChanged(getPlaybackDevice());
|
||||||
|
emit captureDeviceChanged(getCaptureDevice());
|
||||||
|
emit ringerDeviceChanged(getRingerDevice());
|
||||||
|
CoreManager::getInstance()->getCore()->reloadVideoDevices();
|
||||||
|
emit videoDevicesChanged(getVideoDevices());
|
||||||
|
}
|
||||||
|
|
||||||
//Provides tabbar per-tab setup/teardown mechanism for specific settings views
|
//Provides tabbar per-tab setup/teardown mechanism for specific settings views
|
||||||
void SettingsModel::onSettingsTabChanged(int idx) {
|
void SettingsModel::onSettingsTabChanged(int idx) {
|
||||||
int prevIdx = mCurrentSettingsTab;
|
int prevIdx = mCurrentSettingsTab;
|
||||||
|
|
@ -460,7 +471,7 @@ void SettingsModel::setShowAudioCodecs (bool status) {
|
||||||
|
|
||||||
//Force a call on the 'detect' method of all video filters, updating new or removed devices
|
//Force a call on the 'detect' method of all video filters, updating new or removed devices
|
||||||
void SettingsModel::accessVideoSettings() {
|
void SettingsModel::accessVideoSettings() {
|
||||||
if(!getIsInCall())// TODO : This is a workaround to a crash when reloading video devices while in call. Spotted on Macos.
|
//if(!getIsInCall())// TODO : This is a workaround to a crash when reloading video devices while in call. Spotted on Macos.
|
||||||
CoreManager::getInstance()->getCore()->reloadVideoDevices();
|
CoreManager::getInstance()->getCore()->reloadVideoDevices();
|
||||||
emit videoDevicesChanged(getVideoDevices());
|
emit videoDevicesChanged(getVideoDevices());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -238,6 +238,7 @@ public:
|
||||||
|
|
||||||
Q_INVOKABLE void onSettingsTabChanged(int idx);
|
Q_INVOKABLE void onSettingsTabChanged(int idx);
|
||||||
Q_INVOKABLE void settingsWindowClosing(void);
|
Q_INVOKABLE void settingsWindowClosing(void);
|
||||||
|
Q_INVOKABLE void reloadDevices();
|
||||||
|
|
||||||
// Assistant. ----------------------------------------------------------------
|
// Assistant. ----------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,10 @@ DialogPlus {
|
||||||
]
|
]
|
||||||
|
|
||||||
buttonsAlignment: Qt.AlignCenter
|
buttonsAlignment: Qt.AlignCenter
|
||||||
|
onVisibleChanged: if(visible) {SettingsModel.reloadDevices()}
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
SettingsModel.stopCaptureGraph()
|
||||||
|
SettingsModel.reloadDevices()
|
||||||
SettingsModel.startCaptureGraph()
|
SettingsModel.startCaptureGraph()
|
||||||
if( fixedSize){
|
if( fixedSize){
|
||||||
height = fitHeight
|
height = fitHeight
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,7 @@ Rectangle {
|
||||||
id: loader
|
id: loader
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
property int minSize: Math.min( loader.height, loader.width)
|
||||||
Item{
|
Item{
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
@ -84,7 +85,7 @@ Rectangle {
|
||||||
Flipable{
|
Flipable{
|
||||||
id: contentsStack
|
id: contentsStack
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
height: Math.min( loader.height, loader.width)
|
height: loader.minSize
|
||||||
width : height
|
width : height
|
||||||
property bool flipped: false
|
property bool flipped: false
|
||||||
|
|
||||||
|
|
@ -110,7 +111,7 @@ Rectangle {
|
||||||
id: previewLoader
|
id: previewLoader
|
||||||
showCloseButton: false
|
showCloseButton: false
|
||||||
enabled: mainItem.previewLoaderEnabled
|
enabled: mainItem.previewLoaderEnabled
|
||||||
height: Math.min( loader.height, loader.width)
|
height: loader.minSize
|
||||||
width : height
|
width : height
|
||||||
ActionButton{
|
ActionButton{
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
|
@ -153,21 +154,16 @@ Rectangle {
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
// Action Buttons.
|
// Action Buttons.
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
RowLayout{
|
Item{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 25
|
Layout.topMargin: 25
|
||||||
Layout.bottomMargin: 25
|
Layout.bottomMargin: 25
|
||||||
Layout.leftMargin: 25
|
Layout.leftMargin: 25
|
||||||
Layout.rightMargin: 25
|
Layout.rightMargin: 25
|
||||||
enabled: !mainItem.callModel
|
enabled: !mainItem.callModel
|
||||||
Item{
|
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
|
||||||
// Action buttons
|
// Action buttons
|
||||||
RowLayout{
|
RowLayout{
|
||||||
Layout.alignment: Qt.AlignCenter
|
anchors.centerIn: parent
|
||||||
spacing: 30
|
|
||||||
RowLayout{
|
|
||||||
spacing: 10
|
spacing: 10
|
||||||
ActionSwitch {
|
ActionSwitch {
|
||||||
id: micro
|
id: micro
|
||||||
|
|
@ -178,6 +174,16 @@ Rectangle {
|
||||||
colorSet: microMuted ? WaitingRoomStyle.buttons.microOff : WaitingRoomStyle.buttons.microOn
|
colorSet: microMuted ? WaitingRoomStyle.buttons.microOff : WaitingRoomStyle.buttons.microOn
|
||||||
onClicked: microMuted = !microMuted
|
onClicked: microMuted = !microMuted
|
||||||
}
|
}
|
||||||
|
VuMeter {
|
||||||
|
enabled: !micro.microMuted
|
||||||
|
Timer {
|
||||||
|
interval: 50
|
||||||
|
repeat: true
|
||||||
|
running: parent.enabled
|
||||||
|
|
||||||
|
onTriggered: parent.value = SettingsModel.getMicVolume()
|
||||||
|
}
|
||||||
|
}
|
||||||
ActionSwitch {
|
ActionSwitch {
|
||||||
id: speaker
|
id: speaker
|
||||||
property bool speakerMuted: false
|
property bool speakerMuted: false
|
||||||
|
|
@ -197,6 +203,9 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RowLayout{
|
RowLayout{
|
||||||
|
anchors.centerIn: parent
|
||||||
|
anchors.horizontalCenterOffset: loader.minSize/2 - modeChoice.width/2
|
||||||
|
|
||||||
ActionButton{
|
ActionButton{
|
||||||
id: modeChoice
|
id: modeChoice
|
||||||
property int selectedMode: 0
|
property int selectedMode: 0
|
||||||
|
|
@ -207,7 +216,6 @@ Rectangle {
|
||||||
onClicked: selectedMode = (selectedMode + 1) % 3
|
onClicked: selectedMode = (selectedMode + 1) % 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Item{
|
Item{
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -286,7 +286,7 @@ QtObject {
|
||||||
}
|
}
|
||||||
property QtObject options: QtObject {
|
property QtObject options: QtObject {
|
||||||
property int iconSize: 40
|
property int iconSize: 40
|
||||||
property string icon : 'options_custom'
|
property string icon : 'menu_vdots_custom'
|
||||||
property string name : 'options'
|
property string name : 'options'
|
||||||
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg').color
|
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 backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg').color
|
||||||
|
|
|
||||||
|
|
@ -288,7 +288,7 @@ QtObject {
|
||||||
}
|
}
|
||||||
property QtObject options: QtObject {
|
property QtObject options: QtObject {
|
||||||
property int iconSize: 40
|
property int iconSize: 40
|
||||||
property string icon : 'options_custom'
|
property string icon : 'menu_vdots_custom'
|
||||||
property string name : 'options'
|
property string name : 'options'
|
||||||
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg').color
|
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 backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg').color
|
||||||
|
|
|
||||||
|
|
@ -408,7 +408,7 @@ QtObject {
|
||||||
}
|
}
|
||||||
property QtObject options: QtObject {
|
property QtObject options: QtObject {
|
||||||
property int iconSize: 40
|
property int iconSize: 40
|
||||||
property string icon : 'options_custom'
|
property string icon : 'menu_vdots_custom'
|
||||||
property string name : 'options'
|
property string name : 'options'
|
||||||
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'me_n_b_inv_bg').color
|
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'me_n_b_inv_bg').color
|
||||||
property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'me_h_b_inv_bg').color
|
property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'me_h_b_inv_bg').color
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ QtObject {
|
||||||
}
|
}
|
||||||
property QtObject options: QtObject {
|
property QtObject options: QtObject {
|
||||||
property int iconSize: 40
|
property int iconSize: 40
|
||||||
property string icon : 'options_custom'
|
property string icon : 'menu_vdots_custom'
|
||||||
property string name : 'options'
|
property string name : 'options'
|
||||||
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 's_n_b_bg').color
|
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 backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 's_h_b_bg').color
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue