void ContactManager::removeContact(Contact contact) { kdebugf(); if (contact.isNull()) return; ensureLoaded(); if (!Contacts.contains(contact)) return; disconnect(contact.data(), SIGNAL(updated()), this, SLOT(contactDataUpdated())); disconnect(contact.data(), SIGNAL(accountDataAboutToBeAdded(Account *)), this, SLOT(contactAccountDataAboutToBeAdded(Account *))); disconnect(contact.data(), SIGNAL(accountDataAdded(Account *)), this, SLOT(contactAccountDataAdded(Account *))); disconnect(contact.data(), SIGNAL(accountDataAboutToBeRemoved(Account *)), this, SLOT(contactAccountDataAboutToBeRemoved(Account *))); disconnect(contact.data(), SIGNAL(accountDataRemoved(Account *)), this, SLOT(contactAccountDataRemoved(Account *))); disconnect(contact.data(), SIGNAL(accountDataIdChanged(Account *, const QString &)), this, SLOT(contactAccountDataIdChanged(Account *, const QString &))); emit contactAboutToBeRemoved(contact); if (ContactRemovePredicateObject::inquireAll(contact)) { Contacts.removeAll(contact); contact.removeFromStorage(); } emit contactRemoved(contact); contact.setType(ContactData::TypeAnonymous); kdebugf(); }
void ContactManager::addContact(Contact contact) { if (contact.isNull()) return; ensureLoaded(); if (Contacts.contains(contact)) { contact.setType(ContactData::TypeNormal); return; } emit contactAboutToBeAdded(contact); Contacts.append(contact); emit contactAdded(contact); connect(contact.data(), SIGNAL(updated()), this, SLOT(contactDataUpdated())); connect(contact.data(), SIGNAL(accountDataAboutToBeAdded(Account *)), this, SLOT(contactAccountDataAboutToBeAdded(Account *))); connect(contact.data(), SIGNAL(accountDataAdded(Account *)), this, SLOT(contactAccountDataAdded(Account *))); connect(contact.data(), SIGNAL(accountDataAboutToBeRemoved(Account *)), this, SLOT(contactAccountDataAboutToBeRemoved(Account *))); connect(contact.data(), SIGNAL(accountDataRemoved(Account *)), this, SLOT(contactAccountDataRemoved(Account *))); connect(contact.data(), SIGNAL(accountDataIdChanged(Account *, const QString &)), this, SLOT(contactAccountDataIdChanged(Account *, const QString &))); }
void ContactManager::unblockUpdatedSignal(Contact &contact) { contact.data()->unblockUpdatedSignal(); }