mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
86 lines
2.5 KiB
C++
86 lines
2.5 KiB
C++
#ifndef MESSANGERWIDGET_H
|
||
#define MESSANGERWIDGET_H
|
||
|
||
#include <QWidget>
|
||
#include <QListWidget>
|
||
#include <QTranslator>
|
||
#include <trainee.h>
|
||
#include "Datas.h"
|
||
|
||
class TabDialogMessenger
|
||
{
|
||
public:
|
||
TabDialogMessenger();
|
||
TabDialogMessenger(int indexTab, QListWidget* listWidget, QString login)
|
||
{
|
||
this->indexTab = indexTab;
|
||
this->listWidget = listWidget;
|
||
this->login = login;
|
||
};
|
||
|
||
QString getLogin() {return login;};
|
||
QListWidget* getListWidget() {return listWidget;};
|
||
int getIndexTab() {return indexTab;};
|
||
|
||
private:
|
||
QString login = "";
|
||
int indexTab = 0;
|
||
QListWidget* listWidget = nullptr;
|
||
};
|
||
|
||
namespace Ui {
|
||
class MessangerWidget;
|
||
}
|
||
|
||
class MessangerWidget : public QWidget
|
||
{
|
||
Q_OBJECT
|
||
|
||
public:
|
||
explicit MessangerWidget(QWidget *parent = nullptr);
|
||
~MessangerWidget();
|
||
|
||
protected:
|
||
// Метод получения событий
|
||
// В нём будет производиться проверка события смены перевода приложения
|
||
void changeEvent(QEvent * event) override;
|
||
|
||
public:
|
||
enum ETypeMsg{fromClient, toClient};
|
||
|
||
void addMsg(Trainee trainee, QString text, ETypeMsg typeMsg);
|
||
void addTabDialogMessenger(Trainee trainee);
|
||
|
||
private slots:
|
||
void on_btnSend_clicked();
|
||
void on_tabWidget_currentChanged(int index);
|
||
|
||
signals:
|
||
//сигнал о готовности нового сообщения на отправку клиенту
|
||
void signal_msgToClientReady(QString login, QString text);
|
||
//сигнал об изменении вкладки диалога (TabDialogMessenger)
|
||
void signal_tabMessengerChanged(QString login);
|
||
|
||
public slots:
|
||
//слот обработки сигнала о смене языка
|
||
void slot_LanguageChanged(QString language);
|
||
//слот обработки сигнала об инициализации мессенджера
|
||
void slot_InitMessanger(QList<Trainee> listTrainees);
|
||
//слот обработки сигнала о выборе обучаемого
|
||
void slot_traineeSelected(QString login);
|
||
//слот о приходе нового сообщения от клиента
|
||
void slot_msgFromClientReady(QString login, QString text);
|
||
|
||
private:
|
||
virtual void keyPressEvent(QKeyEvent *event) override;
|
||
|
||
private:
|
||
QList <TabDialogMessenger> listTabDialogMessenger;
|
||
QList<Trainee> listTrainees;
|
||
QString currLogin = "";
|
||
Ui::MessangerWidget *ui;
|
||
QTranslator qtLanguageTranslator;
|
||
};
|
||
|
||
#endif // MESSANGERWIDGET_H
|