From 2cf219ce94ed8bc6f107cbd047081418d2fd78f6 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 15 Oct 2025 16:48:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=BF=D0=BE=20Enter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DOCS/Андрей/Board.md | 2 +- .../messanger/messangerwidget.cpp | 44 +++++++++++++------ .../messanger/messangerwidget.h | 19 ++++++-- .../messanger/messangerwidget.ui | 21 +-------- 4 files changed, 49 insertions(+), 37 deletions(-) diff --git a/DOCS/Андрей/Board.md b/DOCS/Андрей/Board.md index 1f8fa7c..9173dcc 100644 --- a/DOCS/Андрей/Board.md +++ b/DOCS/Андрей/Board.md @@ -11,6 +11,7 @@ kanban-plugin: board ## Completed +- [ ] Введение логина только латиницей и цифрами - [ ] Кнопка открытия Персональной карты обучаемого - [ ] Блокировка авторизации не работает при входе в редакторы И/О - [ ] Добавить текущий статус задачи в "Проверке задачи" (AMM, FIM) @@ -57,7 +58,6 @@ kanban-plugin: board ## GUI общие -- [ ] Введение логина только латиницей и цифрами - [ ] Унифицировать терминологию - [ ] Текстовый поиск в задачах diff --git a/InstructorsAndTrainees/messanger/messangerwidget.cpp b/InstructorsAndTrainees/messanger/messangerwidget.cpp index a9ccc1f..c5504f9 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.cpp +++ b/InstructorsAndTrainees/messanger/messangerwidget.cpp @@ -11,16 +11,25 @@ MessangerWidget::MessangerWidget(QWidget *parent) : QWidget(parent), oneDialogMessenger(nullptr), - ui(new Ui::MessangerWidget) + ui(new Ui::MessangerWidget), + myTextEdit(nullptr) { ui->setupUi(this); - ui->btnSend->setObjectName("btnSend"); - ui->editMsg->setObjectName("editMsg"); + ui->btnSend->setObjectName("btnSend"); ui->lblUser->setObjectName("MessangerWidgetLblUser"); ui->lblAvatar->setObjectName("MessangerWidgetLblAvatar"); ui->lblLoggedIn->setObjectName("MessangerWidgetLblLoggedIn"); + + myTextEdit = new MyTextEdit(); + connect(myTextEdit, &MyTextEdit::signal_pressEnter, this, &MessangerWidget::on_btnSend_clicked); + + myTextEdit->setObjectName("editMsg"); + myTextEdit->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); + myTextEdit->setFixedHeight(65); + + ui->horizontalLayout_EditMsg->addWidget(myTextEdit); } MessangerWidget::~MessangerWidget() @@ -126,22 +135,14 @@ void MessangerWidget::updateHeader(User user) void MessangerWidget::on_btnSend_clicked() { - QString text = ui->editMsg->toPlainText(); + QString text = myTextEdit->toPlainText(); QString from = QString::number(userLocalGUI.getID()); QString to = QString::number(userRemote.getID()); ClientMessage message = ClientMessage(from, to, text); emit signal_sendMessage(message); - ui->editMsg->clear(); -} - -void MessangerWidget::keyPressEvent(QKeyEvent *event) -{ - if (event->key() == Qt::Key_Return) - { - ui->btnSend->click(); - } + myTextEdit->clear(); } void MessangerWidget::changeEvent(QEvent *event) @@ -152,3 +153,20 @@ void MessangerWidget::changeEvent(QEvent *event) ui->retranslateUi(this); // переведём окно заново } } + +void MyTextEdit::keyPressEvent(QKeyEvent *event) +{ + if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) + { + if(QApplication::keyboardModifiers().testFlag(Qt::ControlModifier)) + { + this->insertPlainText("\n"); + } + else + { + emit signal_pressEnter(); + return; + } + } + QTextEdit::keyPressEvent(event); +} diff --git a/InstructorsAndTrainees/messanger/messangerwidget.h b/InstructorsAndTrainees/messanger/messangerwidget.h index 770c7da..a2e725e 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.h +++ b/InstructorsAndTrainees/messanger/messangerwidget.h @@ -6,7 +6,21 @@ #include #include "Datas.h" #include "tabdialogmessenger.h" +#include +class MyTextEdit : public QTextEdit +{ + Q_OBJECT + +public: + MyTextEdit(){}; + +signals: + void signal_pressEnter(); + +private: + virtual void keyPressEvent(QKeyEvent *event) override; +}; namespace Ui { class MessangerWidget; @@ -40,9 +54,6 @@ signals: //сигнал о готовности нового сообщения на отправку клиенту void signal_sendMessage(ClientMessage clientMessage); -private: - virtual void keyPressEvent(QKeyEvent *event) override; - protected: void changeEvent(QEvent * event) override; @@ -55,6 +66,8 @@ private: private: Ui::MessangerWidget *ui; + + MyTextEdit* myTextEdit; }; #endif // MESSANGERWIDGET_H diff --git a/InstructorsAndTrainees/messanger/messangerwidget.ui b/InstructorsAndTrainees/messanger/messangerwidget.ui index 88234f4..04b4c7d 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.ui +++ b/InstructorsAndTrainees/messanger/messangerwidget.ui @@ -102,26 +102,7 @@ QLayout::SetDefaultConstraint - - - - 0 - 0 - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - +