Отправка сообщений по Enter

This commit is contained in:
2025-10-15 16:48:23 +03:00
parent 79c5354f58
commit 2cf219ce94
4 changed files with 49 additions and 37 deletions

View File

@@ -11,6 +11,7 @@ kanban-plugin: board
## Completed ## Completed
- [ ] Введение логина только латиницей и цифрами
- [ ] Кнопка открытия Персональной карты обучаемого - [ ] Кнопка открытия Персональной карты обучаемого
- [ ] Блокировка авторизации не работает при входе в редакторы И/О - [ ] Блокировка авторизации не работает при входе в редакторы И/О
- [ ] Добавить текущий статус задачи в "Проверке задачи" (AMM, FIM) - [ ] Добавить текущий статус задачи в "Проверке задачи" (AMM, FIM)
@@ -57,7 +58,6 @@ kanban-plugin: board
## GUI общие ## GUI общие
- [ ] Введение логина только латиницей и цифрами
- [ ] Унифицировать терминологию - [ ] Унифицировать терминологию
- [ ] Текстовый поиск в задачах - [ ] Текстовый поиск в задачах

View File

@@ -11,16 +11,25 @@
MessangerWidget::MessangerWidget(QWidget *parent) : MessangerWidget::MessangerWidget(QWidget *parent) :
QWidget(parent), QWidget(parent),
oneDialogMessenger(nullptr), oneDialogMessenger(nullptr),
ui(new Ui::MessangerWidget) ui(new Ui::MessangerWidget),
myTextEdit(nullptr)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->btnSend->setObjectName("btnSend"); ui->btnSend->setObjectName("btnSend");
ui->editMsg->setObjectName("editMsg");
ui->lblUser->setObjectName("MessangerWidgetLblUser"); ui->lblUser->setObjectName("MessangerWidgetLblUser");
ui->lblAvatar->setObjectName("MessangerWidgetLblAvatar"); ui->lblAvatar->setObjectName("MessangerWidgetLblAvatar");
ui->lblLoggedIn->setObjectName("MessangerWidgetLblLoggedIn"); 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() MessangerWidget::~MessangerWidget()
@@ -126,22 +135,14 @@ void MessangerWidget::updateHeader(User user)
void MessangerWidget::on_btnSend_clicked() void MessangerWidget::on_btnSend_clicked()
{ {
QString text = ui->editMsg->toPlainText(); QString text = myTextEdit->toPlainText();
QString from = QString::number(userLocalGUI.getID()); QString from = QString::number(userLocalGUI.getID());
QString to = QString::number(userRemote.getID()); QString to = QString::number(userRemote.getID());
ClientMessage message = ClientMessage(from, to, text); ClientMessage message = ClientMessage(from, to, text);
emit signal_sendMessage(message); emit signal_sendMessage(message);
ui->editMsg->clear(); myTextEdit->clear();
}
void MessangerWidget::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Return)
{
ui->btnSend->click();
}
} }
void MessangerWidget::changeEvent(QEvent *event) void MessangerWidget::changeEvent(QEvent *event)
@@ -152,3 +153,20 @@ void MessangerWidget::changeEvent(QEvent *event)
ui->retranslateUi(this); // переведём окно заново 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);
}

View File

@@ -6,7 +6,21 @@
#include <user.h> #include <user.h>
#include "Datas.h" #include "Datas.h"
#include "tabdialogmessenger.h" #include "tabdialogmessenger.h"
#include <QTextEdit>
class MyTextEdit : public QTextEdit
{
Q_OBJECT
public:
MyTextEdit(){};
signals:
void signal_pressEnter();
private:
virtual void keyPressEvent(QKeyEvent *event) override;
};
namespace Ui { namespace Ui {
class MessangerWidget; class MessangerWidget;
@@ -40,9 +54,6 @@ signals:
//сигнал о готовности нового сообщения на отправку клиенту //сигнал о готовности нового сообщения на отправку клиенту
void signal_sendMessage(ClientMessage clientMessage); void signal_sendMessage(ClientMessage clientMessage);
private:
virtual void keyPressEvent(QKeyEvent *event) override;
protected: protected:
void changeEvent(QEvent * event) override; void changeEvent(QEvent * event) override;
@@ -55,6 +66,8 @@ private:
private: private:
Ui::MessangerWidget *ui; Ui::MessangerWidget *ui;
MyTextEdit* myTextEdit;
}; };
#endif // MESSANGERWIDGET_H #endif // MESSANGERWIDGET_H

View File

@@ -102,26 +102,7 @@
<enum>QLayout::SetDefaultConstraint</enum> <enum>QLayout::SetDefaultConstraint</enum>
</property> </property>
<item> <item>
<widget class="QTextEdit" name="editMsg"> <layout class="QHBoxLayout" name="horizontalLayout_EditMsg"/>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
</widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="btnSend"> <widget class="QToolButton" name="btnSend">