Files
RRJServer/InstructorsAndTrainees/messanger/messangercontroller.cpp

85 lines
2.1 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::slot_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);
}
}
void MessangerController::slot_InitMessanger(QList<Trainee> listTrainees)
{
for(MessangerWidget* widget : listWidgets)
{
widget->slot_InitMessanger(listTrainees);
}
}