xxcc/message.cpp

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);
}