Skip to content
Snippets Groups Projects
Commit c956c7d2 authored by Guillaume Roguez's avatar Guillaume Roguez Committed by Adrien Béraud
Browse files

connect to daemon ContactAdded signal

Daemon ContactAdded signal is used to add/update contact information
like if it "trusted" by user or by peer (i.e. 'confirmed' property).
Create new Contact method using this signal and add it
to account daemon contacts list.

Change-Id: I76a3fdd9b92380c16e205ca437e25d977f0b1c11
parent b474cc62
No related branches found
No related tags found
No related merge requests found
...@@ -708,7 +708,7 @@ bool Account::needsMigration() const ...@@ -708,7 +708,7 @@ bool Account::needsMigration() const
* return all ContactsMethod from @this account * return all ContactsMethod from @this account
* @return Account::ContactMethods a.k.a. QVector<ContactMethod*> * @return Account::ContactMethods a.k.a. QVector<ContactMethod*>
*/ */
const Account::ContactMethods& Account::ContactMethods&
Account::getContacts() const Account::getContacts() const
{ {
return d_ptr->m_NumbersFromDaemon; return d_ptr->m_NumbersFromDaemon;
......
...@@ -473,7 +473,7 @@ class LIB_EXPORT Account : public ItemBase { ...@@ -473,7 +473,7 @@ class LIB_EXPORT Account : public ItemBase {
uint trimesterCallCount () const; uint trimesterCallCount () const;
time_t lastUsed () const; time_t lastUsed () const;
const ContactMethods& getContacts () const; ContactMethods& getContacts () const;
Q_INVOKABLE QVariant roleData ( int role ) const; Q_INVOKABLE QVariant roleData ( int role ) const;
Q_INVOKABLE bool supportScheme ( URI::SchemeType type ) const; Q_INVOKABLE bool supportScheme ( URI::SchemeType type ) const;
......
...@@ -54,6 +54,7 @@ ...@@ -54,6 +54,7 @@
#include "private/vcardutils.h" #include "private/vcardutils.h"
#include "phonedirectorymodel.h" #include "phonedirectorymodel.h"
#include "bannedcontactmodel.h" #include "bannedcontactmodel.h"
#include "contactmethod.h"
QHash<QByteArray,AccountPlaceHolder*> AccountModelPrivate::m_hsPlaceHolder; QHash<QByteArray,AccountPlaceHolder*> AccountModelPrivate::m_hsPlaceHolder;
...@@ -97,6 +98,8 @@ void AccountModelPrivate::init() ...@@ -97,6 +98,8 @@ void AccountModelPrivate::init()
&AccountModelPrivate::slotExportOnRingEnded, Qt::QueuedConnection); &AccountModelPrivate::slotExportOnRingEnded, Qt::QueuedConnection);
connect(&configurationManager, &ConfigurationManagerInterface::migrationEnded, this, connect(&configurationManager, &ConfigurationManagerInterface::migrationEnded, this,
&AccountModelPrivate::slotMigrationEnded, Qt::QueuedConnection); &AccountModelPrivate::slotMigrationEnded, Qt::QueuedConnection);
connect(&configurationManager, &ConfigurationManagerInterface::contactAdded, this,
&AccountModelPrivate::slotContactAdded, Qt::QueuedConnection);
connect(&configurationManager, &ConfigurationManagerInterface::contactRemoved, this, connect(&configurationManager, &ConfigurationManagerInterface::contactRemoved, this,
&AccountModelPrivate::slotContactRemoved, Qt::QueuedConnection); &AccountModelPrivate::slotContactRemoved, Qt::QueuedConnection);
} }
...@@ -308,7 +311,7 @@ QList<Account*> AccountModel::accountsToMigrate() const ...@@ -308,7 +311,7 @@ QList<Account*> AccountModel::accountsToMigrate() const
/** /**
* returns a vector of contacts from the daemon * returns a vector of contacts from the daemon
* @param account the account to query * @param account the account to query
* @return contacts a QVector<QMap<QString, QString>>, keywords : "id" and "added" * @return contacts a QVector<QMap<QString, QString>>
*/ */
QVector<QMap<QString, QString>> QVector<QMap<QString, QString>>
AccountModel::getContacts(const Account* account) const AccountModel::getContacts(const Account* account) const
...@@ -532,6 +535,21 @@ AccountModelPrivate::slotMigrationEnded(const QString& accountId, const QString& ...@@ -532,6 +535,21 @@ AccountModelPrivate::slotMigrationEnded(const QString& accountId, const QString&
emit a->migrationEnded(status); emit a->migrationEnded(status);
} }
/// slot function used with ConfigurationManagerInterface::contactAdded signal
void
AccountModelPrivate::slotContactAdded(const QString &accountID, const QString &uri, bool confirmed)
{
if (auto account = q_ptr->getById(accountID.toLatin1())) {
if (auto cm = PhoneDirectoryModel::instance().getNumber(uri, account)) {
cm->setConfirmed(confirmed);
auto& daemon_contacts = account->getContacts();
if (not daemon_contacts.contains(cm))
daemon_contacts << cm;
}
}
}
/** /**
* slot function used with ConfigurationManagerInterface::contactRemoved signal * slot function used with ConfigurationManagerInterface::contactRemoved signal
*/ */
......
...@@ -75,5 +75,6 @@ public Q_SLOTS: ...@@ -75,5 +75,6 @@ public Q_SLOTS:
void slotKownDevicesChanged(const QString& accountId, const MapStringString& devices); void slotKownDevicesChanged(const QString& accountId, const MapStringString& devices);
void slotExportOnRingEnded(const QString& accountId, int status, const QString& pin); void slotExportOnRingEnded(const QString& accountId, int status, const QString& pin);
void slotMigrationEnded(const QString& accountId, const QString& result); void slotMigrationEnded(const QString& accountId, const QString& result);
void slotContactAdded(const QString &accountID, const QString &uri, bool confirmed);
void slotContactRemoved(const QString &accountID, const QString &uri, bool banned); void slotContactRemoved(const QString &accountID, const QString &uri, bool banned);
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment