diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-06-20 17:38:19 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-06-20 17:38:19 (GMT) |
commit | dfea757fd085ca9386b96db58c5d2bcd6173a917 (patch) | |
tree | 9251fa1b1121fb0f90a569ecc5b31014d7e217b5 /Swiften/Elements | |
parent | f6635d1eee1235710c61e3fad76a161959185323 (diff) | |
download | swift-dfea757fd085ca9386b96db58c5d2bcd6173a917.zip swift-dfea757fd085ca9386b96db58c5d2bcd6173a917.tar.bz2 |
Show subjects on MUC join.
Resolves: #472
Diffstat (limited to 'Swiften/Elements')
-rw-r--r-- | Swiften/Elements/Message.h | 14 | ||||
-rw-r--r-- | Swiften/Elements/Subject.h | 29 |
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_; + }; +} |