TalkableFilter::FilterResult HideContactChatsTalkableFilter::filterChat(const Chat &chat) { if (chat.type() == "Contact" || chat.type() == "Simple") return Rejected; else return Undecided; }
Jid JabberResourceService::bestChatJid(const Chat &chat) const { if (!chat) return Jid{}; auto chatType = m_chatTypeManager->chatType(chat.type()); if (!chatType) return Jid{}; if (chatType->name() == "Contact") { Q_ASSERT(1 == chat.contacts().size()); return bestContactJid(chat.contacts().toContact()); } if (chatType->name() == "Room") { auto details = qobject_cast<ChatDetailsRoom *>(chat.details()); Q_ASSERT(details); return Jid::parse(details->room()); } return Jid{}; }
QXmppMessage::Type JabberChatService::chatMessageType(const Chat &chat, const QString &bareJid) const { auto chatType = ChatTypeManager::instance()->chatType(chat.type()); if (!chatType) return QXmppMessage::QXmppMessage::Normal; if (chatType->name() == "Room") return QXmppMessage::GroupChat; if (m_contactMessageTypes.contains(bareJid)) return m_contactMessageTypes.value(bareJid); else return QXmppMessage::Chat; }