summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authormujx <mujx@users.noreply.github.com>2018-02-08 14:26:08 +0200
committerGitHub <noreply@github.com>2018-02-08 14:26:08 +0200
commit54582cab3a56b10d5a7203d7386acd291e9b6e7d (patch)
tree67225d08bd58cae08557bbabb6bb35f1e2c69dc5 /src
parentMerge pull request #231 from xvitaly/fedora (diff)
parentCreate new font for checkmark (diff)
downloadnheko-54582cab3a56b10d5a7203d7386acd291e9b6e7d.tar.xz
Merge pull request #227 from christarazi/fix-text-wrap-checkmark
Create space for checkmark beforehand

fixes #217 
Diffstat (limited to 'src')
-rw-r--r--src/timeline/TimelineItem.cc22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/timeline/TimelineItem.cc b/src/timeline/TimelineItem.cc

index 93987d52..62e195a4 100644 --- a/src/timeline/TimelineItem.cc +++ b/src/timeline/TimelineItem.cc
@@ -30,6 +30,8 @@ #include "timeline/widgets/ImageItem.h" #include "timeline/widgets/VideoItem.h" +constexpr const static char *CHECKMARK = "✓"; + void TimelineItem::init() { @@ -61,6 +63,15 @@ TimelineItem::init() mainLayout_->setContentsMargins(conf::timeline::headerLeftMargin, 0, 0, 0); mainLayout_->setSpacing(0); + + QFont checkmarkFont; + checkmarkFont.setPixelSize(conf::timeline::fonts::timestamp); + + // Setting fixed width for checkmark because systems may have a differing width for a + // space and the Unicode checkmark. + checkmark_ = new QLabel(" ", this); + checkmark_->setFont(checkmarkFont); + checkmark_->setFixedWidth(QFontMetrics{checkmarkFont}.width(CHECKMARK)); } /* @@ -108,6 +119,7 @@ TimelineItem::TimelineItem(mtx::events::MessageType ty, messageLayout_->addWidget(body_, 1); } + messageLayout_->addWidget(checkmark_); messageLayout_->addWidget(timestamp_); mainLayout_->addLayout(messageLayout_); } @@ -239,6 +251,7 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Notice messageLayout_->addWidget(body_, 1); } + messageLayout_->addWidget(checkmark_); messageLayout_->addWidget(timestamp_); mainLayout_->addLayout(messageLayout_); } @@ -285,6 +298,7 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Emote> messageLayout_->addWidget(body_, 1); } + messageLayout_->addWidget(checkmark_); messageLayout_->addWidget(timestamp_); mainLayout_->addLayout(messageLayout_); } @@ -336,6 +350,7 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Text> messageLayout_->addWidget(body_, 1); } + messageLayout_->addWidget(checkmark_); messageLayout_->addWidget(timestamp_); mainLayout_->addLayout(messageLayout_); } @@ -343,11 +358,8 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Text> void TimelineItem::markReceived() { - auto checkmark = new QLabel("✓", this); - checkmark->setStyleSheet(QString("font-size: %1px;").arg(conf::timeline::fonts::timestamp)); - checkmark->setAlignment(Qt::AlignTop); - - messageLayout_->insertWidget(1, checkmark); + checkmark_->setText(CHECKMARK); + checkmark_->setAlignment(Qt::AlignTop); } // Only the body is displayed.