From 012a2b172c6815476b940f34fa0bba2b34947770 Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Date: Mon, 27 Apr 2015 17:09:45 -0400 Subject: [PATCH] call: Add 'connected' state Refs #71781 --- src/call.cpp | 14 +++++++++++++- src/call.h | 1 + src/callmodel.cpp | 1 + src/certificate.cpp | 12 +++++++++--- src/certificatemodel.cpp | 6 +++--- src/private/certificatemodel_p.h | 2 ++ src/securityevaluationmodel.cpp | 2 +- 7 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/call.cpp b/src/call.cpp index 09d977ae..49432e5f 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -93,6 +93,7 @@ const TypedStateMachine< TypedStateMachine< Call::State , Call::Action> , Call:: /*CONF_HOLD */ {{Call::State::ERROR , Call::State::HOLD , Call::State::TRANSF_HOLD , Call::State::HOLD , Call::State::HOLD }},/**/ /*INIT */ {{Call::State::INITIALIZATION, Call::State::OVER , Call::State::ERROR , Call::State::ERROR , Call::State::ERROR }},/**/ /*ABORTED */ {{Call::State::ERROR , Call::State::ERROR , Call::State::ERROR , Call::State::ERROR , Call::State::ERROR }},/**/ +/*CONNECTED */ {{Call::State::ERROR , Call::State::OVER , Call::State::ERROR , Call::State::ERROR , Call::State::ERROR }},/**/ }};// */ #define CP &CallPrivate @@ -114,7 +115,8 @@ const TypedStateMachine< TypedStateMachine< function , Call::Action > , Call::St /*CONF */ {{CP::nothing , CP::hangUp , CP::nothing , CP::hold , CP::toggleRecord }},/**/ /*CONF_HOLD */ {{CP::nothing , CP::hangUp , CP::nothing , CP::unhold , CP::toggleRecord }},/**/ /*INITIALIZATION */ {{CP::call , CP::cancel , CP::nothing , CP::nothing , CP::nothing }},/**/ -/*ABORTED */ {{CP::call , CP::cancel , CP::nothing , CP::nothing , CP::nothing }},/**/ +/*ABORTED */ {{CP::nothing , CP::cancel , CP::nothing , CP::nothing , CP::nothing }},/**/ +/*CONNECTED */ {{CP::nothing , CP::cancel , CP::nothing , CP::nothing , CP::nothing }},/**/ }};// */ @@ -137,6 +139,7 @@ const TypedStateMachine< TypedStateMachine< Call::State , CallPrivate::DaemonSta /*CONF_HOLD */ {{Call::State::HOLD , Call::State::CURRENT , Call::State::BUSY , Call::State::HOLD , Call::State::OVER , Call::State::FAILURE }},/**/ /*INIT */ {{Call::State::RINGING , Call::State::CURRENT , Call::State::BUSY , Call::State::HOLD , Call::State::OVER , Call::State::FAILURE }},/**/ /*ABORTED */ {{Call::State::ERROR , Call::State::ERROR , Call::State::ERROR , Call::State::ERROR , Call::State::ERROR , Call::State::ERROR }},/**/ +/*CONNECTED */ {{Call::State::RINGING , Call::State::CURRENT , Call::State::BUSY , Call::State::HOLD , Call::State::OVER , Call::State::FAILURE }},/**/ }};// */ const TypedStateMachine< TypedStateMachine< function , CallPrivate::DaemonState > , Call::State > CallPrivate::stateChangedFunctionMap = @@ -158,6 +161,7 @@ const TypedStateMachine< TypedStateMachine< function , CallPrivate::DaemonState /*CONF_HOLD */ {{CP::nothing , CP::nothing , CP::warning , CP::nothing , CP::stop , CP::nothing }},/**/ /*INIT */ {{CP::nothing , CP::warning , CP::warning , CP::warning , CP::stop , CP::warning }},/**/ /*ABORTED */ {{CP::error , CP::error , CP::error , CP::error , CP::error , CP::error }},/**/ +/*CONNECTED */ {{CP::nothing , CP::warning , CP::warning , CP::warning , CP::stop , CP::warning }},/**/ }};// */ #undef CP @@ -180,6 +184,7 @@ const TypedStateMachine< Call::LifeCycleState , Call::State > CallPrivate::metaS /*CONF_HOLD */ Call::LifeCycleState::PROGRESS ,/**/ /*INIT */ Call::LifeCycleState::INITIALIZATION ,/**/ /*ABORTED */ Call::LifeCycleState::FINISHED ,/**/ +/*CONNECTED */ Call::LifeCycleState::INITIALIZATION ,/**/ }};/* **/ const TypedStateMachine< TypedStateMachine< bool , Call::LifeCycleState > , Call::State > CallPrivate::metaStateTransitionValidationMap = @@ -201,6 +206,7 @@ const TypedStateMachine< TypedStateMachine< bool , Call::LifeCycleState > , Call /*CONF_HOLD */ {{ false , true , false , false }},/**/ /*INIT */ {{ true , true , false , false }},/**/ /*ABORTED */ {{ true , true , false , false }},/**/ +/*INITIALIZATION */ {{ true , true , false , false }},/**/ }};/* **/ /*^^ A call _can_ be created on hold (conference) and as over (peer hang up before pickup) the progress->failure one is an implementation bug*/ @@ -636,6 +642,8 @@ const QString Call::toHumanStateName(const Call::State cur) return tr( "Initialization" ); case Call::State::ABORTED: return tr( "Initialization" ); + case Call::State::CONNECTED: + return tr( "Connected" ); default: return QString::number(static_cast<int>(cur)); } @@ -1515,6 +1523,7 @@ void CallPrivate::warning() case Call::State::BUSY : case Call::State::OVER : case Call::State::ABORTED : + case Call::State::CONNECTED : case Call::State::CONFERENCE : case Call::State::CONFERENCE_HOLD: default: @@ -1548,6 +1557,7 @@ void Call::appendText(const QString& str) } break; case Call::State::INITIALIZATION: + case Call::State::CONNECTED: case Call::State::INCOMING: case Call::State::RINGING: case Call::State::CURRENT: @@ -1600,6 +1610,7 @@ void Call::backspaceItemText() } break; case Call::State::INITIALIZATION: + case Call::State::CONNECTED: case Call::State::INCOMING: case Call::State::RINGING: case Call::State::CURRENT: @@ -1648,6 +1659,7 @@ void Call::reset() d_ptr->changeCurrentState( Call::State::NEW ); break; case Call::State::INITIALIZATION : + case Call::State::CONNECTED : case Call::State::INCOMING : case Call::State::RINGING : case Call::State::CURRENT : diff --git a/src/call.h b/src/call.h index 0c054034..75311826 100644 --- a/src/call.h +++ b/src/call.h @@ -142,6 +142,7 @@ public: CONFERENCE_HOLD = 13,/*!< This call is a conference on hold */ INITIALIZATION = 14,/*!< The call have been placed, but the peer hasn't confirmed yet */ ABORTED = 15,/*!< The call was dropped before being sent to the daemon */ + CONNECTED = 16,/*!< The peer has been found, attempting negotiation */ COUNT__, }; Q_ENUMS(State) diff --git a/src/callmodel.cpp b/src/callmodel.cpp index 1fe531ba..5bad310f 100644 --- a/src/callmodel.cpp +++ b/src/callmodel.cpp @@ -1227,6 +1227,7 @@ void CallModelPrivate::slotCallChanged(Call* call) case Call::State::INCOMING: case Call::State::RINGING: case Call::State::INITIALIZATION: + case Call::State::CONNECTED: case Call::State::CURRENT: case Call::State::DIALING: case Call::State::NEW: diff --git a/src/certificate.cpp b/src/certificate.cpp index 7e97eb8c..8f036e58 100644 --- a/src/certificate.cpp +++ b/src/certificate.cpp @@ -329,20 +329,26 @@ void CertificatePrivate::loadChecks() } } -Certificate::Certificate(const QUrl& path, Type type, const QUrl& privateKey) : ItemBase<QObject>(CertificateModel::instance()),d_ptr(new CertificatePrivate(LoadingType::FROM_PATH)) +Certificate::Certificate(const QUrl& path, Type type, const QUrl& privateKey) : ItemBase<QObject>(nullptr),d_ptr(new CertificatePrivate(LoadingType::FROM_PATH)) { Q_UNUSED(privateKey) + moveToThread(CertificateModel::instance()->thread()); + setParent(CertificateModel::instance()); d_ptr->m_Path = path.path(); d_ptr->m_Type = type; } -Certificate::Certificate(const QString& id) : ItemBase<QObject>(CertificateModel::instance()),d_ptr(new CertificatePrivate(LoadingType::FROM_ID)) +Certificate::Certificate(const QString& id) : ItemBase<QObject>(nullptr),d_ptr(new CertificatePrivate(LoadingType::FROM_ID)) { + moveToThread(CertificateModel::instance()->thread()); + setParent(CertificateModel::instance()); d_ptr->m_Id = id.toLatin1(); } -Certificate::Certificate(const QByteArray& content, Type type): ItemBase<QObject>(CertificateModel::instance()),d_ptr(new CertificatePrivate(LoadingType::FROM_CONTENT)) +Certificate::Certificate(const QByteArray& content, Type type): ItemBase<QObject>(nullptr),d_ptr(new CertificatePrivate(LoadingType::FROM_CONTENT)) { + moveToThread(CertificateModel::instance()->thread()); + setParent(CertificateModel::instance()); d_ptr->m_Content = content; d_ptr->m_Type = type; } diff --git a/src/certificatemodel.cpp b/src/certificatemodel.cpp index 763d78f4..9474080e 100644 --- a/src/certificatemodel.cpp +++ b/src/certificatemodel.cpp @@ -132,8 +132,8 @@ CertificateModel::CertificateModel(QObject* parent) : QAbstractItemModel(parent) ); //Load the daemon certificate store - DaemonCertificateCollection* dcol = addCollection<DaemonCertificateCollection>(); - dcol->load(); + d_ptr->m_pDaemonCertificateStore = addCollection<DaemonCertificateCollection>(); + d_ptr->m_pDaemonCertificateStore->load(); m_pFallbackCollection->load(); } @@ -517,7 +517,7 @@ Certificate* CertificateModel::getCertificateFromContent(const QByteArray& rawCo if (save) { //TODO this shouldn't be necessary - static_cast< ItemBase<QObject>* >(cert)->save(); +// static_cast< ItemBase<QObject>* >(cert)->save(); /*const QUrl path = CertificateSerializationDelegate::instance()->saveCertificate(id,rawContent); cert->setPath(path);*/ } diff --git a/src/private/certificatemodel_p.h b/src/private/certificatemodel_p.h index beac98d4..c940a02f 100644 --- a/src/private/certificatemodel_p.h +++ b/src/private/certificatemodel_p.h @@ -23,6 +23,7 @@ struct CertificateNode; class Account; class Certificate; +class DaemonCertificateCollection; class CertificateModelPrivate { @@ -47,6 +48,7 @@ public: QHash<const Account*,CertificateNode*> m_hAccToCat ; QHash<const QString&,CertificateNode*> m_hStrToCat ; QHash<const Certificate*,CertificateNode*> m_hNodes ; + DaemonCertificateCollection* m_pDaemonCertificateStore; static const Matrix1D<Certificate::Status, const char*> m_StatusMap; //Getters diff --git a/src/securityevaluationmodel.cpp b/src/securityevaluationmodel.cpp index 407c8b52..34ed60cd 100644 --- a/src/securityevaluationmodel.cpp +++ b/src/securityevaluationmodel.cpp @@ -252,7 +252,7 @@ constexpr const short CombinaisonProxyModel::sizes[]; ///Create a callback map for signals to avoid a large switch(){} in the code static const Matrix1D<SecurityEvaluationModel::Severity, void(SecurityEvaluationModel::*)()> m_lSignalMap = {{ - /* UNSUPPORTED */ nullptr , + /* UNSUPPORTED */ nullptr , /* INFORMATION */ &SecurityEvaluationModel::informationCountChanged , /* WARN1NG */ &SecurityEvaluationModel::warningCountChanged , /* ISSUE */ &SecurityEvaluationModel::issueCountChanged , -- GitLab