aboutsummaryrefslogtreecommitdiff
path: root/message.cpp
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-06-12 23:47:17 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-06-29 14:09:46 +0200
commit05b2584fa4d773f5a88ed3ce98f5dd8304e11c34 (patch)
treef72e73c3259b8100e886f49f67ecc669b7667502 /message.cpp
parent3b8fafc4122848219898245d52dabd669cacb4ba (diff)
First commit
Diffstat (limited to 'message.cpp')
-rw-r--r--message.cpp45
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);
+}