9#include "QXmppConstants_p.h"
10#include "QXmppStanza.h"
12#if QXMPP_DEPRECATED_SINCE(1, 1)
22class QXmppDataFormPrivate;
23class QXmppDataFormFieldPrivate;
24class QXmppDataFormMediaPrivate;
25class QXmppDataFormMediaSourcePrivate;
34 MediaSource(
const QUrl &uri,
const QMimeType &contentType);
43 void setUri(
const QUrl &uri);
45 QMimeType contentType()
const;
46 void setContentType(
const QMimeType &contentType);
50 static constexpr std::tuple XmlTag = { u
"uri", QXmpp::Private::ns_media_element };
54 QSharedDataPointer<QXmppDataFormMediaSourcePrivate> d;
57#if QXMPP_DEPRECATED_SINCE(1, 1)
61 QT_DEPRECATED_X(
"Use QXmppDataForm::Field() instead")
63 QT_DEPRECATED_X(
"Use QXmppDataForm::Field() instead")
72 void setHeight(
int height);
77 void setWidth(
int width);
80 QList<QPair<QString, QString>> uris() const;
82 void setUris(const QList<QPair<QString, QString>> &uris);
88 QSharedDataPointer<QXmppDataFormMediaPrivate> d;
110 const QString &key = {},
111 const QVariant &value = {},
112 bool isRequired =
false,
113 const QString &label = {},
114 const QString &description = {},
115 const QList<QPair<QString, QString>> &options = {});
123 QString description()
const;
124 void setDescription(
const QString &description);
127 void setKey(
const QString &key);
129 QString label()
const;
130 void setLabel(
const QString &label);
132 QList<QPair<QString, QString>> options()
const;
133 void setOptions(
const QList<QPair<QString, QString>> &options);
135 bool isRequired()
const;
136 void setRequired(
bool required);
141 QVariant value()
const;
142 void setValue(
const QVariant &value);
144 QVector<QXmppDataForm::MediaSource> mediaSources()
const;
145 void setMediaSources(
const QVector<QXmppDataForm::MediaSource> &mediaSources);
147 QSize mediaSize()
const;
148 void setMediaSize(
const QSize &size);
150 bool operator==(
const Field &other)
const;
153 static constexpr std::tuple XmlTag = { u
"field", QXmpp::Private::ns_data };
154 static std::optional<Field> fromDom(
const QDomElement &el);
155 void toXml(QXmlStreamWriter *writer)
const;
157#if QXMPP_DEPRECATED_SINCE(1, 1)
158 [[deprecated(
"Use mediaSources() and mediaSize()")]]
160 [[deprecated(
"Use setMediaSources() and setMediaSize()")]]
161 void setMedia(
const Media &media);
163#if QXMPP_DEPRECATED_SINCE(1, 12)
164 [[deprecated(
"Use const-getter or setter")]]
165 QVector<QXmppDataForm::MediaSource> &mediaSources();
166 [[deprecated(
"Use const-getter or setter")]]
172 QSharedDataPointer<QXmppDataFormFieldPrivate> d;
190 const QList<Field> &fields = {},
191 const QString &title = {},
192 const QString &instructions = {});
201 QString instructions()
const;
202 void setInstructions(
const QString &instructions);
204 QList<Field> fields()
const;
205 const QList<Field> &constFields()
const;
206 void setFields(
const QList<QXmppDataForm::Field> &fields);
210 std::optional<QXmppDataForm::Field> field(QStringView fieldName)
const;
211 std::optional<QVariant> fieldValue(QStringView fieldName)
const;
213 QString title()
const;
214 void setTitle(
const QString &title);
219 QString formType()
const;
224 static constexpr std::tuple XmlTag = { u
"x", QXmpp::Private::ns_data };
225 void parse(
const QDomElement &element);
226 void toXml(QXmlStreamWriter *writer)
const;
228#if QXMPP_DEPRECATED_SINCE(1, 12)
229 [[deprecated(
"Use const-getter or setter")]]
230 QList<Field> &fields();
235 QSharedDataPointer<QXmppDataFormPrivate> d;