LeechCraft Azoth  0.6.70-15082-g543737046d
Modular multiprotocol IM plugin for LeechCraft
LC::Azoth::IMUCEntry Class Referenceabstract

Represents a single MUC entry in the CL. More...

#include "imucentry.h"

Public Types

enum  MUCFeature { MUCFCanBeConfigured = 0x0001, MUCFCanHaveSubject = 0x0002, MUCFCanInvite = 0x0004 }
 

Public Member Functions

virtual ~IMUCEntry ()
 
virtual MUCFeatures GetMUCFeatures () const =0
 The list of features of this MUC. More...
 
virtual QString GetMUCSubject () const =0
 Returns subject of this MUC. More...
 
virtual void SetMUCSubject (const QString &subject)=0
 Updates the subject of this MUC. More...
 
virtual bool CanChangeSubject () const =0
 Returns whether MUC subject can be changed. More...
 
virtual QList< QObject * > GetParticipants ()=0
 The list of participants of this MUC. More...
 
virtual bool IsAutojoined () const =0
 Whether this MUC room was automatically joined. More...
 
virtual void Join ()=0
 Requests to join the room. More...
 
virtual void Leave (const QString &msg=QString())=0
 Requests to leave the room. More...
 
virtual QString GetNick () const =0
 Returns the nick of our participant. More...
 
virtual void SetNick (const QString &nick)=0
 Changes the nick of our participant. More...
 
virtual QString GetGroupName () const =0
 Returns human-readable name of participants' group. More...
 
virtual QString GetRealID (QObject *participant) const =0
 Returns the real ID of a participant. More...
 
virtual QVariantMap GetIdentifyingData () const =0
 Returns the data identifying this room. More...
 
virtual void InviteToMUC (const QString &userId, const QString &msg)=0
 Invites the user to this MUC. More...
 
virtual void gotNewParticipants (const QList< QObject * > &parts)=0
 Notifies about new participants in the room. More...
 
virtual void mucSubjectChanged (const QString &newSubj)=0
 Notifies about subject change. More...
 
virtual void nicknameConflict (const QString &usedNick)=0
 Notifies about nick conflict. More...
 
virtual void beenKicked (const QString &reason)=0
 Notifies about participant being kicked. More...
 
virtual void beenBanned (const QString &reason)=0
 Notifies about participant being banned. More...
 

Detailed Description

Represents a single MUC entry in the CL.

This class extends ICLEntry by providing methods and data specific to MUCs. A well-written plugin should implement this interface along with ICLEntry for MUC entries.

See IConfigurableMUC if the MUC supports being configured and IMUCPerms if the MUC supports adjusting permissions for its participants.

Definition at line 43 of file imucentry.h.

Member Enumeration Documentation

◆ MUCFeature

Enumerator
MUCFCanBeConfigured 

This room has a configuration dialog and can be configured.

MUCFCanHaveSubject 

Room can have a (possibly empty) subject which may be retrieved by GetMUCSubject().

MUCFCanInvite 

Room supports invitations.

Definition at line 49 of file imucentry.h.

Constructor & Destructor Documentation

◆ ~IMUCEntry()

virtual LC::Azoth::IMUCEntry::~IMUCEntry ( )
inlinevirtual

Definition at line 47 of file imucentry.h.

Member Function Documentation

◆ beenBanned()

virtual void LC::Azoth::IMUCEntry::beenBanned ( const QString &  reason)
pure virtual

Notifies about participant being banned.

This signal should be emitted whenever our user gets banned from this room.

Note
This function is expected to be a signal.
Parameters
[out]reasonThe optional reason message.

◆ beenKicked()

virtual void LC::Azoth::IMUCEntry::beenKicked ( const QString &  reason)
pure virtual

Notifies about participant being kicked.

This signal should be emitted whenever our user gets kicked from this room.

Note
This function is expected to be a signal.
Parameters
[out]reasonThe optional reason message.

◆ CanChangeSubject()

virtual bool LC::Azoth::IMUCEntry::CanChangeSubject ( ) const
pure virtual

Returns whether MUC subject can be changed.

This function should return whether our user can change this MUC's subject.

Returns
Whether the MUC subject can be changed by the user.

◆ GetGroupName()

virtual QString LC::Azoth::IMUCEntry::GetGroupName ( ) const
pure virtual

Returns human-readable name of participants' group.

This function should return the human-readable name of the group which holds the participants of this room.

Returns
The human-readable name.

◆ GetIdentifyingData()

virtual QVariantMap LC::Azoth::IMUCEntry::GetIdentifyingData ( ) const
pure virtual

Returns the data identifying this room.

The returned variant map should have the same format as the one from IMUCJoinWidget::GetIdentifyingData().

Returns
The identifying data.
See also
IMUCJoinWidget::GetIdentifyingData()

◆ GetMUCFeatures()

