Ejemplo n.º 1
0
BuddyContactModel::BuddyContactModel(Buddy buddy, QObject *parent) :
		QAbstractListModel(parent), SourceBuddy(buddy), IncludeIdentityInDisplay(false)
{
	connect(SourceBuddy, SIGNAL(contactAboutToBeAdded(Contact)),
			this, SLOT(contactAboutToBeAdded(Contact)), Qt::DirectConnection);
	connect(SourceBuddy, SIGNAL(contactAdded(Contact)),
			this, SLOT(contactAdded(Contact)), Qt::DirectConnection);
	connect(SourceBuddy, SIGNAL(contactAboutToBeRemoved(Contact)),
			this, SLOT(contactAboutToBeRemoved(Contact)), Qt::DirectConnection);
	connect(SourceBuddy, SIGNAL(contactRemoved(Contact)),
			this, SLOT(contactRemoved(Contact)), Qt::DirectConnection);
}
Ejemplo n.º 2
0
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();
}