diff --git a/linphone-desktop/assets/images/tel_keypad_hovered.svg b/linphone-desktop/assets/images/tel_keypad_hovered.svg
index f4fb06965..f92112e9a 100644
--- a/linphone-desktop/assets/images/tel_keypad_hovered.svg
+++ b/linphone-desktop/assets/images/tel_keypad_hovered.svg
@@ -5,7 +5,7 @@
Created with Sketch.
-
+
diff --git a/linphone-desktop/src/components/conference/ConferenceModel.cpp b/linphone-desktop/src/components/conference/ConferenceModel.cpp
index 9080c9d2d..2727e2374 100644
--- a/linphone-desktop/src/components/conference/ConferenceModel.cpp
+++ b/linphone-desktop/src/components/conference/ConferenceModel.cpp
@@ -32,6 +32,13 @@ using namespace std;
// =============================================================================
ConferenceModel::ConferenceModel (QObject *parent) : QSortFilterProxyModel(parent) {
+ QObject::connect(this, &ConferenceModel::rowsRemoved, [this] {
+ emit countChanged(rowCount());
+ });
+ QObject::connect(this, &ConferenceModel::rowsInserted, [this] {
+ emit countChanged(rowCount());
+ });
+
setSourceModel(CoreManager::getInstance()->getCallsListModel());
}
diff --git a/linphone-desktop/src/components/conference/ConferenceModel.hpp b/linphone-desktop/src/components/conference/ConferenceModel.hpp
index f2ca9774a..288c37979 100644
--- a/linphone-desktop/src/components/conference/ConferenceModel.hpp
+++ b/linphone-desktop/src/components/conference/ConferenceModel.hpp
@@ -32,6 +32,8 @@ class CallModel;
class ConferenceModel : public QSortFilterProxyModel {
Q_OBJECT;
+ Q_PROPERTY(int count READ getCount NOTIFY countChanged);
+
Q_PROPERTY(bool microMuted READ getMicroMuted WRITE setMicroMuted NOTIFY microMutedChanged);
Q_PROPERTY(bool recording READ getRecording NOTIFY recordingChanged);
@@ -48,10 +50,16 @@ protected:
Q_INVOKABLE void stopRecording ();
signals:
+ void countChanged (int count);
+
void microMutedChanged (bool status);
void recordingChanged (bool status);
private:
+ int getCount () const {
+ return rowCount();
+ }
+
bool getMicroMuted () const;
void setMicroMuted (bool status);
diff --git a/linphone-desktop/ui/modules/Linphone/Calls/Calls.qml b/linphone-desktop/ui/modules/Linphone/Calls/Calls.qml
index 1b9bc22e0..fbfaa6082 100644
--- a/linphone-desktop/ui/modules/Linphone/Calls/Calls.qml
+++ b/linphone-desktop/ui/modules/Linphone/Calls/Calls.qml
@@ -15,6 +15,8 @@ ListView {
readonly property var selectedCall: calls._selectedCall
+ property var conferenceModel
+
property var _selectedCall
// ---------------------------------------------------------------------------
@@ -91,7 +93,10 @@ ListView {
// ---------------------------------------------------------------------------
header: ConferenceControls {
+ height: visible ? ConferenceControlsStyle.height : 0
width: parent.width
+
+ visible: calls.conferenceModel.count > 0
}
// ---------------------------------------------------------------------------
diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.js b/linphone-desktop/ui/views/App/Calls/CallsWindow.js
index 554932a4d..ac3af0c10 100644
--- a/linphone-desktop/ui/views/App/Calls/CallsWindow.js
+++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.js
@@ -44,7 +44,7 @@ function openConferenceManager () {
function getContent () {
var call = window.call
if (call == null) {
- return null
+ return conference
}
var status = call.status
diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.qml b/linphone-desktop/ui/views/App/Calls/CallsWindow.qml
index 35a61e9a3..831e76c22 100644
--- a/linphone-desktop/ui/views/App/Calls/CallsWindow.qml
+++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.qml
@@ -120,6 +120,7 @@ Window {
Layout.fillHeight: true
Layout.fillWidth: true
+ conferenceModel: ConferenceModel {}
model: CallsListProxyModel {}
}
}
@@ -183,6 +184,14 @@ Window {
}
}
+ Component {
+ id: conference
+
+ Conference {
+ conferenceModel: calls.conferenceModel
+ }
+ }
+
// -----------------------------------------------------------------------
childA: Loader {