Home · All Classes · All Namespaces · Modules · Functions · Files
Classes | Public Types | Signals | Public Member Functions | Static Public Attributes | Protected Member Functions
Tp::Contact Class Reference

The Contact class represents a Telepathy contact. More...

#include <TelepathyQt4/Contact>

Inherits Tp::Object.

List of all members.

Classes

Public Types

Signals

Public Member Functions

Static Public Attributes

Protected Member Functions


Detailed Description

The Contact class represents a Telepathy contact.

The accessor functions on this object (id(), alias(), and so on) don't make any D-Bus calls; instead, they return/use values cached from a previous introspection run. The introspection process populates their values in the most efficient way possible based on what the service implements.

To avoid unnecessary D-Bus traffic, some accessors only return valid information after specific features have been enabled. For instance, to retrieve the contact avatar token, it is necessary to enable the feature Contact::FeatureAvatarToken. See the individual methods descriptions for more details.

Contact features can be enabled by constructing a ContactFactory and enabling the desired features, and passing it to AccountManager, Account or ClientRegistrar when creating them as appropriate. However, if a particular feature is only ever used in a specific circumstance, such as an user opening some settings dialog separate from the general view of the application, features can be later enabled as needed by calling ContactManager::upgradeContacts() with the additional features, and waiting for the resulting PendingOperation to finish.

As an addition to accessors, signals are emitted to indicate that properties have changed, for example aliasChanged(), avatarTokenChanged(), etc.


Member Enumeration Documentation

Enumerator:
PresenceStateNo 
PresenceStateAsk 
PresenceStateYes 

Constructor & Destructor Documentation

Tp::Contact::~Contact ( )

Class destructor.

Tp::Contact::Contact ( ContactManager manager,
const ReferencedHandles handle,
const Features requestedFeatures,
const QVariantMap &  attributes 
) [protected]

Construct a new Contact object.

Parameters:
managerContactManager owning this contact.
handleThe contact handle.
requestedFeaturesThe contact requested features.
attributesThe contact attributes.

Member Function Documentation

ContactManagerPtr Tp::Contact::manager ( ) const

Return the contact nanager owning this contact.

Returns:
The contact manager owning this contact.
ReferencedHandles Tp::Contact::handle ( ) const

Return the handle of this contact.

Returns:
The contact handle.
QString Tp::Contact::id ( ) const

Return the identifier of this contact.

Returns:
The contact identifier.
Features Tp::Contact::requestedFeatures ( ) const

Return the features requested on this contact.

Returns:
The contact requested features.
Features Tp::Contact::actualFeatures ( ) const

Return the features that are actually enabled on this contact.

Returns:
The contact requested enabled.
QString Tp::Contact::alias ( ) const

Return the alias of this contact.

Change notification is via the aliasChanged() signal.

This method requires Contact::FeatureAlias to be enabled.

Returns:
The contact alias.
bool Tp::Contact::isAvatarTokenKnown ( ) const

Return whether the avatar token of this contact is known.

This method requires Contact::FeatureAvatarToken to be enabled.

Returns:
Whether the avatar token of this contact is known.
See also:
avatarToken()
QString Tp::Contact::avatarToken ( ) const

Return the avatar token for this contact.

Change notification is via the avatarTokenChanged() signal.

This method requires Contact::FeatureAvatarToken to be enabled.

Returns:
The contact avatar token.
See also:
isAvatarTokenKnown(), avatarTokenChanged(), avatarData()
AvatarData Tp::Contact::avatarData ( ) const

Return the actual avatar for this contact.

Change notification is via the avatarDataChanged() signal.

This method requires Contact::FeatureAvatarData to be enabled.

Returns:
The contact avatar.
See also:
avatarDataChanged(), avatarToken()
void Tp::Contact::requestAvatarData ( )

Start a request to retrieve the avatar for this contact.

Force the request of the avatar data. This method returns directly, emitting avatarTokenChanged() and avatarDataChanged() signals once the token and data are fetched from the server.

This is only useful if the avatar token is unknown; see isAvatarTokenKnown(). It happens in the case of offline XMPP contacts, because the server does not send the token for them and an explicit request of the avatar data is needed.

This method requires Contact::FeatureAvatarData to be enabled.

