From 5c6a6b8385df6b3f9cc640781eb76900e9364015 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Mon, 7 Sep 2020 17:17:59 +0200 Subject: QXmppDataForm: Add FORM_TYPE search function --- src/base/QXmppDataForm.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/base/QXmppDataForm.cpp') diff --git a/src/base/QXmppDataForm.cpp b/src/base/QXmppDataForm.cpp index 6c1ae804..b8bfa357 100644 --- a/src/base/QXmppDataForm.cpp +++ b/src/base/QXmppDataForm.cpp @@ -665,6 +665,27 @@ void QXmppDataForm::setType(QXmppDataForm::Type type) d->type = type; } +/// +/// Searches for a hidden field called 'FORM_TYPE' and returns its value. +/// +/// \returns The string value of the field or a null string if the field +/// couldn't be found. +/// +/// \since QXmpp 1.5 +/// +QString QXmppDataForm::formType() const +{ + const auto formTypeItr = std::find_if(d->fields.begin(), d->fields.end(), [](const QXmppDataForm::Field &field) { + return field.type() == QXmppDataForm::Field::HiddenField && + field.key() == QStringLiteral("FORM_TYPE"); + }); + + if (formTypeItr != d->fields.end()) { + return formTypeItr->value().toString(); + } + return {}; +} + /// Returns true if the form has an unknown type. bool QXmppDataForm::isNull() const -- cgit v1.2.3