From b0a1cd50582cfc82cd6cd44b274f87330bf866ca Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Mon, 29 May 2017 13:33:57 +0200 Subject: [PATCH] feat(ui/views/App/Calls/ConferenceManager): in progress --- linphone-desktop/assets/images/tel_keypad_hovered.svg | 2 +- .../src/components/conference/ConferenceModel.cpp | 7 +++++++ .../src/components/conference/ConferenceModel.hpp | 8 ++++++++ linphone-desktop/ui/modules/Linphone/Calls/Calls.qml | 5 +++++ linphone-desktop/ui/views/App/Calls/CallsWindow.js | 2 +- linphone-desktop/ui/views/App/Calls/CallsWindow.qml | 9 +++++++++ 6 files changed, 31 insertions(+), 2 deletions(-) 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 {