diff --git a/src/conversationlistmodel.cpp b/src/conversationlistmodel.cpp index a14f1818b14ddee919703ff61f6e116d658fb48a..4f896bcaf7e377c1f03725bafd5514e93f62a107 100644 --- a/src/conversationlistmodel.cpp +++ b/src/conversationlistmodel.cpp @@ -107,12 +107,15 @@ ConversationListProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex& s auto registeredName = index.data(ConversationList::Role::RegisteredName).toString(); auto itemProfileType = index.data(ConversationList::Role::ContactType).toInt(); auto typeFilter = static_cast<profile::Type>(itemProfileType) == currentTypeFilter_; + bool match {false}; if (index.data(ConversationList::Role::IsBanned).toBool()) { - return typeFilter - && (rx.exactMatch(uri) || rx.exactMatch(alias) || rx.exactMatch(registeredName)); + match = !rx.isEmpty() + && (rx.exactMatch(uri) || rx.exactMatch(alias) || rx.exactMatch(registeredName)); + } else { + match = (rx.indexIn(uri) != -1 || rx.indexIn(alias) != -1 + || rx.indexIn(registeredName) != -1); } - return typeFilter - && (rx.indexIn(uri) != -1 || rx.indexIn(alias) != -1 || rx.indexIn(registeredName) != -1); + return typeFilter && match; } bool