summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2012-01-06 22:18:25 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-01-23 14:51:26 (GMT)
commit83afa3d4bf18e4feb8a33d084ed181508084fc64 (patch)
treeb81a0c6eaaedbad3f3e607ea52a69acf98f95eff /Swiften/Parser/PayloadParsers/FormParser.h
parent093d499945d779cfed92b45e413644834004b0d9 (diff)
downloadswift-contrib-83afa3d4bf18e4feb8a33d084ed181508084fc64.zip
swift-contrib-83afa3d4bf18e4feb8a33d084ed181508084fc64.tar.bz2
XEP-0004 form support for user search.
License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
Diffstat (limited to 'Swiften/Parser/PayloadParsers/FormParser.h')
-rw-r--r--Swiften/Parser/PayloadParsers/FormParser.h4
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_;
};
}