Мессенджер готов. Почти.

This commit is contained in:
2025-09-12 16:43:15 +03:00
parent 535c025276
commit 7022db1e5c
6 changed files with 91 additions and 42 deletions

View File

@@ -58,13 +58,13 @@ int MessangerWidget::getIDuserRemote()
void MessangerWidget::showSendedMessage(ClientMessage clientMessage)
{
if(userLocalGUI.getID() == clientMessage.fromId.toInt())
oneDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr);
oneDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr, userLocalGUI.getName());
}
void MessangerWidget::showReceivedMessage(ClientMessage clientMessage)
{
if(userRemote.getID() == clientMessage.fromId.toInt())
oneDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr);
oneDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr, userRemote.getName());
}
void MessangerWidget::addTabDialogMessenger(User user)

View File

@@ -16,6 +16,8 @@ MsgWidget::MsgWidget(QString avatar, AligneAvatar aligneAvatar, int width, QWidg
setAligneAvatarRight();
setWidth(width);
ui->lblAvatar->setObjectName("MsgWidgetLblAvatar");
}
MsgWidget::~MsgWidget()
@@ -28,15 +30,23 @@ void MsgWidget::setAligneAvatarLeft()
ui->horizontalLayout_Main->removeItem(ui->verticalLayout_Avatar);
ui->horizontalLayout_Main->removeItem(ui->verticalLayout_Text);
ui->horizontalLayout_Main->removeItem(ui->horizontalLayout_Add);
ui->horizontalLayout_EditText->removeItem(ui->horizontalSpacer_EditText);
ui->horizontalLayout_EditText->removeWidget(ui->editText);
ui->horizontalLayout_Main->addLayout(ui->verticalLayout_Avatar);
ui->horizontalLayout_Main->addLayout(ui->verticalLayout_Text);
ui->horizontalLayout_Main->addLayout(ui->horizontalLayout_Add);
ui->editText->setObjectName("MsgWidgetEditTextLocal");
ui->lblTime->setObjectName("MsgWidgetLblTimeLocal");
ui->horizontalLayout_EditText->addWidget(ui->editText);
ui->horizontalLayout_EditText->addItem(ui->horizontalSpacer_EditText);
ui->editText->setObjectName("MsgWidgetEditTextRemote");
ui->lblTime->setObjectName("MsgWidgetLblTimeRemote");
ui->lblName->setObjectName("MsgWidgetLblNameRemote");
ui->lblTime->setAlignment(Qt::AlignLeft);
ui->lblName->setAlignment(Qt::AlignLeft | Qt::AlignBottom);
//ui->editText->setAlignment(Qt::AlignLeft);
}
void MsgWidget::setAligneAvatarRight()
@@ -44,15 +54,23 @@ void MsgWidget::setAligneAvatarRight()
ui->horizontalLayout_Main->removeItem(ui->verticalLayout_Avatar);
ui->horizontalLayout_Main->removeItem(ui->verticalLayout_Text);
ui->horizontalLayout_Main->removeItem(ui->horizontalLayout_Add);
ui->horizontalLayout_EditText->removeItem(ui->horizontalSpacer_EditText);
ui->horizontalLayout_EditText->removeWidget(ui->editText);
ui->horizontalLayout_Main->addLayout(ui->horizontalLayout_Add);
ui->horizontalLayout_Main->addLayout(ui->verticalLayout_Text);
ui->horizontalLayout_Main->addLayout(ui->verticalLayout_Avatar);
ui->editText->setObjectName("MsgWidgetEditTextRemote");
ui->lblTime->setObjectName("MsgWidgetLblTimeRemote");
ui->horizontalLayout_EditText->addItem(ui->horizontalSpacer_EditText);
ui->horizontalLayout_EditText->addWidget(ui->editText);
ui->editText->setObjectName("MsgWidgetEditTextLocal");
ui->lblTime->setObjectName("MsgWidgetLblTimeLocal");
ui->lblName->setObjectName("MsgWidgetLblNameLocal");
ui->lblTime->setAlignment(Qt::AlignRight);
ui->lblName->setAlignment(Qt::AlignRight | Qt::AlignBottom);
//ui->editText->setAlignment(Qt::AlignRight);
}
@@ -78,6 +96,11 @@ void MsgWidget::setTime(QString timeStr)
ui->lblTime->setText(timeStr);
}
void MsgWidget::setName(QString name)
{
ui->lblName->setText(name);
}
void MsgWidget::on_editText_textChanged()
{
QString text = ui->editText->toPlainText();
@@ -101,19 +124,19 @@ void MsgWidget::on_editText_textChanged()
//if(ost > 0)
cnt += 1;
this->setFixedHeight(textRect1str.height() * cnt + (ost? textRect1str.height() : 0) + X + 20 + 30);
this->setFixedHeight(textRect1str.height() * cnt + (ost? textRect1str.height() : 0) + X + 20 + 30 + 30);
ui->editText->setFixedHeight(textRect1str.height() * cnt + (ost? textRect1str.height() : 0) + X);
}
else
{
this->setFixedHeight(textRect.height() + X + 20 + 30);
this->setFixedHeight(textRect.height() + X + 20 + 30 + 30);
ui->editText->setFixedHeight(textRect.height() + X);
}
}
else
{//В одну строку
this->setFixedHeight(textRect.height() + X + 20 + 30);
this->setFixedHeight(textRect.height() + X + 20 + 30 + 30);
ui->editText->setFixedWidth(textRect.width() + X);
ui->editText->setFixedHeight(textRect.height() + X);
}

