Files
RRJServer/DB_IaT/InstructorsAndTrainees/messanger/msgwidget.cpp
krivoshein 5e32b53f1b A
2024-12-20 16:20:55 +03:00

82 lines
2.2 KiB
C++

#include "msgwidget.h"
#include "ui_msgwidget.h"
#include <QSizePolicy>
MsgWidget::MsgWidget(QString avatar, AligneAvatar aligneAvatar, int width, QWidget *parent) :
QWidget(parent),
ui(new Ui::MsgWidget)
{
ui->setupUi(this);
setAvatar(avatar);
if(aligneAvatar == AligneAvatar::Left)
setAligneAvatarLeft();
else
setAligneAvatarRight();
setWidth(width);
}
MsgWidget::~MsgWidget()
{
delete ui;
}
void MsgWidget::setAligneAvatarLeft()
{
ui->horizontalLayout->removeWidget(ui->textEdit);
ui->horizontalLayout->removeItem(ui->verticalLayout);
ui->horizontalLayout->removeItem(ui->horizontalLayout_2);
ui->horizontalLayout->addLayout(ui->verticalLayout);
ui->horizontalLayout->addWidget(ui->textEdit);
ui->horizontalLayout->addLayout(ui->horizontalLayout_2);
ui->textEdit->setObjectName("MsgWidgetLocal");
}
void MsgWidget::setAligneAvatarRight()
{
ui->horizontalLayout->removeWidget(ui->textEdit);
ui->horizontalLayout->removeItem(ui->verticalLayout);
ui->horizontalLayout->removeItem(ui->horizontalLayout_2);
ui->horizontalLayout->addLayout(ui->horizontalLayout_2);
ui->horizontalLayout->addWidget(ui->textEdit);
ui->horizontalLayout->addLayout(ui->verticalLayout);
ui->textEdit->setObjectName("MsgWidgetRemote");
}
void MsgWidget::setAvatar(QString avatar)
{
QPixmap pix(avatar);
ui->label->setPixmap( pix.scaled(32,32) );
}
void MsgWidget::setWidth(int width)
{
this->setFixedWidth(width);
ui->textEdit->setFixedWidth(width - 200);
}
void MsgWidget::setText(QString text)
{
ui->textEdit->setText(text);
}
void MsgWidget::on_textEdit_textChanged()
{
QString text = ui->textEdit->toPlainText();
QFontMetrics metricsFont(ui->textEdit->font()); //метрики шрифта
QRect textRect = metricsFont.boundingRect(QRect(0, 0, 0, 0), 0 , text); //геометрические параметры текста (высота/ширина в пикселях)
int X = 10; // отступы
this->setFixedHeight(textRect.height()+X + 20);
ui->textEdit->setFixedWidth(textRect.width()+X);
ui->textEdit->setFixedHeight(textRect.height()+X);
}