From 6b6ee5ff82bcf748e5394e2cfcfb2e38b3900498 Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage <emmanuel.lepage@savoirfairelinux.com> Date: Fri, 16 Dec 2011 11:48:05 -0500 Subject: [PATCH] [ #7901 ] Partial rewrite of the drag and drop event, does not really work --- src/Call.h | 2 +- src/CallModel.h | 14 ++++++++------ src/CallModel.hpp | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/Call.h b/src/Call.h index 76f31180..8e475dbc 100644 --- a/src/Call.h +++ b/src/Call.h @@ -162,7 +162,7 @@ public: void setTransferNumber(const QString& number); void setCallNumber(const QString& number); - //Mutotors + //Mutators void appendText(const QString& str); void backspaceItemText(); void changeCurrentState(call_state newState); diff --git a/src/CallModel.h b/src/CallModel.h index 44f76fd3..608af376 100644 --- a/src/CallModel.h +++ b/src/CallModel.h @@ -101,12 +101,14 @@ class LIB_EXPORT CallModel : public CallModelBase { virtual void initContact ( ContactBackend* be ); //Call related - virtual Call* addCall ( Call* call , Call* parent =0 ); - Call* addDialingCall ( const QString& peerName="", QString account="" ); - Call* addIncomingCall ( const QString& callId ); - Call* addRingingCall ( const QString& callId ); - static QString generateCallId ( ); - void removeCall ( Call* call ); + virtual Call* addCall ( Call* call , Call* parent =0 ); + Call* addDialingCall ( const QString& peerName="", QString account="" ); + Call* addIncomingCall ( const QString& callId ); + Call* addRingingCall ( const QString& callId ); + static QString generateCallId ( ); + void removeCall ( Call* call ); + void attendedTransfer ( Call* toTransfer , Call* target ); + void transfer ( Call* toTransfer , QString target ); virtual bool selectItem(Call* item) { Q_UNUSED(item); return false;} diff --git a/src/CallModel.hpp b/src/CallModel.hpp index 11e51f83..f7dd95f0 100644 --- a/src/CallModel.hpp +++ b/src/CallModel.hpp @@ -263,6 +263,25 @@ template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>:: } } +///Transfer "toTransfer" to "target" and wait to see it it succeeded +template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::attendedTransfer(Call* toTransfer, Call* target) +{ + CallManagerInterface& callManager = CallManagerInterfaceSingleton::getInstance(); + callManager.attendedTransfer(toTransfer->getCallId(),target->getCallId()); + + //TODO [Daemon] Implement this correctly + toTransfer->changeCurrentState(CALL_STATE_OVER); + target->changeCurrentState(CALL_STATE_OVER); +} + +///Transfer this call to "target" number +template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::transfer(Call* toTransfer, QString target) +{ + qDebug() << "Transferring call " << target; + toTransfer->setTransferNumber(target); + toTransfer->actionPerformed(CALL_ACTION_ACCEPT); + toTransfer->changeCurrentState(CALL_STATE_OVER); +} /***************************************************************************** * * -- GitLab