bugfix: send old messages to QTGUI

This commit is contained in:
semenov
2025-08-20 14:26:40 +03:00
parent b412559483
commit 472300c1d8
10 changed files with 34 additions and 24 deletions

View File

@@ -10,6 +10,7 @@ void ChatSystem::initialize(CommonClientHandler *commonClientHandler, DataParser
this->commonClientHandler = commonClientHandler;
this->dataParser = dataParser;
this->clientsMap = clientsMap;
clientNotSendedMessage = new QMap<QString,QQueue<ClientMessage>*>;
}
@@ -17,15 +18,13 @@ bool ChatSystem::sendTo(ClientMessage message)
{
QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(message.From,message.To,message.Text);
auto result = message.To.split("-");
foreach(int idSocket, clientsMap->keys())
{
ClientHandler *handler = clientsMap->value(idSocket);
QString userType = QString::number(static_cast<int>(handler->getClient()->getAccessType()));
if(handler->getClient()->getId() == result[0] &&
userType == result[1] &&
handler->getClient()->getTypeClient() != TypeClientAutorization::TYPE_QT_CLIENT)
if(handler->getClient()->getId() == message.To &&
handler->getClient()->getTypeClient() != TypeClientAutorization::TYPE_QT_CLIENT &&
handler->getClient()->getIsLoggedIn())
{
handler->sendXmlAnswer(byteArrayMsg, PacketType::TYPE_XMLANSWER);
QString str = "Msg From Client [" + message.From + " to " + message.To + "] : " + message.Text;
@@ -67,6 +66,7 @@ void ChatSystem::sendOldMessages(QString id)
if (clientNotSendedMessage->contains(id))
{
auto queue = clientNotSendedMessage->find(id).value();
Logger::instance().log("Send old Messages " + QString::number(queue->length()));
while (!queue->isEmpty())
{