6 #ifndef QXMPPDATAFORM_H 7 #define QXMPPDATAFORM_H 9 #include "QXmppConstants_p.h" 10 #include "QXmppStanza.h" 12 #if QXMPP_DEPRECATED_SINCE(1, 1) 22 class QXmppDataFormPrivate;
23 class QXmppDataFormFieldPrivate;
24 class QXmppDataFormMediaPrivate;
25 class 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")
69 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSize().height() instead")
71 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSize().setHeight() instead")
72 void setHeight(
int height);
74 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSize().width() instead")
76 QT_DEPRECATED_X(
"Use QXmppDataForm::Field::mediaSize().setWidth() instead")
77 void setWidth(
int width);
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 = {});
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;