mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
77 lines
1.9 KiB
C++
77 lines
1.9 KiB
C++
#include "messangercontroller.h"
|
|
|
|
MessangerController::MessangerController(ConnectorToServer* connectorToServer, QObject *parent) :
|
|
QObject(parent),
|
|
connectorToServer(connectorToServer),
|
|
currClientId("")
|
|
{
|
|
|
|
}
|
|
|
|
MessangerController::~MessangerController()
|
|
{
|
|
for(MessangerWidget* widget : listWidgets)
|
|
{
|
|
delete widget;
|
|
}
|
|
}
|
|
|
|
MessangerWidget *MessangerController::newWidget(QWidget *parent)
|
|
{
|
|
MessangerWidget *msgWdgt = new MessangerWidget(parent);
|
|
|
|
connect(msgWdgt, &MessangerWidget::signal_sendMessage, this, &MessangerController::slot_sendMessage);
|
|
connect(connectorToServer,&ConnectorToServer::signal_receiveMessage,msgWdgt,&MessangerWidget::slot_showMessage);
|
|
|
|
connect(this, &MessangerController::signal_traineeSelected, msgWdgt, &MessangerWidget::slot_traineeSelected);
|
|
connect(msgWdgt, &MessangerWidget::signal_tabMessengerChanged, this, &MessangerController::signal_tabMessengerChanged);
|
|
|
|
connect(this, &MessangerController::signal_InitMessanger, msgWdgt,&MessangerWidget::slot_InitMessanger);
|
|
|
|
msgWdgt->initialize(currClientId);
|
|
|
|
listWidgets.append(msgWdgt);
|
|
|
|
return msgWdgt;
|
|
}
|
|
|
|
void MessangerController::deleteWidget(MessangerWidget *msgWdgt)
|
|
{
|
|
for(int i = 0; i < listWidgets.count(); i++)
|
|
{
|
|
if(listWidgets.at(i) == msgWdgt)
|
|
{
|
|
delete msgWdgt;
|
|
listWidgets.removeAt(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
void MessangerController::initialize(QString id)
|
|
{
|
|
currClientId = id;
|
|
|
|
for(MessangerWidget* widget : listWidgets)
|
|
{
|
|
widget->initialize(currClientId);
|
|
}
|
|
}
|
|
|
|
void MessangerController::clear()
|
|
{
|
|
for(MessangerWidget* widget : listWidgets)
|
|
{
|
|
widget->clear();
|
|
}
|
|
}
|
|
|
|
void MessangerController::slot_sendMessage(ClientMessage clientMessage)
|
|
{
|
|
connectorToServer->slot_sendMessage(clientMessage);
|
|
|
|
for(MessangerWidget* widget : listWidgets)
|
|
{
|
|
widget->addMsgWidgetLocal(clientMessage.Text);
|
|
}
|
|
}
|