diff options
Diffstat (limited to 'message.cpp')
| -rw-r--r-- | message.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/message.cpp b/message.cpp new file mode 100644 index 0000000..821588c --- /dev/null +++ b/message.cpp @@ -0,0 +1,45 @@ +#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); +} |
