From 51c0df79fefc7cafcc297dbc08ae915a8df4f325 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 30 Jun 2017 14:36:13 +0300 Subject: [PATCH] Support emoji display in PeerListBox status texts. --- Telegram/SourceFiles/boxes/peer_list_box.cpp | 5 ++--- Telegram/SourceFiles/boxes/peer_list_box.h | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/boxes/peer_list_box.cpp b/Telegram/SourceFiles/boxes/peer_list_box.cpp index 9d739724b..0c0330436 100644 --- a/Telegram/SourceFiles/boxes/peer_list_box.cpp +++ b/Telegram/SourceFiles/boxes/peer_list_box.cpp @@ -369,7 +369,7 @@ void PeerListRow::paintStatusText(Painter &p, int x, int y, int availableWidth, auto statusHasOnlineColor = (_statusType == PeerListRow::StatusType::Online); p.setFont(st::contactsStatusFont); p.setPen(statusHasOnlineColor ? st::contactsStatusFgOnline : (selected ? st::contactsStatusFgOver : st::contactsStatusFg)); - p.drawTextLeft(x, y, outerWidth, (_statusWidth <= availableWidth) ? _status : st::contactsStatusFont->elided(_status, availableWidth)); + _status.drawLeftElided(p, x, y, availableWidth, outerWidth); } template @@ -444,8 +444,7 @@ void PeerListRow::paintDisabledCheckUserpic(Painter &p, int x, int y, int outerW } void PeerListRow::setStatusText(const QString &text) { - _status = text; - _statusWidth = st::contactsStatusFont->width(_status); + _status.setText(st::defaultTextStyle, text, _textNameOptions); } float64 PeerListRow::checkedRatio() { diff --git a/Telegram/SourceFiles/boxes/peer_list_box.h b/Telegram/SourceFiles/boxes/peer_list_box.h index f6ae1c7ab..f8d2206ff 100644 --- a/Telegram/SourceFiles/boxes/peer_list_box.h +++ b/Telegram/SourceFiles/boxes/peer_list_box.h @@ -152,8 +152,7 @@ private: std::unique_ptr _ripple; std::unique_ptr _checkbox; Text _name; - QString _status; - int _statusWidth = 0; + Text _status; StatusType _statusType = StatusType::Online; OrderedSet _nameFirstChars; int _absoluteIndex = -1;