From cc3b0c6344f19bb320835516d982fab85f98caa4 Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Date: Mon, 29 Jun 2015 14:28:47 -0400 Subject: [PATCH] account: Use the new daemon settings Refs #76374 Change-Id: I24832c3c5f899a48fa28446e5f1cc4bbe5bc9589 --- src/account.cpp | 62 +++++++++++++++++++++++++++++++++++++---- src/account.h | 8 +++++- src/accountmodel.cpp | 2 ++ src/private/account_p.h | 2 -- 4 files changed, 65 insertions(+), 9 deletions(-) diff --git a/src/account.cpp b/src/account.cpp index ca5f4ff9..eb4702a1 100644 --- a/src/account.cpp +++ b/src/account.cpp @@ -90,8 +90,7 @@ m_pStatusModel(nullptr),m_LastTransportCode(0),m_RegistrationState(Account::Regi m_UseDefaultPort(false),m_pProtocolModel(nullptr),m_pBootstrapModel(nullptr),m_RemoteEnabledState(false), m_HaveCalled(false),m_TotalCount(0),m_LastWeekCount(0),m_LastTrimCount(0),m_LastUsed(0),m_pKnownCertificates(nullptr), m_pBannedCertificates(nullptr), m_pAllowedCertificates(nullptr),m_InternalId(++p_sAutoIncrementId), -m_pNetworkInterfaceModel(nullptr),m_pAllowedCerts(nullptr),m_pBannedCerts(nullptr), m_AllowIncomingFromHistory(true), -m_AllowIncomingFromContact(true) +m_pNetworkInterfaceModel(nullptr),m_pAllowedCerts(nullptr),m_pBannedCerts(nullptr) { } @@ -948,12 +947,28 @@ bool Account::allowIncomingFromUnknown() const bool Account::allowIncomingFromHistory() const { - return d_ptr->m_AllowIncomingFromHistory; + if (protocol() != Account::Protocol::RING) + return false; + + return d_ptr->accountDetail(DRing::Account::ConfProperties::ALLOW_CERT_FROM_HISTORY) IS_TRUE; } bool Account::allowIncomingFromContact() const { - return d_ptr->m_AllowIncomingFromContact; + if (protocol() != Account::Protocol::RING) + return false; + + return d_ptr->accountDetail(DRing::Account::ConfProperties::ALLOW_CERT_FROM_CONTACT) IS_TRUE; +} + +int Account::activeCallLimit() const +{ + return d_ptr->accountDetail(DRing::Account::ConfProperties::ACTIVE_CALL_LIMIT).toInt(); +} + +bool Account::hasActiveCallLimit() const +{ + return activeCallLimit() > -1; } @@ -1143,6 +1158,10 @@ QVariant Account::roleData(int role) const return allowIncomingFromContact(); case CAST(Account::Role::AllowIncomingFromUnknown ): return allowIncomingFromUnknown(); + case CAST(Account::Role::ActiveCallLimit): + return activeCallLimit(); + case CAST(Account::Role::HasActiveCallLimit): + return hasActiveCallLimit(); default: return QVariant(); } @@ -1185,11 +1204,17 @@ bool Account::supportScheme( URI::SchemeType type ) bool Account::allowCertificate(Certificate* c) { + if (protocol() != Account::Protocol::RING) + return false; + return CertificateModel::instance()->d_ptr->allowCertificate(c, this); } bool Account::banCertificate(Certificate* c) { + if (protocol() != Account::Protocol::RING) + return false; + return CertificateModel::instance()->d_ptr->banCertificate(c, this); } @@ -1687,16 +1712,35 @@ void Account::setAllowIncomingFromUnknown(bool value) void Account::setAllowIncomingFromHistory(bool value) { - d_ptr->m_AllowIncomingFromHistory = value; + if (protocol() != Account::Protocol::RING) + return; + + d_ptr->setAccountProperty(DRing::Account::ConfProperties::ALLOW_CERT_FROM_HISTORY, value TO_BOOL); performAction(Account::EditAction::MODIFY); } void Account::setAllowIncomingFromContact(bool value) { - d_ptr->m_AllowIncomingFromContact = value; + if (protocol() != Account::Protocol::RING) + return; + + d_ptr->setAccountProperty(DRing::Account::ConfProperties::ALLOW_CERT_FROM_CONTACT, value TO_BOOL); performAction(Account::EditAction::MODIFY); } +void Account::setActiveCallLimit(int value ) +{ + d_ptr->setAccountProperty(DRing::Account::ConfProperties::ACTIVE_CALL_LIMIT, QString::number(value)); +} + +void Account::setHasActiveCallLimit(bool value ) +{ + if ((!value) && activeCallLimit() != -1) + return; + + setActiveCallLimit(value?1:-1); +} + ///Set the DTMF type void Account::setDTMFType(DtmfType type) { @@ -1899,6 +1943,12 @@ void Account::setRoleData(int role, const QVariant& value) case CAST(Account::Role::AllowIncomingFromUnknown ): setAllowIncomingFromUnknown(value.toBool()); break; + case CAST(Account::Role::ActiveCallLimit): + return setActiveCallLimit(value.toInt()); + break; + case CAST(Account::Role::HasActiveCallLimit): + return setHasActiveCallLimit(value.toBool()); + break; } } #undef CAST diff --git a/src/account.h b/src/account.h index aa354676..d9abfe89 100644 --- a/src/account.h +++ b/src/account.h @@ -287,7 +287,9 @@ class LIB_EXPORT Account : public QObject { AllowedCertificatesModel = 186, AllowIncomingFromHistory = 187, AllowIncomingFromContact = 188, - AllowIncomingFromUnknown = 189 + AllowIncomingFromUnknown = 189, + ActiveCallLimit = 190, + HasActiveCallLimit = 191 }; ///@enum RoleState Whether a role can be used in a certain context @@ -412,6 +414,8 @@ class LIB_EXPORT Account : public QObject { bool allowIncomingFromUnknown () const; bool allowIncomingFromHistory () const; bool allowIncomingFromContact () const; + int activeCallLimit () const; + bool hasActiveCallLimit () const; bool isUsedForOutgogingCall () const; uint totalCallCount () const; @@ -472,6 +476,7 @@ class LIB_EXPORT Account : public QObject { void setAudioPortMin (int port ); void setVideoPortMax (int port ); void setVideoPortMin (int port ); + void setActiveCallLimit (int value ); void setDTMFType (DtmfType type); void setUserAgent (const QString& agent); void setUpnpEnabled (bool enable); @@ -481,6 +486,7 @@ class LIB_EXPORT Account : public QObject { void setAllowIncomingFromHistory (bool value ); void setAllowIncomingFromContact (bool value ); void setAllowIncomingFromUnknown (bool value ); + void setHasActiveCallLimit (bool value ); void setRoleData(int role, const QVariant& value); diff --git a/src/accountmodel.cpp b/src/accountmodel.cpp index 605b2ab8..f141afd0 100644 --- a/src/accountmodel.cpp +++ b/src/accountmodel.cpp @@ -184,6 +184,8 @@ QHash<int,QByteArray> AccountModel::roleNames() const roles.insert(CAST(Account::Role::AllowIncomingFromHistory ) ,QByteArray("allowIncomingFromHistory" )); roles.insert(CAST(Account::Role::AllowIncomingFromContact ) ,QByteArray("allowIncomingFromContact" )); roles.insert(CAST(Account::Role::AllowIncomingFromUnknown ) ,QByteArray("allowIncomingFromUnknown" )); + roles.insert(CAST(Account::Role::ActiveCallLimit ) ,QByteArray("activeCallLimit" )); + roles.insert(CAST(Account::Role::HasActiveCallLimit ) ,QByteArray("hasActiveCallLimit" )); } return roles; } diff --git a/src/private/account_p.h b/src/private/account_p.h index 8c2b278b..f8a363ae 100644 --- a/src/private/account_p.h +++ b/src/private/account_p.h @@ -136,8 +136,6 @@ public: DaemonCertificateCollection* m_pAllowedCerts ; DaemonCertificateCollection* m_pBannedCerts ; Account::EditState m_CurrentState ; - bool m_AllowIncomingFromHistory; - bool m_AllowIncomingFromContact; QHash<int, Account::RoleStatus> m_hRoleStatus; -- GitLab