From d5ccf5b7249ebfff2aa4b8e5b288e13afae0eeeb Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 24 May 2017 14:49:58 +0200 Subject: [PATCH] feat(ui/views/App/Calls/ConferenceManager): in progress --- linphone-desktop/assets/languages/en.ts | 4 ---- linphone-desktop/assets/languages/fr.ts | 4 ---- .../components/conference/ConferenceModel.cpp | 13 +++++++++++++ .../components/conference/ConferenceModel.hpp | 2 ++ .../ui/views/App/Calls/CallsWindow.js | 5 ++++- .../ui/views/App/Calls/Conference.qml | 16 ---------------- submodules/linphone | 2 +- 7 files changed, 20 insertions(+), 26 deletions(-) diff --git a/linphone-desktop/assets/languages/en.ts b/linphone-desktop/assets/languages/en.ts index d95f0da50..ee113cdb4 100644 --- a/linphone-desktop/assets/languages/en.ts +++ b/linphone-desktop/assets/languages/en.ts @@ -363,10 +363,6 @@ Server url not configured. conferenceTitle CONFERENCE - - pendingRequestLabel - Please to wait, a request is pending. - ConferenceManager diff --git a/linphone-desktop/assets/languages/fr.ts b/linphone-desktop/assets/languages/fr.ts index 3e93740b9..e55f42f3e 100644 --- a/linphone-desktop/assets/languages/fr.ts +++ b/linphone-desktop/assets/languages/fr.ts @@ -363,10 +363,6 @@ Url du serveur non configurée. conferenceTitle CONFÉRENCE - - pendingRequestLabel - Merci de patienter, une requête est en attente. - ConferenceManager diff --git a/linphone-desktop/src/components/conference/ConferenceModel.cpp b/linphone-desktop/src/components/conference/ConferenceModel.cpp index 8ecd9cb1a..1e854ad25 100644 --- a/linphone-desktop/src/components/conference/ConferenceModel.cpp +++ b/linphone-desktop/src/components/conference/ConferenceModel.cpp @@ -24,6 +24,7 @@ #include "../../Utils.hpp" #include "../core/CoreManager.hpp" +#include "ConferenceHelperModel.hpp" #include "ConferenceModel.hpp" @@ -57,6 +58,18 @@ QVariant ConferenceModel::data (const QModelIndex &index, int role) const { // ----------------------------------------------------------------------------- +void ConferenceModel::terminate () { + shared_ptr core = CoreManager::getInstance()->getCore(); + core->terminateConference(); + + for (const auto &call : core->getCalls()) { + if (call->getParams()->getLocalConferenceMode()) + call->terminate(); + } +} + +// ----------------------------------------------------------------------------- + void ConferenceModel::startRecording () { if (mRecording) return; diff --git a/linphone-desktop/src/components/conference/ConferenceModel.hpp b/linphone-desktop/src/components/conference/ConferenceModel.hpp index ab06e3bd1..79568a9be 100644 --- a/linphone-desktop/src/components/conference/ConferenceModel.hpp +++ b/linphone-desktop/src/components/conference/ConferenceModel.hpp @@ -43,6 +43,8 @@ public: QHash roleNames () const override; QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const override; + Q_INVOKABLE void terminate (); + Q_INVOKABLE void startRecording (); Q_INVOKABLE void stopRecording (); diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.js b/linphone-desktop/ui/views/App/Calls/CallsWindow.js index dc59eb6e1..7098f40e1 100644 --- a/linphone-desktop/ui/views/App/Calls/CallsWindow.js +++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.js @@ -12,12 +12,15 @@ var forceClose = false function handleClosing (close) { var callsList = Linphone.CallsListModel + + window.detachVirtualWindow() + if (forceClose || callsList.getRunningCallsNumber() === 0) { + forceClose = false callsList.terminateAllCalls() return } - window.detachVirtualWindow() window.attachVirtualWindow(Utils.buildDialogUri('ConfirmDialog'), { descriptionText: qsTr('acceptClosingDescription'), }, function (status) { diff --git a/linphone-desktop/ui/views/App/Calls/Conference.qml b/linphone-desktop/ui/views/App/Calls/Conference.qml index 22e5b55fc..ebb1de707 100644 --- a/linphone-desktop/ui/views/App/Calls/Conference.qml +++ b/linphone-desktop/ui/views/App/Calls/Conference.qml @@ -1,5 +1,4 @@ import QtQuick 2.7 -import QtQuick.Controls 2.1 import QtQuick.Layouts 1.3 import Common 1.0 @@ -9,8 +8,6 @@ import Utils 1.0 import App.Styles 1.0 -//import 'Conference.js' as Logic - // ============================================================================= Rectangle { @@ -192,19 +189,6 @@ Rectangle { } iconSize: CallStyle.actionArea.iconSize - ActionSwitch { - enabled: !conference.pausedByUser - icon: 'pause' - updating: conference.updating - - onClicked: conference.pausedByUser = enabled - - TooltipArea { - text: qsTr('pendingRequestLabel') - visible: parent.updating - } - } - ActionButton { icon: 'hangup' diff --git a/submodules/linphone b/submodules/linphone index ef9a19def..87ca1adf5 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit ef9a19def1bb0ac28af4f1963a248959e46dee97 +Subproject commit 87ca1adf5ef967bb3876ea0c060cb9135f36718d