View File

@@ -30,6 +30,7 @@ public:
void setText(QString text);
void setTime(QString timeStr);
void setName(QString name);
private:
void setAligneAvatarLeft();

View File

@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>400</width>
<height>236</height>
<height>255</height>
</rect>
</property>
<property name="sizePolicy">
@@ -67,33 +67,57 @@
<item>
<layout class="QVBoxLayout" name="verticalLayout_Text">
<item>
<widget class="QTextEdit" name="editText">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustIgnored</enum>
</property>
<property name="readOnly">
<bool>true</bool>
<widget class="QLabel" name="lblName">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_EditText">
<item>
<spacer name="horizontalSpacer_EditText">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QTextEdit" name="editText">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Tahoma</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustIgnored</enum>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="lblTime">
<property name="font">

View File

@@ -20,17 +20,17 @@ OneDialogMessenger::~OneDialogMessenger()
}
void OneDialogMessenger::addMsgWidgetLocal(QString text, QString timeStr)
void OneDialogMessenger::addMsgWidgetLocal(QString text, QString timeStr, QString name)
{
addMsgWidget(text, timeStr, MsgWidget::DirectionMsg::Outgoing);
addMsgWidget(text, timeStr, MsgWidget::DirectionMsg::Outgoing, name);
}
void OneDialogMessenger::addMsgWidgetRemote(QString text, QString timeStr)
void OneDialogMessenger::addMsgWidgetRemote(QString text, QString timeStr, QString name)
{
addMsgWidget(text, timeStr, MsgWidget::DirectionMsg::Incoming);
addMsgWidget(text, timeStr, MsgWidget::DirectionMsg::Incoming, name);
}
void OneDialogMessenger::addMsgWidget(QString text, QString timeStr, MsgWidget::DirectionMsg direction)
void OneDialogMessenger::addMsgWidget(QString text, QString timeStr, MsgWidget::DirectionMsg direction, QString name)
{
QListWidgetItem *listWidgetItem = new QListWidgetItem();
@@ -74,6 +74,7 @@ void OneDialogMessenger::addMsgWidget(QString text, QString timeStr, MsgWidget::
msgWidget->setText(text);
msgWidget->setTime(timeStr);
msgWidget->setName(name);
//Корректировка высоты item
listWidgetItem->setSizeHint (QSize(10, msgWidget->height()));

View File

@@ -15,11 +15,11 @@ public:
int getUserRemoteId() {return userRemote.getID();}
void addMsgWidgetLocal(QString text, QString timeStr = "");
void addMsgWidgetRemote(QString text, QString timeStr = "");
void addMsgWidgetLocal(QString text, QString timeStr = "", QString name = "");
void addMsgWidgetRemote(QString text, QString timeStr = "", QString name = "");
private:
void addMsgWidget(QString text, QString timeStr, MsgWidget::DirectionMsg direction);
void addMsgWidget(QString text, QString timeStr, MsgWidget::DirectionMsg direction, QString name = "");
private:
User userLocalGUI;