See also:
avatarData(), avatarDataChanged(), avatarToken(), avatarTokenChanged()
Presence Tp::Contact::presence ( ) const

Return the actual presence of this contact.

Change notification is via the presenceChanged() signal.

This method requires Contact::FeatureSimplePresence to be enabled.

Returns:
The actual presence of this contact.
ContactCapabilities Tp::Contact::capabilities ( ) const

Return the capabilities for this contact.

User interfaces can use this information to show or hide UI components.

If ContactManager::supportedFeatures() contains Contact::FeatureCapabilities, the returned object will be a ContactCapabilities object, where CapabilitiesBase::isSpecificToContact() will be true; if that feature isn't present, this returned object is the subset of Contact::manager()::connection()::capabilities() and CapabilitiesBase::isSpecificToContact() will be false.

Change notification is via the capabilitiesChanged() signal.

This method requires Contact::FeatureCapabilities to be enabled.

Returns:
An object representing the contact capabilities.
LocationInfo Tp::Contact::location ( ) const

Return the location for this contact.

Change notification is via the locationUpdated() signal.

This method requires Contact::FeatureLocation to be enabled.

Returns:
An object representing the contact location which will return false for LocationInfo::isValid() if FeatureLocation is not ready.
bool Tp::Contact::isContactInfoKnown ( ) const

Return whether the info card for this contact has been received.

With some protocols (notably XMPP) information is not pushed from the server and must be requested explicitely using refreshInfo() or requestInfo(). This method can be used to know if the information is received from the server or if an explicit request is needed.

This method requires Contacat::FeatureInfo to be enabled.

Returns:
true if the information is known; false otherwise.
Contact::InfoFields Tp::Contact::infoFields ( ) const

Return the information for this contact.

Note that this method only return cached information. In order to refresh the information use refreshInfo().

Change notification is via the infoFieldsChanged() signal.

This method requires Contact::FeatureInfo to be enabled.

Returns:
An object representing the contact information.
PendingOperation * Tp::Contact::refreshInfo ( )

Refresh information for the given contact.

Once the information is retrieved infoFieldsChanged() will be emitted.

This method requires Contact::FeatureInfo to be enabled.

Returns:
A PendingOperation, which will emit PendingOperation::finished when the call has finished.
See also:
infoFieldsChanged()
PendingContactInfo * Tp::Contact::requestInfo ( )

Start a request to retrieve the information for this contact.

This method is useful for UIs that don't care about notification of changes in the contact information but want to show the contact information (e.g. right-click on a contact and show the contact info).

Returns:
A PendingContactInfo, which will emit PendingContactInfo::finished when the information has been retrieved or an error occurred.
bool Tp::Contact::isSubscriptionStateKnown ( ) const

Return whether the presence subscription state of this contact is known.

Returns:
Whether the presence subscription state of this contact is known.
See also:
subscriptionState(), isSubscriptionRejected()
bool Tp::Contact::isSubscriptionRejected ( ) const

Return whether a request to see this contact's presence was denied.

Returns:
Whether a request to see this contact's presence was denied.
See also:
isSubscriptionStateKnown(), subscriptionState()
Contact::PresenceState Tp::Contact::subscriptionState ( ) const

