summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-06-20 17:38:19 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-06-20 17:38:19 (GMT)
commitdfea757fd085ca9386b96db58c5d2bcd6173a917 (patch)
tree9251fa1b1121fb0f90a569ecc5b31014d7e217b5 /Swiften/Elements
parentf6635d1eee1235710c61e3fad76a161959185323 (diff)
downloadswift-dfea757fd085ca9386b96db58c5d2bcd6173a917.zip
swift-dfea757fd085ca9386b96db58c5d2bcd6173a917.tar.bz2
Show subjects on MUC join.
Resolves: #472
Diffstat (limited to 'Swiften/Elements')
-rw-r--r--Swiften/Elements/Message.h14
-rw-r--r--Swiften/Elements/Subject.h29
2 files changed, 42 insertions, 1 deletions
diff --git a/Swiften/Elements/Message.h b/Swiften/Elements/Message.h
index b1fea56..f42aec6 100644
--- a/Swiften/Elements/Message.h
+++ b/Swiften/Elements/Message.h
@@ -10,6 +10,7 @@
#include "Swiften/Base/String.h"
#include "Swiften/Elements/Body.h"
+#include "Swiften/Elements/Subject.h"
#include "Swiften/Elements/ErrorPayload.h"
#include "Swiften/Elements/Stanza.h"
@@ -22,6 +23,18 @@ namespace Swift
Message() : type_(Chat) { }
+ String getSubject() const {
+ boost::shared_ptr<Subject> subject(getPayload<Subject>());
+ if (subject) {
+ return subject->getText();
+ }
+ return "";
+ }
+
+ void setSubject(const String& subject) {
+ updatePayload(boost::shared_ptr<Subject>(new Subject(subject)));
+ }
+
String getBody() const {
boost::shared_ptr<Body> body(getPayload<Body>());
if (body) {
@@ -43,7 +56,6 @@ namespace Swift
void setType(Type type) { type_ = type; }
private:
- String body_;
Type type_;
};
}
diff --git a/Swiften/Elements/Subject.h b/Swiften/Elements/Subject.h
new file mode 100644
index 0000000..745ddb5
--- /dev/null
+++ b/Swiften/Elements/Subject.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2010 Kevin Smith
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#pragma once
+
+#include "Swiften/Elements/Payload.h"
+#include "Swiften/Base/String.h"
+
+namespace Swift {
+ class Subject : public Payload {
+ public:
+ Subject(const String& text = "") : text_(text) {
+ }
+
+ void setText(const String& text) {
+ text_ = text;
+ }
+
+ const String& getText() const {
+ return text_;
+ }
+
+ private:
+ String text_;
+ };
+}