virtual MUCFeatures LC::Azoth::IMUCEntry::GetMUCFeatures ( ) const
pure virtual

The list of features of this MUC.

Returns the list of features supported by this MUC.

◆ GetMUCSubject()

virtual QString LC::Azoth::IMUCEntry::GetMUCSubject ( ) const
pure virtual

Returns subject of this MUC.

Returns the subject/topic of this MUC room, possibly empty. If the protocol or smth doesn't support subjects for MUCs, this function should return an empty string.

Returns
The subject of this MUC.

◆ GetNick()

virtual QString LC::Azoth::IMUCEntry::GetNick ( ) const
pure virtual

Returns the nick of our participant.

Returns
The nickname or null string if not applicable.

◆ GetParticipants()

virtual QList<QObject*> LC::Azoth::IMUCEntry::GetParticipants ( )
pure virtual

The list of participants of this MUC.

If the protocol plugin chooses to return info about participants via the IAccount interface, the ICLEntry objects returned from this function and from IAccount should be the same for the same participants.

Returns
The list of participants of this MUC.

◆ GetRealID()

virtual QString LC::Azoth::IMUCEntry::GetRealID ( QObject *  participant) const
pure virtual

Returns the real ID of a participant.

This function should return a real protocol ID of the given participant (JID for XMPP protocol, for example), or a null string if the ID is unknown, or the given participant doesn't belong to this room.

Parameters
[in]participantThe participant for which to return the real JID.
Returns
The real ID of a participant.

◆ gotNewParticipants()

virtual void LC::Azoth::IMUCEntry::gotNewParticipants ( const QList< QObject * > &  parts)
pure virtual

Notifies about new participants in the room.

This signal should emitted when new participants join this room.

Note
This function is expected to be a signal.
Parameters
[out]partsThe list of participants that joined.

◆ InviteToMUC()

virtual void LC::Azoth::IMUCEntry::InviteToMUC ( const QString &  userId,
const QString &  msg 
)
pure virtual

Invites the user to this MUC.

This function should invite the given user to this MUC by means of the protocol, if applicable, or by a plain message if not.

User is identified by its protocol-specific ID, as returned by ICLEntry::GetHumanReadableID().

The invitation may contain an optional message.

Parameters
[in]userIdThe protocol-specific ID of the user to invite.
[in]msgThe optional message to send along with the invite.
See also
ICLEntry::GetHumanReadableID()

◆ IsAutojoined()

virtual bool LC::Azoth::IMUCEntry::IsAutojoined ( ) const
pure virtual

Whether this MUC room was automatically joined.

Azoth uses this, for example, to avoid auto-opening MUCs that where joined as a result of bookmarks/autojoin list.

Returns
Whether the room was autojoined.

◆ Join()

virtual void LC::Azoth::IMUCEntry::Join ( )
pure virtual

Requests to join the room.

If the we aren't joined to this MUC (for example, there was a nick conflict, or this entry represents a bookmark), the room should be tried to be joined.

◆ Leave()

virtual void LC::Azoth::IMUCEntry::Leave ( const QString &  msg = QString())
pure virtual

Requests to leave the room.

The protocol implementation is expected to leave the room with the given leave message. If leaving is impossible for some reason, it's ok to stay.

If the room is successfully left, the parent account should take care of removing the contact list entries corresponding to its participants and the room itself.

Parameters
[in]msgThe leave message (if applicable).

◆ mucSubjectChanged()

virtual void LC::Azoth::IMUCEntry::mucSubjectChanged ( const QString &  newSubj)
pure virtual

Notifies about subject change.

This signal should be emitted when room subject is changed to newSubj.

Note
This function is expected to be a signal.
Parameters
[out]newSubjThe new subject of this room.

◆ nicknameConflict()

virtual void LC::Azoth::IMUCEntry::nicknameConflict ( const QString &  usedNick)
pure virtual

Notifies about nick conflict.

This signal should be emitted when room gets the error from the server that the nickname is already in use.

The signal handler could either call SetNick() with some other nickname (in this case the room should automatically try to rejoin) or do nothing it all (in this case the room should, well, do nothing as well).

This signal should be emitted only if the error arises while joining, not as result of SetNick().

Note
This function is expected to be a signal.
Parameters
[out]usedNickThe nickname that was used to join the room.

◆ SetMUCSubject()

virtual void LC::Azoth::IMUCEntry::SetMUCSubject ( const QString &  subject)
pure virtual

Updates the subject of this MUC.

Sets the subject of the conference. If it fails for some reason, for example, due to insufficient rights, this function should do nothing.

Parameters
[in]subjectThe new subject of this room to set.

◆ SetNick()

virtual void LC::Azoth::IMUCEntry::SetNick ( const QString &  nick)
pure virtual

Changes the nick of our participant.

If changing nicks is not allowed or is not supported, nothing should be done.

Parameters
[in]nickNew nick for our participant in this room.

The documentation for this class was generated from the following file: