void lmcChatRoomWindow::sendMessage(void) { if(ui.txtMessage->document()->isEmpty()) return; if(bConnected) { QString szHtmlMessage(ui.txtMessage->toHtml()); encodeMessage(&szHtmlMessage); QTextDocument docMessage; docMessage.setHtml(szHtmlMessage); QString szMessage = docMessage.toPlainText(); QFont font = ui.txtMessage->font(); font.setPointSize(ui.txtMessage->fontPointSize()); MessageType type = groupMode ? MT_GroupMessage : MT_PublicMessage; XmlMessage xmlMessage; xmlMessage.addHeader(XN_TIME, QString::number(QDateTime::currentDateTime().toMSecsSinceEpoch())); xmlMessage.addData(XN_FONT, font.toString()); xmlMessage.addData(XN_COLOR, messageColor.name()); xmlMessage.addData(XN_MESSAGE, szMessage); if(groupMode) { xmlMessage.addData(XN_THREAD, threadId); xmlMessage.addData(XN_GROUPMSGOP, GroupMsgOpNames[GMO_Message]); } appendMessageLog(type, &localId, &localName, &xmlMessage); if(groupMode) { QHash<QString, QString>::const_iterator index = peerIds.constBegin(); while (index != peerIds.constEnd()) { QString userId = index.value(); emit messageSent(type, &userId, &xmlMessage); index++; } } else emit messageSent(type, NULL, &xmlMessage); } else appendMessageLog(MT_Error, NULL, NULL, NULL); ui.txtMessage->clear(); ui.txtMessage->setFocus(); }
// send the broadcast message to all selected users void lmcBroadcastWindow::sendMessage(void) { // return if text box is empty if(ui.txtMessage->document()->isEmpty()) return; // send only if connected if(bConnected) { QString szHtmlMessage(ui.txtMessage->toHtml()); encodeMessage(&szHtmlMessage); QTextDocument docMessage; docMessage.setHtml(szHtmlMessage); QString szMessage(docMessage.toPlainText()); // send broadcast int sendCount = 0; XmlMessage xmlMessage; xmlMessage.addData(XN_BROADCAST, szMessage); for(int index = 0; index < ui.tvUserList->topLevelItemCount(); index++) { for(int childIndex = 0; childIndex < ui.tvUserList->topLevelItem(index)->childCount(); childIndex++) { QTreeWidgetItem* item = ui.tvUserList->topLevelItem(index)->child(childIndex); if(item->checkState(0) == Qt::Checked) { QString szUserId = item->data(0, IdRole).toString(); emit messageSent(MT_Broadcast, &szUserId, &xmlMessage); sendCount++; } } } if(sendCount == 0) { QMessageBox::warning(this, tr("No recipient selected"), tr("Please select at least one recipient to send a broadcast.")); return; } ui.txtMessage->clear(); close(); } }