9#include "QXmppConstants_p.h"
10#include "QXmppStanza.h"
12#if QXMPP_DEPRECATED_SINCE(1, 1)
22class QXmppDataFormPrivate;
23class QXmppDataFormFieldPrivate;
24class QXmppDataFormMediaPrivate;
25class QXmppDataFormMediaSourcePrivate;
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")
69 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSize().height() instead")
71 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSize().setHeight() instead")
74 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSize().width() instead")
76 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSize().setWidth() instead")
79 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSources() instead")
80 QList<QPair<QString, QString>>
uris() const;
81 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::setMediaSources() instead")
82 void setUris(const QList<QPair<QString, QString>> &
uris);
84 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSources().isEmpty() instead")
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 = {});
129 QString
label()
const;
132 QList<QPair<QString, QString>>
options()
const;
141 QVariant
value()
const;
144 QVector<QXmppDataForm::MediaSource>
mediaSources()
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 = {});
193 QXmppDataForm(
const QXmppDataFormBase &based);
204 QList<Field>
fields()
const;
210 std::optional<QXmppDataForm::Field>
field(QStringView fieldName)
const;
211 std::optional<QVariant>
fieldValue(QStringView fieldName)
const;
213 QString
title()
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;
238Q_DECLARE_METATYPE(QXmppDataForm)