EntityPtr Entity::create(const Tp::ContactPtr & contact, EntityType type) { #if 0 // TODO how to go from Tp::ContactPtr to TpContact ? //TplEntity *entity = tpl_entity_new_from_tp_contact(0, (TplEntityType) type); return EntityPtr::wrap(entity, false); #else QString id = contact->id(); QString alias = contact->alias(); QString avatarToken = contact->avatarToken(); return Entity::create(id.toUtf8(), type, alias.toUtf8(), avatarToken.toUtf8()); #endif }
Contact::Contact(Tp::ContactPtr tp_contact): tp_contact_(tp_contact) { if (tp_contact.isNull()) return; id_ = tp_contact->id(); name_ = tp_contact->alias(); QString avatar = tp_contact->avatarToken(); // todo: use this information connect(tp_contact_.data(), SIGNAL( simplePresenceChanged(const QString &, uint, const QString &) ), SLOT( OnSimplePresenceChanged(const QString &, uint, const QString &) )); connect(tp_contact_.data(), SIGNAL( subscriptionStateChanged(Tp::Contact::PresenceState) ), SLOT( OnContactChanged() )); connect(tp_contact_.data(), SIGNAL( publishStateChanged(Tp::Contact::PresenceState) ), SLOT( OnContactChanged() )); connect(tp_contact_.data(), SIGNAL( blockStatusChanged(bool) ), SLOT( OnContactChanged()) ); }