From deb9e5dde6942341b16143cb964fd18fabff9362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Sat, 31 Oct 2020 11:24:49 -0400 Subject: [PATCH] =?UTF-8?q?jams:=20fix=20search=20for=20@=C2=A0and=20direc?= =?UTF-8?q?t=20ids?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitLab: #445 Change-Id: I6de102834c4923090e5699e4fddeafc3b548478b --- src/contactmodel.cpp | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp index 0e33d345..a3d8316e 100644 --- a/src/contactmodel.cpp +++ b/src/contactmodel.cpp @@ -90,11 +90,10 @@ public: const QString& displayName = "", bool banned = false); /** - * Helpers for searchContact. Search for a given RING or SIP contact. + * Helpers for searchContact. Search for a given classic or SIP contact. */ - void searchRingContact(const URI& query); + void searchContact(const URI& query); void searchSipContact(const URI& query); - void jamsSearch(const URI& query); /** * Update temporary item to display a given message about a given uri. @@ -415,11 +414,7 @@ ContactModel::searchContact(const QString& query) && owner.profileInfo.type == profile::Type::SIP) { pimpl_->searchSipContact(uri); } else if (uriScheme == URI::SchemeType::RING && owner.profileInfo.type == profile::Type::RING) { - bool isJamsAccount = !owner.confProperties.managerUri.isEmpty(); - if (isJamsAccount) - pimpl_->jamsSearch(uri); - else - pimpl_->searchRingContact(uri); + pimpl_->searchContact(uri); } else { pimpl_->updateTemporaryMessage(tr("Bad URI scheme")); } @@ -432,7 +427,7 @@ ContactModelPimpl::updateTemporaryMessage(const QString& mes) } void -ContactModelPimpl::searchRingContact(const URI& query) +ContactModelPimpl::searchContact(const URI& query) { QString uriID = query.format(URI::Section::USER_INFO | URI::Section::HOSTNAME | URI::Section::PORT); @@ -459,23 +454,13 @@ ContactModelPimpl::searchRingContact(const URI& query) } else { updateTemporaryMessage(tr("Searching…")); - // Default searching - ConfigurationManager::instance().lookupName(linked.owner.id, "", uriID); - } -} - -void -ContactModelPimpl::jamsSearch(const URI& query) -{ - QString uriID = query.format(URI::Section::USER_INFO | URI::Section::HOSTNAME - | URI::Section::PORT); - if (query.isEmpty()) { - emit linked.modelUpdated(uriID); - updateTemporaryMessage(""); - return; + // If the username contains an @ it's an exact match + bool isJamsAccount = !linked.owner.confProperties.managerUri.isEmpty(); + if (isJamsAccount and not query.hasHostname()) + ConfigurationManager::instance().searchUser(linked.owner.id, uriID); + else + ConfigurationManager::instance().lookupName(linked.owner.id, "", uriID); } - updateTemporaryMessage(tr("Searching…")); - ConfigurationManager::instance().searchUser(linked.owner.id, uriID); } void -- GitLab