5#ifndef QXMPPMUCMANAGER_H
6#define QXMPPMUCMANAGER_H
8#include "QXmppClientExtension.h"
10#include "QXmppPresence.h"
15class QXmppMucManagerPrivate;
17class QXmppMucRoomPrivate;
55 QList<QXmppMucRoom *>
rooms()
const;
77 void _q_roomDestroyed(QObject *
object);
80 const std::unique_ptr<QXmppMucManagerPrivate> d;
88class QXMPP_EXPORT QXmppMucRoom :
public QObject
98 Q_PROPERTY(QString
jid READ
jid CONSTANT)
119 Q_DECLARE_FLAGS(Actions, Action)
125 Actions allowedActions()
const;
129 bool isJoined()
const;
141 QString name()
const;
145 QString nickName()
const;
146 void setNickName(
const QString &nickName);
148 Q_INVOKABLE QString participantFullJid(
const QString &jid)
const;
157 QStringList participants()
const;
161 QString password()
const;
162 void setPassword(
const QString &password);
166 QString subject()
const;
167 void setSubject(
const QString &subject);
186 void isJoinedChanged();
211 void participantsChanged();
221 bool ban(
const QString &
jid,
const QString &reason);
223 bool kick(
const QString &
jid,
const QString &reason);
224 bool leave(
const QString &message = QString());
233 void _q_disconnected();
239 QXmppMucRoom(
QXmppClient *client,
const QString &
jid, QObject *parent);
240 const std::unique_ptr<QXmppMucRoomPrivate> d;
241 friend class QXmppMucManager;
244Q_DECLARE_OPERATORS_FOR_FLAGS(QXmppMucRoom::Actions)
virtual QStringList discoveryFeatures() const
Definition QXmppClientExtension.cpp:22
virtual void onUnregistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:95
virtual void onRegistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:85
QXmppClient * client() const
Definition QXmppClientExtension.cpp:57
QXmppClientExtension()
Definition QXmppClientExtension.cpp:12
virtual bool handleStanza(const QDomElement &stanza)
You need to implement this method to process incoming XMPP stanzas.
Definition client/compat/removed_api.cpp:26
Main class for starting and managing connections to XMPP servers.
Definition QXmppClient.h:62
Definition QXmppDiscoveryIq.h:18
The QXmppMessage class represents an XMPP message.
Definition QXmppMessage.h:64
QList< QXmppMucRoom * > rooms
List of joined MUC rooms.
Definition QXmppMucManager.h:45
QXmppMucManager()
Definition QXmppMucManager.cpp:43
void invitationReceived(const QString &roomJid, const QString &inviter, const QString &reason)
This signal is emitted when an invitation to a chat room is received.
QXmppMucRoom * addRoom(const QString &roomJid)
Definition QXmppMucManager.cpp:54
void roomAdded(QXmppMucRoom *room)
This signal is emitted when a new room is managed.
The QXmppMucRoom class represents a multi-user chat room as defined by XEP-0045: Multi-User Chat.
Definition QXmppMucManager.h:89
void error(const QXmppStanza::Error &error)
This signal is emitted when an error is encountered.
void participantChanged(const QString &jid)
This signal is emitted when a participant changes.
void messageReceived(const QXmppMessage &message)
This signal is emitted when a message is received.
bool setConfiguration(const QXmppDataForm &form)
Definition QXmppMucManager.cpp:451
void participantRemoved(const QString &jid)
This signal is emitted when a participant leaves the room.
void configurationReceived(const QXmppDataForm &configuration)
This signal is emitted when the configuration form for the room is received.
bool ban(const QString &jid, const QString &reason)
Definition QXmppMucManager.cpp:201
void nickNameChanged(const QString &nickName)
This signal is emitted when your own nick name changes.
QXmppMucRoom::Actions allowedActions
The actions you are allowed to perform on the room.
Definition QXmppMucManager.h:94
void subjectChanged(const QString &subject)
This signal is emitted when the room's subject changes.
QString nickName
Your own nickname.
Definition QXmppMucManager.h:102
bool kick(const QString &jid, const QString &reason)
Definition QXmppMucManager.cpp:258
void setNickName(const QString &nickName)
Definition QXmppMucManager.cpp:342
QString jid
The chat room's bare JID.
Definition QXmppMucManager.h:98
void nameChanged(const QString &name)
This signal is emitted when the room's human-readable name changes.
void participantAdded(const QString &jid)
This signal is emitted when a participant joins the room.
bool sendMessage(const QString &text)
Definition QXmppMucManager.cpp:326
bool setPermissions(const QList< QXmppMucItem > &permissions)
Definition QXmppMucManager.cpp:499
void left()
This signal is emitted once you have left the room.
QString subject
The room's subject.
Definition QXmppMucManager.h:108
QString password
The chat room password.
Definition QXmppMucManager.h:106
bool requestPermissions()
Definition QXmppMucManager.cpp:467
QString name
The chat room's human-readable name.
Definition QXmppMucManager.h:100
QStringList participants
The list of participant JIDs.
Definition QXmppMucManager.h:104
bool sendInvitation(const QString &jid, const QString &reason)
Definition QXmppMucManager.cpp:307
void joined()
This signal is emitted once you have joined the room.
bool requestConfiguration()
Definition QXmppMucManager.cpp:437
bool leave(const QString &message=QString())
Definition QXmppMucManager.cpp:280
void permissionsReceived(const QList< QXmppMucItem > &permissions)
This signal is emitted when the room's permissions are received.
void allowedActionsChanged(QXmppMucRoom::Actions actions)
This signal is emitted when the allowed actions change.
Action
This enum is used to describe chat room actions.
Definition QXmppMucManager.h:112
@ NoAction
no action
Definition QXmppMucManager.h:113
@ SubjectAction
change the room's subject
Definition QXmppMucManager.h:114
@ KickAction
kick users from the room
Definition QXmppMucManager.h:117
@ PermissionsAction
change the room's permissions
Definition QXmppMucManager.h:116
@ ConfigurationAction
change the room's configuration
Definition QXmppMucManager.h:115
void setSubject(const QString &subject)
Definition QXmppMucManager.cpp:421
void setPassword(const QString &password)
Definition QXmppMucManager.cpp:406
bool isJoined
Whether you are currently in the room.
Definition QXmppMucManager.h:96
void kicked(const QString &jid, const QString &reason)
This signal is emitted if you get kicked from the room.
bool join()
Definition QXmppMucManager.cpp:236
The QXmppPresence class represents an XMPP presence stanza.
Definition QXmppPresence.h:22
The Error class represents a stanza error.
Definition QXmppStanza.h:94