From a064407f533c843456935657550da9d17ea12c39 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Mon, 29 May 2017 16:04:36 +0200 Subject: [PATCH] feat(src/components/calls/CallsListModel): call transfer in progress --- linphone-desktop/src/components/call/CallModel.cpp | 4 ++-- linphone-desktop/src/components/call/CallModel.hpp | 2 +- .../src/components/calls/CallsListModel.cpp | 6 ++++++ .../src/components/calls/CallsListModel.hpp | 3 +++ linphone-desktop/ui/modules/Linphone/Calls/Calls.js | 12 ++++++------ linphone-desktop/ui/views/App/Calls/CallsWindow.js | 6 ++++++ linphone-desktop/ui/views/App/Calls/CallsWindow.qml | 9 +++++++++ 7 files changed, 33 insertions(+), 9 deletions(-) diff --git a/linphone-desktop/src/components/call/CallModel.cpp b/linphone-desktop/src/components/call/CallModel.cpp index d5f6fcdd7..a9937adb2 100644 --- a/linphone-desktop/src/components/call/CallModel.cpp +++ b/linphone-desktop/src/components/call/CallModel.cpp @@ -135,8 +135,8 @@ void CallModel::terminate () { core->unlockVideoRender(); } -void CallModel::transfer () { - // TODO +void CallModel::askForTransfer () { + CoreManager::getInstance()->getCallsListModel()->askForTransfer(this); } void CallModel::acceptVideoRequest () { diff --git a/linphone-desktop/src/components/call/CallModel.hpp b/linphone-desktop/src/components/call/CallModel.hpp index 957e39ae7..3e816a277 100644 --- a/linphone-desktop/src/components/call/CallModel.hpp +++ b/linphone-desktop/src/components/call/CallModel.hpp @@ -86,7 +86,7 @@ public: Q_INVOKABLE void accept (); Q_INVOKABLE void acceptWithVideo (); Q_INVOKABLE void terminate (); - Q_INVOKABLE void transfer (); + Q_INVOKABLE void askForTransfer (); Q_INVOKABLE void acceptVideoRequest (); Q_INVOKABLE void rejectVideoRequest (); diff --git a/linphone-desktop/src/components/calls/CallsListModel.cpp b/linphone-desktop/src/components/calls/CallsListModel.cpp index a8361c38e..79b0c0bb0 100644 --- a/linphone-desktop/src/components/calls/CallsListModel.cpp +++ b/linphone-desktop/src/components/calls/CallsListModel.cpp @@ -85,6 +85,12 @@ QVariant CallsListModel::data (const QModelIndex &index, int role) const { // ----------------------------------------------------------------------------- +void CallsListModel::askForTransfer (CallModel *callModel) { + emit callTransferAsked(callModel); +} + +// ----------------------------------------------------------------------------- + void CallsListModel::launchAudioCall (const QString &sipUri) const { shared_ptr core = CoreManager::getInstance()->getCore(); shared_ptr address = core->interpretUrl(::Utils::qStringToLinphoneString(sipUri)); diff --git a/linphone-desktop/src/components/calls/CallsListModel.hpp b/linphone-desktop/src/components/calls/CallsListModel.hpp index 3e390bfb7..4dbe29515 100644 --- a/linphone-desktop/src/components/calls/CallsListModel.hpp +++ b/linphone-desktop/src/components/calls/CallsListModel.hpp @@ -43,6 +43,8 @@ public: QHash roleNames () const override; QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const override; + void askForTransfer (CallModel *callModel); + Q_INVOKABLE void launchAudioCall (const QString &sipUri) const; Q_INVOKABLE void launchVideoCall (const QString &sipUri) const; @@ -52,6 +54,7 @@ public: signals: void callRunning (int index, CallModel *callModel); + void callTransferAsked (CallModel *callModel); private: bool removeRow (int row, const QModelIndex &parent = QModelIndex()); diff --git a/linphone-desktop/ui/modules/Linphone/Calls/Calls.js b/linphone-desktop/ui/modules/Linphone/Calls/Calls.js index 20ad161ca..e49858bf7 100644 --- a/linphone-desktop/ui/modules/Linphone/Calls/Calls.js +++ b/linphone-desktop/ui/modules/Linphone/Calls/Calls.js @@ -16,7 +16,7 @@ var MAP_STATUS_TO_PARAMS = (function () { handler: (function () { call.pausedByUser = true }), name: qsTr('pauseCall') }, { - handler: call.transfer, + handler: call.askForTransfer, name: qsTr('transferCall') }, { handler: call.terminate, @@ -40,10 +40,10 @@ var MAP_STATUS_TO_PARAMS = (function () { handler: (function () { call.accept() }) }, { name: qsTr('acceptVideoCall'), - handler: (function () { call.acceptWithVideo() }) + handler: call.acceptWithVideo }, { name: qsTr('terminateCall'), - handler: (function () { call.terminate() }) + handler: call.terminate }], component: callActions, string: 'incoming' @@ -53,7 +53,7 @@ var MAP_STATUS_TO_PARAMS = (function () { map[CallModel.CallStatusOutgoing] = (function (call) { return { component: callAction, - handler: (function () { call.terminate() }), + handler: call.terminate, icon: 'hangup', string: 'outgoing' } @@ -68,10 +68,10 @@ var MAP_STATUS_TO_PARAMS = (function () { handler: (function () { call.pausedByUser = true }), name: qsTr('pauseCall') }), { - handler: (function () { call.transfer() }), + handler: call.askForTransfer, name: qsTr('transferCall') }, { - handler: (function () { call.terminate() }), + handler: call.terminate, name: qsTr('terminateCall') }], component: callActions, diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.js b/linphone-desktop/ui/views/App/Calls/CallsWindow.js index fc89ea3b6..879cee6a4 100644 --- a/linphone-desktop/ui/views/App/Calls/CallsWindow.js +++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.js @@ -67,3 +67,9 @@ function getContent () { return incall } + +// ----------------------------------------------------------------------------- + +function handleCallTransferAsked (call) { + console.log('TODO: handle call transfer') +} diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.qml b/linphone-desktop/ui/views/App/Calls/CallsWindow.qml index 831e76c22..fcb940e6c 100644 --- a/linphone-desktop/ui/views/App/Calls/CallsWindow.qml +++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.qml @@ -205,4 +205,13 @@ Window { } } } + + // --------------------------------------------------------------------------- + // Handle transfer. + // --------------------------------------------------------------------------- + + Connections { + target: CallsListModel + onCallTransferAsked: Logic.handleCallTransferAsked(callModel) + } }