46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
#include "message.h"
|
|
#include <Qt>
|
|
|
|
Message::Message(const QString &msg, const QDateTime &dt,
|
|
const Direction dir, QListWidget *const list,
|
|
QWidget *const parent) :
|
|
QWidget(parent)
|
|
{
|
|
ui.setupUi(this);
|
|
ui.edit->setVisible(false);
|
|
ui.quote->setVisible(false);
|
|
ui.retry->setVisible(false);
|
|
|
|
switch (dir)
|
|
{
|
|
case In:
|
|
ui.in_msg->setText(msg);
|
|
ui.out_msg->setVisible(false);
|
|
ui.time->setAlignment(Qt::AlignLeft);
|
|
break;
|
|
|
|
case Out:
|
|
ui.out_msg->setText(msg);
|
|
ui.in_msg->setVisible(false);
|
|
ui.time->setAlignment(Qt::AlignRight);
|
|
break;
|
|
}
|
|
|
|
ui.time->setText(dt.toString("ddd MMMM d yyyy hh:mm:ss"));
|
|
QListWidgetItem::setSizeHint(QWidget::sizeHint());
|
|
|
|
connect(list, &QListWidget::itemActivated, this,
|
|
[this] (QListWidgetItem *const item)
|
|
{
|
|
const bool visible = item == this;
|
|
|
|
ui.edit->setVisible(visible);
|
|
ui.quote->setVisible(visible);
|
|
ui.retry->setVisible(visible);
|
|
QListWidgetItem::setSizeHint(QWidget::sizeHint());
|
|
});
|
|
|
|
list->addItem(this);
|
|
list->setItemWidget(this, this);
|
|
}
|