bool MultiUserChat::sendMessage(const Message &AMessage, const QString &AToNick) { if (isOpen()) { Jid toJid = FRoomJid; toJid.setResource(AToNick); Message message = AMessage; message.setTo(toJid.full()); message.setType(AToNick.isEmpty() ? Message::GroupChat : Message::Chat); if (FMessageProcessor) { if (FMessageProcessor->sendMessage(FStreamJid,message,IMessageProcessor::DirectionOut)) return true; else LOG_STRM_WARNING(FStreamJid,QString("Failed to send message to conference, room=%1").arg(FRoomJid.bare())); } else if (FStanzaProcessor) { if (FStanzaProcessor->sendStanzaOut(FStreamJid, message.stanza())) { emit messageSent(message); return true; } else { LOG_STRM_WARNING(FStreamJid,QString("Failed to send message to conference, room=%1").arg(FRoomJid.bare())); } } } return false; }