From 8bb2aef5ccef00d9aeb87cec4859942b73e6182e Mon Sep 17 00:00:00 2001 From: krivoshein Date: Fri, 12 Sep 2025 12:09:30 +0300 Subject: [PATCH] =?UTF-8?q?Messenger=20=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20?= =?UTF-8?q?=D1=82=D0=B0=D0=B1=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messanger/messangerwidget.cpp | 60 +++++++++------ .../messanger/messangerwidget.h | 4 +- .../messanger/messangerwidget.ui | 74 ++++++++++--------- .../trainees/personalcardtrainee.ui | 8 +- 4 files changed, 83 insertions(+), 63 deletions(-) diff --git a/InstructorsAndTrainees/messanger/messangerwidget.cpp b/InstructorsAndTrainees/messanger/messangerwidget.cpp index 1d93314..4222735 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.cpp +++ b/InstructorsAndTrainees/messanger/messangerwidget.cpp @@ -9,22 +9,21 @@ MessangerWidget::MessangerWidget(QWidget *parent) : QWidget(parent), - tabDialogMessenger(nullptr), + oneDialogMessenger(nullptr), currGUIclientId(""), ui(new Ui::MessangerWidget) { ui->setupUi(this); - ui->tabWidget->removeTab(1); - ui->tabWidget->removeTab(0); - ui->btnSend->setObjectName("btnSend"); ui->editMsg->setObjectName("editMsg"); + + ui->lblUser->setObjectName("lblUser"); } MessangerWidget::~MessangerWidget() { - delete tabDialogMessenger; + delete oneDialogMessenger; delete ui; } @@ -41,8 +40,8 @@ void MessangerWidget::reinitMessangerWidget(User user) { userRemote = user; - //Обновляем статус залогинивания - updateLoggedIn(userRemote.getLoggedIn()); + //Обновляем заголовок + updateHeader(userRemote); } } @@ -59,21 +58,21 @@ int MessangerWidget::getIDuserRemote() void MessangerWidget::showSendedMessage(ClientMessage clientMessage) { if(currGUIclientId == clientMessage.fromId) - tabDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr); + oneDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr); } void MessangerWidget::showReceivedMessage(ClientMessage clientMessage) { if(QString::number(userRemote.getID()) == clientMessage.fromId) - tabDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr); + oneDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr); } void MessangerWidget::addTabDialogMessenger(User user) { - if(!tabDialogMessenger) + if(!oneDialogMessenger) {//Диалога еще не существует - tabDialogMessenger = new OneDialogMessenger(QString::number(user.getID()), user.getTypeUserDB(), this); + oneDialogMessenger = new OneDialogMessenger(QString::number(user.getID()), user.getTypeUserDB(), this); //Добавляем новую вкладку диалога QString typeUserStr = ""; @@ -81,30 +80,49 @@ void MessangerWidget::addTabDialogMessenger(User user) typeUserStr = tr("Trainee"); else if(user.getTypeUserDB() == User::TypeUserDBInstructor) typeUserStr = tr("Instructor"); - int index = ui->tabWidget->addTab(tabDialogMessenger, typeUserStr + ": " + user.getName() + " (" + user.getLogin() + ")"); + //int index = ui->tabWidget->addTab(oneDialogMessenger, typeUserStr + ": " + user.getName() + " (" + user.getLogin() + ")"); - //Обновляем статус залогинивания - updateLoggedIn(user.getLoggedIn()); + ui->verticalLayout_ListMsg->addWidget(oneDialogMessenger); + + //Обновляем заголовок + updateHeader(user); } else {//Диалог уже существует //Проверяем наличие диалога именно с этим клиентом - if(tabDialogMessenger->getUserId() == user.getID()) + if(oneDialogMessenger->getUserId() == user.getID()) { - //Обновляем статус залогинивания - updateLoggedIn(user.getLoggedIn()); + //Обновляем заголовок + updateHeader(user); } } } -void MessangerWidget::updateLoggedIn(bool loggedIn) +void MessangerWidget::updateHeader(User user) { //Обновляем статус залогинивания - if(loggedIn) - ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGreen.png")); + if(user.getLoggedIn()) + { + //ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGreen.png")); + + ui->lblLoggedIn->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); + } else - ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGray.png")); + { + //ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGray.png")); + + ui->lblLoggedIn->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png"))); + } + + QString typeUserStr = ""; + if(user.getTypeUserDB() == User::TypeUserDBTrainee) + typeUserStr = tr("Trainee"); + else if(user.getTypeUserDB() == User::TypeUserDBInstructor) + typeUserStr = tr("Instructor"); + QString fullName = typeUserStr + ": " + user.getName() + " (" + user.getLogin() + ")"; + + ui->lblUser->setText(fullName); } void MessangerWidget::on_btnSend_clicked() diff --git a/InstructorsAndTrainees/messanger/messangerwidget.h b/InstructorsAndTrainees/messanger/messangerwidget.h index 4e347b2..bae57f0 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.h +++ b/InstructorsAndTrainees/messanger/messangerwidget.h @@ -31,7 +31,7 @@ public: private: void addTabDialogMessenger(User user); - void updateLoggedIn(bool loggedIn); + void updateHeader(User user); private slots: void on_btnSend_clicked(); @@ -47,7 +47,7 @@ protected: void changeEvent(QEvent * event) override; private: - OneDialogMessenger* tabDialogMessenger; + OneDialogMessenger* oneDialogMessenger; User userRemote; QString currGUIclientId; //id этого клиента diff --git a/InstructorsAndTrainees/messanger/messangerwidget.ui b/InstructorsAndTrainees/messanger/messangerwidget.ui index 8991813..d42b54b 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.ui +++ b/InstructorsAndTrainees/messanger/messangerwidget.ui @@ -23,43 +23,51 @@ - + QLayout::SetDefaultConstraint - - - - 0 - 0 - - - - - 0 - 0 - - - - - 12 - - - - 0 - - - - Tab 1 - - - - - Tab 2 - - - + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/resources/icons/circleGray.png + + + + + + + TextLabel + + + + + + + diff --git a/InstructorsAndTrainees/trainees/personalcardtrainee.ui b/InstructorsAndTrainees/trainees/personalcardtrainee.ui index 03a1473..d4945d2 100644 --- a/InstructorsAndTrainees/trainees/personalcardtrainee.ui +++ b/InstructorsAndTrainees/trainees/personalcardtrainee.ui @@ -175,13 +175,7 @@ - - - - - - - +