Files
RRJServer/InstructorsAndTrainees/messanger/tabdialogmessenger.cpp
2025-09-11 15:23:26 +03:00

70 lines
1.8 KiB
C++

#include <QScrollBar>
#include "tabdialogmessenger.h"
#include "msgwidget.h"
OneDialogMessenger::OneDialogMessenger(QString login , QString userId, QWidget *parent):
QListWidget(parent),
login(""),
userId("")
{
this->userId = userId;
this->login = login;
setWordWrap(true);
setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOn);
}
OneDialogMessenger::~OneDialogMessenger()
{
}
void OneDialogMessenger::addMsgWidgetLocal(QString text, QString timeStr)
{
addMsgWidget(text, timeStr, MsgWidget::DirectionMsg::Outgoing);
}
void OneDialogMessenger::addMsgWidgetRemote(QString text, QString timeStr)
{
addMsgWidget(text, timeStr, MsgWidget::DirectionMsg::Incoming);
}
void OneDialogMessenger::addMsgWidget(QString text, QString timeStr, MsgWidget::DirectionMsg direction)
{
QListWidgetItem *listWidgetItem = new QListWidgetItem();
QString avatar = "";
MsgWidget::AligneAvatar aligneAvatar = MsgWidget::AligneAvatar::Left;
//TODO уточнить аватарки!
if(direction == MsgWidget::DirectionMsg::Outgoing)
{
avatar = ":/resources/icons/instructor.png";
aligneAvatar = MsgWidget::AligneAvatar::Left;
}
else
{
avatar = ":/resources/icons/trainee.png";
aligneAvatar = MsgWidget::AligneAvatar::Right;
}
int widthW = width();
int widthSB = verticalScrollBar()->size().width();
//TODO Времянка
widthW = 450;
MsgWidget *msgWidget = new MsgWidget(avatar, aligneAvatar, widthW - widthSB);
addItem(listWidgetItem);
setItemWidget(listWidgetItem, msgWidget);
msgWidget->setText(text);
msgWidget->setTime(timeStr);
//Корректировка высоты item
listWidgetItem->setSizeHint (QSize(10, msgWidget->height()));
scrollToItem(listWidgetItem);
}