diff options
author | Tobias Markmann <tm@ayena.de> | 2014-10-13 14:41:11 (GMT) |
---|---|---|
committer | Swift Review <review@swift.im> | 2014-10-14 08:38:37 (GMT) |
commit | 549dc6aa0642d6cf0d5ae2260f4195cb5b212e59 (patch) | |
tree | 2ee20a6f988724f48717bba223d44124b123fe86 /Swiften | |
parent | b3195ad73e4399ff431d640f2d12df5914d36221 (diff) | |
download | swift-contrib-549dc6aa0642d6cf0d5ae2260f4195cb5b212e59.zip swift-contrib-549dc6aa0642d6cf0d5ae2260f4195cb5b212e59.tar.bz2 |
Remove empty fields from XEP-0055 search query before sending it over the wire.
This clears both, empty fields of XEP-0004 data forms and the XEP-0055 predefiened
fixed form.
Test-Information:
Verified using Swift's debug console and M-Link.
Change-Id: I3cd2314abfe5111f66569d39aae9b8587157ec07
Diffstat (limited to 'Swiften')
-rw-r--r-- | Swiften/Elements/Form.cpp | 22 | ||||
-rw-r--r-- | Swiften/Elements/Form.h | 4 |
2 files changed, 24 insertions, 2 deletions
diff --git a/Swiften/Elements/Form.cpp b/Swiften/Elements/Form.cpp index c4ae410..4915e2a 100644 --- a/Swiften/Elements/Form.cpp +++ b/Swiften/Elements/Form.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2013 Remko Tronçon + * Copyright (c) 2010-2014 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ @@ -42,4 +42,24 @@ const std::vector<Form::FormItem>& Form::getItems() const { return items_; } +void Form::clearEmptyTextFields() { + std::vector<FormField::ref> populatedFields; + foreach (FormField::ref field, fields_) { + if (field->getType() == FormField::TextSingleType) { + if (!field->getTextSingleValue().empty()) { + populatedFields.push_back(field); + } + } + else if (field->getType() == FormField::TextMultiType) { + if (!field->getTextMultiValue().empty()) { + populatedFields.push_back(field); + } + } + else { + populatedFields.push_back(field); + } + } + fields_ = populatedFields; +} + } diff --git a/Swiften/Elements/Form.h b/Swiften/Elements/Form.h index 76ed674..16cef98 100644 --- a/Swiften/Elements/Form.h +++ b/Swiften/Elements/Form.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010 Kevin Smith + * Copyright (c) 2010-2014 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ @@ -57,6 +57,8 @@ namespace Swift { const std::vector<FormItem>& getItems() const; void clearItems() { items_.clear(); } + void clearEmptyTextFields(); + private: std::vector<boost::shared_ptr<FormField> > fields_; std::vector<boost::shared_ptr<FormField> > reportedFields_; |