Return the presence subscription state of this contact (i.e. whether the local user can retrieve information about this contact's presence).

Returns:
The presence subscription state of this contact.
See also:
isSubscriptionStateKnown(), isSubscriptionRejected()
bool Tp::Contact::isPublishStateKnown ( ) const

Return whether the presence publish state of this contact is known.

Returns:
Whether the presence publish state of this contact is known.
See also:
publishState(), isPublishCancelled()
bool Tp::Contact::isPublishCancelled ( ) const

Return whether a request to publish presence information to this contact was cancelled.

Returns:
Whether a request to publish presence information to this contact was cancelled.
See also:
isPublishStateKnown(), publishState()
Contact::PresenceState Tp::Contact::publishState ( ) const

Return the presence publish state of this contact (i.e. whether this contact can retrieve information about the local user's presence).

Returns:
The presence publish state of this contact.
See also:
isSubscriptionStateKnown(), isSubscriptionRejected()
QString Tp::Contact::publishStateMessage ( ) const

If the publishState() is Contact::PresenceStateAsk, return an optional message that was sent by the contact asking to receive the local user's presence; omitted if none was given.

Returns:
The message that was sent by the contact asking to receive the local user's presence.
See also:
publishState()
PendingOperation * Tp::Contact::requestPresenceSubscription ( const QString message = QString())

Start a request that this contact allow the local user to subscribe to their presence (i.e. that this contact's subscribe attribute becomes Contact::PresenceStateYes)

Returns:
A PendingOperation which will emit PendingOperation::finished when the request has been made.
See also:
subscriptionState(), removePresenceSubscription()
PendingOperation * Tp::Contact::removePresenceSubscription ( const QString message = QString())

Start a request for the local user to stop receiving presence from this contact.

Returns:
A PendingOperation which will emit PendingOperation::finished when the request has been made.
See also:
subscriptionState(), requestPresenceSubscription()
PendingOperation * Tp::Contact::authorizePresencePublication ( const QString message = QString())

Start a request to authorize this contact's request to see the local user presence (i.e. that this contact publish attribute becomes Contact::PresenceStateYes).

Returns:
A PendingOperation which will emit PendingOperation::finished when the request has been made.
See also:
publishState(), removePresencePublication()
PendingOperation * Tp::Contact::removePresencePublication ( const QString message = QString())

Start a request for the local user to stop sending presence to this contact.

Returns:
A PendingOperation which will emit PendingOperation::finished when the request has been made.
See also:
publishState(), authorizePresencePublication()
bool Tp::Contact::isBlocked ( ) const

Return whether this contact is blocked.

Change notification is via the blockStatusChanged() signal.

Returns:
Whether this contact is blocked.
See also:
block()
PendingOperation * Tp::Contact::block ( bool  value)

Block or unblock this contact. Blocked contacts cannot send messages to the user; depending on the protocol, blocking a contact may have other effects.

Parameters:
valueIf true, add this contact to the list of blocked contacts; otherwise remove it from the list.
Returns:
A PendingOperation which will return when an attempt has been made to take the requested action.
See also:
isBlocked()
PendingOperation * Tp::Contact::block ( )

Block this contact. Blocked contacts cannot send messages to the user; depending on the protocol, blocking a contact may have other effects.

Returns:
A PendingOperation which will return when an attempt has been made to take the requested action.
See also:
blockAndReportAbuse(), unblock()
PendingOperation * Tp::Contact::blockAndReportAbuse ( )

Block this contact and additionally report abusive behaviour to the server.

If reporting abusive behaviour is not supported by the protocol, this method has the same effect as block().

Returns:
A PendingOperation which will return when an attempt has been made to take the requested action.
See also:
ContactManager::canReportAbuse(), block(), unblock()
PendingOperation * Tp::Contact::unblock ( )

Unblock this contact.

Returns:
A PendingOperation which will return when an attempt has been made to take the requested action.
See also:
block(), blockAndReportAbuse()
QStringList Tp::Contact::groups ( ) const

Return the names of the user-defined roster groups to which the contact belongs.

Change notification is via the addedToGroup() and removedFromGroup() signals.

This method requires Connection::FeatureRosterGroups to be enabled.

Returns:
List of user-defined contact list groups names for a given contact.
See also:
addToGroup(), removedFromGroup()
PendingOperation * Tp::Contact::addToGroup ( const QString group)

Attempt to add the contact to the user-defined contact list group named group.

This method requires Connection::FeatureRosterGroups to be enabled.

Parameters:
groupGroup name.
Returns:
A PendingOperation which will return when an attempt has been made to add the contact to the user-defined contact list group.
See also:
groups(), removeFromGroup()
PendingOperation * Tp::Contact::removeFromGroup ( const QString group)

Attempt to remove the contact from the user-defined contact list group named group.

This method requires Connection::FeatureRosterGroups to be enabled.

Parameters:
groupGroup name.
Returns:
A PendingOperation which will return when an attempt has been made to remove the contact from the user-defined contact list group.
See also:
groups(), addToGroup()
void Tp::Contact::aliasChanged ( const QString alias) [signal]

This signal is emitted when the value of alias() changes.

Parameters:
aliasThe new alias of this contact.
See also:
alias()
void Tp::Contact::avatarTokenChanged ( const QString avatarToken) [signal]

This signal is emitted when the value of avatarToken() changes.

Parameters:
avatarTokenThe new avatar token of this contact.
See also:
avatarToken()
void Tp::Contact::avatarDataChanged ( const Tp::AvatarData avatarData) [signal]

This signal is emitted when the value of avatarData() changes.

Parameters:
avatarDataThe new avatar of this contact.
See also:
avatarData()
void Tp::Contact::presenceChanged ( const Tp::Presence presence) [signal]

This signal is emitted when the value of presence() changes.

Parameters:
presenceThe new presence of this contact.
See also:
presence()
void Tp::Contact::capabilitiesChanged ( const Tp::ContactCapabilities caps) [signal]

This signal is emitted when the value of capabilities() changes.

Parameters:
capsThe new capabilities of this contact.
See also:
capabilities()
void Tp::Contact::locationUpdated ( const Tp::LocationInfo location) [signal]

This signal is emitted when the value of location() changes.

Parameters:
capsThe new location of this contact.
See also:
location()
void Tp::Contact::infoFieldsChanged ( const Tp::Contact::InfoFields infoFields) [signal]

This signal is emitted when the value of infoFields() changes.

Parameters:
InfoFieldsThe new info of this contact.
See also:
infoFields()
void Tp::Contact::subscriptionStateChanged ( Tp::Contact::PresenceState  state) [signal]

This signal is emitted when the value of subscriptionState() changes.

Parameters:
stateThe new subscription state of this contact.
See also:
subscriptionState()
void Tp::Contact::subscriptionStateChanged ( Tp::Contact::PresenceState  state,
const Tp::Channel::GroupMemberChangeDetails details 
) [signal]
void Tp::Contact::publishStateChanged ( Tp::Contact::PresenceState  state,
const QString message 
) [signal]

This signal is emitted when the value of publishState() changes.

Parameters:
stateThe new publish state of this contact.
See also:
publishState()
void Tp::Contact::publishStateChanged ( Tp::Contact::PresenceState  state,
const Tp::Channel::GroupMemberChangeDetails details 
) [signal]
void Tp::Contact::blockStatusChanged ( bool  blocked) [signal]

This signal is emitted when the value of isBlocked() changes.

Parameters:
statusThe new block status of this contact.
See also:
isBlocked()
void Tp::Contact::blockStatusChanged ( bool  blocked,
const Tp::Channel::GroupMemberChangeDetails details 
) [signal]
void Tp::Contact::addedToGroup ( const QString group) [signal]

This signal is emitted when this contact is added to group of the contact list.

Parameters:
groupGroup name.
See also:
groups(), removedFromGroup()
void Tp::Contact::removedFromGroup ( const QString group) [signal]

This signal is emitted when this contact is removed from group of the contact list.

Parameters:
groupGroup name.
See also:
groups(), addedToGroup()
void Tp::Contact::augment ( const Features requestedFeatures,
const QVariantMap &  attributes 
) [protected, virtual]
void Tp::Contact::connectNotify ( const char *  signalName) [protected, virtual]

Reimplemented from QObject.


Member Data Documentation

Feature used in order to access contact alias info.

See alias specific methods' documentation for more details.

See also:
alias(), aliasChanged()

Feature used in order to access contact avatar data info.

Enabling this feature will also enable FeatureAvatarToken.

See avatar data specific methods' documentation for more details.

See also:
avatarData(), avatarDataChanged()

Feature used in order to access contact avatar token info.

See avatar token specific methods' documentation for more details.

See also:
isAvatarTokenKnown(), avatarToken(), avatarTokenChanged()

Feature used in order to access contact capabilities info.

See capabilities specific methods' documentation for more details.

See also:
capabilities(), capabilitiesChanged()

Feature used in order to access contact info fields.

See info fields specific methods' documentation for more details.

See also:
infoFields(), infoFieldsChanged()

Feature used in order to access contact location info.

See location specific methods' documentation for more details.

See also:
location(), locationUpdated()

Feature used in order to access contact presence info.

See presence specific methods' documentation for more details.

See also:
presence(), presenceChanged()


Copyright © 2008-2011 Collabora Ltd. and Nokia Corporation
Telepathy-Qt4 0.7.1