Files
RRJServer/DB_IaT/InstructorsAndTrainees/messanger/messangerwidget.h
2024-12-19 12:40:52 +03:00

86 lines
2.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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