aboutsummaryrefslogtreecommitdiff
path: root/src/base/compat/QXmppPubSubItem.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2023-03-09 20:36:08 +0100
committerLinus Jahn <lnj@kaidan.im>2023-03-09 20:38:05 +0100
commit7c7ce1ac0b06455cf08186543452c65410fe79a9 (patch)
tree275080c868beb9baf82d614dc740cf009260ecec /src/base/compat/QXmppPubSubItem.cpp
parentfcd8224256e38d50d4ec67b71c504dcb6e480e95 (diff)
downloadqxmpp-7c7ce1ac0b06455cf08186543452c65410fe79a9.tar.gz
Readd old PubSubIq and PubSubItem for compatibility
There is at least one package that actually uses this API and this way QXmpp 1.5 can be easily adopted.
Diffstat (limited to 'src/base/compat/QXmppPubSubItem.cpp')
-rw-r--r--src/base/compat/QXmppPubSubItem.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/base/compat/QXmppPubSubItem.cpp b/src/base/compat/QXmppPubSubItem.cpp
new file mode 100644
index 00000000..cfd2724e
--- /dev/null
+++ b/src/base/compat/QXmppPubSubItem.cpp
@@ -0,0 +1,76 @@
+// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
+//
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+#include "QXmppPubSubItem.h"
+
+#include "QXmppElement.h"
+#include "QXmppUtils.h"
+
+#include <QDomElement>
+
+/// \cond
+class QXmppPubSubItemPrivate : public QSharedData
+{
+public:
+ QString id;
+ QXmppElement contents;
+};
+
+QXmppPubSubItem::QXmppPubSubItem()
+ : d(new QXmppPubSubItemPrivate)
+{
+}
+
+QXmppPubSubItem::QXmppPubSubItem(const QXmppPubSubItem &iq) = default;
+
+QXmppPubSubItem::~QXmppPubSubItem() = default;
+
+QXmppPubSubItem &QXmppPubSubItem::operator=(const QXmppPubSubItem &iq) = default;
+
+/// Returns the ID of the PubSub item.
+
+QString QXmppPubSubItem::id() const
+{
+ return d->id;
+}
+
+/// Sets the ID of the PubSub item.
+///
+/// \param id
+
+void QXmppPubSubItem::setId(const QString &id)
+{
+ d->id = id;
+}
+
+/// Returns the contents of the PubSub item.
+
+QXmppElement QXmppPubSubItem::contents() const
+{
+ return d->contents;
+}
+
+/// Sets the contents of the PubSub item.
+///
+/// \param contents
+
+void QXmppPubSubItem::setContents(const QXmppElement &contents)
+{
+ d->contents = contents;
+}
+
+void QXmppPubSubItem::parse(const QDomElement &element)
+{
+ d->id = element.attribute(QStringLiteral("id"));
+ d->contents = QXmppElement(element.firstChildElement());
+}
+
+void QXmppPubSubItem::toXml(QXmlStreamWriter *writer) const
+{
+ writer->writeStartElement(QStringLiteral("item"));
+ helperToXmlAddAttribute(writer, QStringLiteral("id"), d->id);
+ d->contents.toXml(writer);
+ writer->writeEndElement();
+}
+/// \endcond