mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-08-31 06:26:18 +00:00
Show expand/collapse icon in factcheck.
This commit is contained in:
@@ -598,6 +598,7 @@ QSize WebPage::countCurrentSize(int newWidth) {
|
||||
: FactcheckMetrics();
|
||||
if (factcheck) {
|
||||
factcheck->expandable = factcheckMetrics.expandable;
|
||||
factcheck->expanded = factcheckMetrics.expanded;
|
||||
_openl = factcheck->expandable
|
||||
? ToggleFactcheckClickHandler(_parent)
|
||||
: nullptr;
|
||||
@@ -779,11 +780,12 @@ void WebPage::draw(Painter &p, const PaintContext &context) const {
|
||||
auto paintw = inner.width();
|
||||
|
||||
const auto sponsored = sponsoredData();
|
||||
const auto factcheck = factcheckData();
|
||||
|
||||
const auto selected = context.selected();
|
||||
const auto view = parent();
|
||||
const auto from = view->data()->contentColorsFrom();
|
||||
const auto colorIndex = factcheckData()
|
||||
const auto colorIndex = factcheck
|
||||
? 0 // red
|
||||
: (sponsored && sponsored->colorIndex)
|
||||
? sponsored->colorIndex
|
||||
@@ -793,8 +795,9 @@ void WebPage::draw(Painter &p, const PaintContext &context) const {
|
||||
const auto cache = context.outbg
|
||||
? stm->replyCache[st->colorPatternIndex(colorIndex)].get()
|
||||
: st->coloredReplyCache(selected, colorIndex).get();
|
||||
const auto backgroundEmojiId = (sponsored
|
||||
&& sponsored->backgroundEmojiId)
|
||||
const auto backgroundEmojiId = factcheck
|
||||
? DocumentId()
|
||||
: (sponsored && sponsored->backgroundEmojiId)
|
||||
? sponsored->backgroundEmojiId
|
||||
: from
|
||||
? from->backgroundEmojiId()
|
||||
@@ -821,6 +824,15 @@ void WebPage::draw(Painter &p, const PaintContext &context) const {
|
||||
if (!backgroundEmojiCache->frames[0].isNull()) {
|
||||
FillBackgroundEmoji(p, outer, false, *backgroundEmojiCache);
|
||||
}
|
||||
} else if (factcheck && factcheck->expandable) {
|
||||
const auto &icon = factcheck->expanded
|
||||
? st::factcheckIconCollapse
|
||||
: st::factcheckIconExpand;
|
||||
icon.paint(
|
||||
p,
|
||||
outer.x() + outer.width() - icon.width() - _st.padding.right(),
|
||||
outer.y() + _st.padding.top(),
|
||||
width());
|
||||
}
|
||||
|
||||
if (_ripple) {
|
||||
@@ -1487,6 +1499,7 @@ WebPage::FactcheckMetrics WebPage::computeFactcheckMetrics(
|
||||
return {
|
||||
.lines = allowExpanding ? possible : kFactcheckCollapsedLines,
|
||||
.expandable = expandable,
|
||||
.expanded = expanded,
|
||||
};
|
||||
}
|
||||
|
||||
|
@@ -104,6 +104,7 @@ private:
|
||||
struct FactcheckMetrics {
|
||||
int lines = 0;
|
||||
bool expandable = false;
|
||||
bool expanded = false;
|
||||
};
|
||||
struct HintData {
|
||||
QSize size;
|
||||
@@ -129,6 +130,7 @@ private:
|
||||
struct FactcheckData {
|
||||
HintData hint;
|
||||
bool expandable = false;
|
||||
bool expanded = false;
|
||||
};
|
||||
using AdditionalData = std::variant<
|
||||
StickerSetData,
|
||||
|
@@ -1132,3 +1132,6 @@ effectPreviewPromoPadding: margins(4px, 6px, 4px, 6px);
|
||||
effectPreviewLoading: InfiniteRadialAnimation(defaultInfiniteRadialAnimation) {
|
||||
thickness: 2px;
|
||||
}
|
||||
|
||||
factcheckIconExpand: icon {{ "fast_to_original-rotate_cw", historyPeer1NameFg }};
|
||||
factcheckIconCollapse: icon {{ "fast_to_original-rotate_ccw", historyPeer1NameFg }};
|
||||
|
Reference in New Issue
Block a user