diff options
Diffstat (limited to 'Swiften/Parser/PayloadParsers/FormParser.h')
-rw-r--r-- | Swiften/Parser/PayloadParsers/FormParser.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/FormParser.h b/Swiften/Parser/PayloadParsers/FormParser.h index eae40a1..a3e2524 100644 --- a/Swiften/Parser/PayloadParsers/FormParser.h +++ b/Swiften/Parser/PayloadParsers/FormParser.h @@ -43,18 +43,19 @@ namespace Swift { } else { field->setValue(field->getValue() + "\n" + s); } getField()->addRawValue(s); } }; class JIDFieldParseHelper : public FieldParseHelper { virtual void addValue(const std::string& s) { + getField()->addRawValue(s); boost::dynamic_pointer_cast< GenericFormField<JID> >(getField())->setValue(JID(s)); } }; class StringListFieldParseHelper : public FieldParseHelper { virtual void addValue(const std::string& s) { // FIXME: Inefficient, but too much hassle to do efficiently boost::shared_ptr<GenericFormField< std::vector<std::string> > > field = boost::dynamic_pointer_cast< GenericFormField<std::vector<std::string > > >(getField()); std::vector<std::string> l = field->getValue(); l.push_back(s); @@ -100,11 +101,14 @@ namespace Swift { enum Level { TopLevel = 0, PayloadLevel = 1, FieldLevel = 2 }; int level_; std::string currentText_; std::string currentOptionLabel_; boost::shared_ptr<FieldParseHelper> currentFieldParseHelper_; + bool parsingItem_; + bool parsingReported_; + std::vector<FormField::ref> currentFields_; }; } |