diff options
| author | Richard Maudsley <richard.maudsley@isode.com> | 2014-04-08 07:58:54 (GMT) |
|---|---|---|
| committer | Richard Maudsley <richard.maudsley@isode.com> | 2014-04-23 08:10:49 (GMT) |
| commit | 09e9713028b728fad9050c4e20180cc96c4572ce (patch) | |
| tree | 4924a3d4985ec7d89ca69f6f35853e139b74a7de /Swift/Controllers | |
| parent | a7fb55381ab4a5c470bf891b31ac6e201611a2c1 (diff) | |
| download | swift-contrib-09e9713028b728fad9050c4e20180cc96c4572ce.zip swift-contrib-09e9713028b728fad9050c4e20180cc96c4572ce.tar.bz2 | |
Don't suggest people who are already in the Start Chat list.
Change-Id: Ia458634d6bf5f678a34466ac4421c54c65385a3c
Diffstat (limited to 'Swift/Controllers')
| -rw-r--r-- | Swift/Controllers/Chat/UserSearchController.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Swift/Controllers/Chat/UserSearchController.cpp b/Swift/Controllers/Chat/UserSearchController.cpp index 8503609..12c6777 100644 --- a/Swift/Controllers/Chat/UserSearchController.cpp +++ b/Swift/Controllers/Chat/UserSearchController.cpp @@ -188,19 +188,36 @@ void UserSearchController::handleSearchResponse(boost::shared_ptr<SearchPayload> void UserSearchController::handleNameSuggestionRequest(const JID &jid) { suggestionsJID_= jid; VCard::ref vcard = vcardManager_->getVCardAndRequestWhenNeeded(jid); if (vcard) { handleVCardChanged(jid, vcard); } } void UserSearchController::handleContactSuggestionsRequested(std::string text) { - window_->setContactSuggestions(contactSuggester_->getSuggestions(text)); + const std::vector<JID> existingJIDs = window_->getJIDs(); + std::vector<Contact::ref> suggestions = contactSuggester_->getSuggestions(text); + std::vector<Contact::ref>::iterator i = suggestions.begin(); + while (i != suggestions.end()) { + bool found = false; + foreach (const JID& jid, existingJIDs) { + if ((*i)->jid == jid) { + found = true; + break; + } + } + if (found) { + i = suggestions.erase(i); + } else { + i++; + } + } + window_->setContactSuggestions(suggestions); } void UserSearchController::handleVCardChanged(const JID& jid, VCard::ref vcard) { if (jid == suggestionsJID_) { window_->setNameSuggestions(ContactEditController::nameSuggestionsFromVCard(vcard)); suggestionsJID_ = JID(); } handleJIDUpdateRequested(std::vector<JID>(1, jid)); } |
Swift