diff --git a/src/Call.h b/src/Call.h index 76f31180ab3dd5e484417c620b32d7f561197597..8e475dbcdfdcd9c665168835413d4b42fabd370f 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 44f76fd3ef8a7aa2b156330f7d46920bbc826c47..608af376d043a0d15c16ba95e663e4afe460ac99 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 11e51f83365c3e28ecc81f754890ba8df3b07321..f7dd95f067be69b528400af9cb6e1faaefd787c7 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); +} /***************************************************************************** * *