QXmpp Version: 1.14.4
Loading...
Searching...
No Matches
QXmppMucForms.h
1// SPDX-FileCopyrightText: 2025 Linus Jahn <lnj@kaidan.im>
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4
5#ifndef QXMPPMUCFORMS_H
6#define QXMPPMUCFORMS_H
7
8#include "QXmppDataFormBase.h"
9
10struct QXmppMucRoomInfoPrivate;
11
13{
14public:
16 static constexpr QStringView DataFormType = QXmpp::Private::ns_muc_roominfo;
17 static std::optional<QXmppMucRoomInfo> fromDataForm(const QXmppDataForm &);
18
20 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppMucRoomInfo)
21
22 std::optional<bool> subjectChangeable() const;
23 void setSubjectChangeable(std::optional<bool> newSubjectChangeable);
24
25 QString subject() const;
26 void setSubject(const QString &newSubject);
27
28 std::optional<quint32> occupants() const;
29 void setOccupants(std::optional<quint32> newOccupants);
30
31 QString language() const;
32 void setLanguage(const QString &newLanguage);
33
34 QString description() const;
35 void setDescription(const QString &newDescription);
36
37 QStringList contactJids() const;
38 void setContactJids(const QStringList &newContactJids);
39
40 std::optional<quint32> maxHistoryFetch() const;
41 void setMaxHistoryFetch(std::optional<quint32> newMaxHistoryFetch);
42
43 QStringList avatarHashes() const;
44 void setAvatarHashes(const QStringList &hashes);
45
46protected:
47 QString formType() const override;
48 bool parseField(const QXmppDataForm::Field &) override;
49 void serializeForm(QXmppDataForm &) const override;
50
51private:
52 QSharedDataPointer<QXmppMucRoomInfoPrivate> d;
53};
54
55#endif // QXMPPMUCFORMS_H
static bool fromDataForm(const QXmppDataForm &form, QXmppDataFormBase &parent)
Definition QXmppDataFormBase.cpp:55
virtual QString formType() const =0
Definition QXmppDataForm.h:93
Definition QXmppDataForm.h:28
Definition QXmppDataFormBase.h:112
void serializeForm(QXmppDataForm &) const override
Definition QXmppDataFormBase.cpp:204
virtual bool parseField(const QXmppDataForm::Field &)
Definition QXmppDataFormBase.cpp:215
Definition QXmppMucForms.h:13