mirror of https://github.com/procxx/kepka.git
Fix forwarded Saved Messages layout.
This commit is contained in:
parent
8bacc74d8b
commit
269defa82d
|
@ -281,7 +281,7 @@ QSize Message::performCountOptimalSize() {
|
||||||
auto namew = st::msgPadding.left()
|
auto namew = st::msgPadding.left()
|
||||||
+ item->displayFrom()->nameText.maxWidth()
|
+ item->displayFrom()->nameText.maxWidth()
|
||||||
+ st::msgPadding.right();
|
+ st::msgPadding.right();
|
||||||
if (via && !forwarded) {
|
if (via && !displayForwardedFrom()) {
|
||||||
namew += st::msgServiceFont->spacew + via->maxWidth;
|
namew += st::msgServiceFont->spacew + via->maxWidth;
|
||||||
}
|
}
|
||||||
const auto replyWidth = hasFastReply()
|
const auto replyWidth = hasFastReply()
|
||||||
|
@ -296,10 +296,10 @@ QSize Message::performCountOptimalSize() {
|
||||||
namew += st::msgPadding.right() + replyWidth;
|
namew += st::msgPadding.right() + replyWidth;
|
||||||
}
|
}
|
||||||
accumulate_max(maxWidth, namew);
|
accumulate_max(maxWidth, namew);
|
||||||
} else if (via && !forwarded) {
|
} else if (via && !displayForwardedFrom()) {
|
||||||
accumulate_max(maxWidth, st::msgPadding.left() + via->maxWidth + st::msgPadding.right());
|
accumulate_max(maxWidth, st::msgPadding.left() + via->maxWidth + st::msgPadding.right());
|
||||||
}
|
}
|
||||||
if (forwarded) {
|
if (displayForwardedFrom()) {
|
||||||
auto namew = st::msgPadding.left() + forwarded->text.maxWidth() + st::msgPadding.right();
|
auto namew = st::msgPadding.left() + forwarded->text.maxWidth() + st::msgPadding.right();
|
||||||
if (via) {
|
if (via) {
|
||||||
namew += st::msgServiceFont->spacew + via->maxWidth;
|
namew += st::msgServiceFont->spacew + via->maxWidth;
|
||||||
|
@ -527,9 +527,8 @@ void Message::paintFromName(
|
||||||
availableLeft += skipWidth;
|
availableLeft += skipWidth;
|
||||||
availableWidth -= skipWidth;
|
availableWidth -= skipWidth;
|
||||||
|
|
||||||
auto forwarded = item->Get<HistoryMessageForwarded>();
|
|
||||||
auto via = item->Get<HistoryMessageVia>();
|
auto via = item->Get<HistoryMessageVia>();
|
||||||
if (via && !forwarded && availableWidth > 0) {
|
if (via && !displayForwardedFrom() && availableWidth > 0) {
|
||||||
const auto outbg = hasOutLayout();
|
const auto outbg = hasOutLayout();
|
||||||
p.setPen(selected ? (outbg ? st::msgOutServiceFgSelected : st::msgInServiceFgSelected) : (outbg ? st::msgOutServiceFg : st::msgInServiceFg));
|
p.setPen(selected ? (outbg ? st::msgOutServiceFgSelected : st::msgInServiceFgSelected) : (outbg ? st::msgOutServiceFg : st::msgInServiceFg));
|
||||||
p.drawText(availableLeft, trect.top() + st::msgServiceFont->ascent, via->text);
|
p.drawText(availableLeft, trect.top() + st::msgServiceFont->ascent, via->text);
|
||||||
|
@ -587,7 +586,7 @@ void Message::paintReplyInfo(Painter &p, QRect &trect, bool selected) const {
|
||||||
|
|
||||||
void Message::paintViaBotIdInfo(Painter &p, QRect &trect, bool selected) const {
|
void Message::paintViaBotIdInfo(Painter &p, QRect &trect, bool selected) const {
|
||||||
const auto item = message();
|
const auto item = message();
|
||||||
if (!displayFromName() && !item->Has<HistoryMessageForwarded>()) {
|
if (!displayFromName() && !displayForwardedFrom()) {
|
||||||
if (auto via = item->Get<HistoryMessageVia>()) {
|
if (auto via = item->Get<HistoryMessageVia>()) {
|
||||||
const auto outbg = hasOutLayout();
|
const auto outbg = hasOutLayout();
|
||||||
p.setFont(st::msgServiceNameFont);
|
p.setFont(st::msgServiceNameFont);
|
||||||
|
@ -725,10 +724,18 @@ TextState Message::textState(
|
||||||
if (mediaOnTop) {
|
if (mediaOnTop) {
|
||||||
trect.setY(trect.y() - st::msgPadding.top());
|
trect.setY(trect.y() - st::msgPadding.top());
|
||||||
} else {
|
} else {
|
||||||
if (getStateFromName(point, trect, &result)) return result;
|
if (getStateFromName(point, trect, &result)) {
|
||||||
if (getStateForwardedInfo(point, trect, &result, request)) return result;
|
return result;
|
||||||
if (getStateReplyInfo(point, trect, &result)) return result;
|
}
|
||||||
if (getStateViaBotIdInfo(point, trect, &result)) return result;
|
if (getStateForwardedInfo(point, trect, &result, request)) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (getStateReplyInfo(point, trect, &result)) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if (getStateViaBotIdInfo(point, trect, &result)) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (entry) {
|
if (entry) {
|
||||||
auto entryHeight = entry->height();
|
auto entryHeight = entry->height();
|
||||||
|
@ -842,10 +849,9 @@ bool Message::getStateFromName(
|
||||||
outResult->link = user->openLink();
|
outResult->link = user->openLink();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
auto forwarded = item->Get<HistoryMessageForwarded>();
|
|
||||||
auto via = item->Get<HistoryMessageVia>();
|
auto via = item->Get<HistoryMessageVia>();
|
||||||
if (via
|
if (via
|
||||||
&& !forwarded
|
&& !displayForwardedFrom()
|
||||||
&& point.x() >= availableLeft + item->author()->nameText.maxWidth() + st::msgServiceFont->spacew
|
&& point.x() >= availableLeft + item->author()->nameText.maxWidth() + st::msgServiceFont->spacew
|
||||||
&& point.x() < availableLeft + availableWidth
|
&& point.x() < availableLeft + availableWidth
|
||||||
&& point.x() < availableLeft + user->nameText.maxWidth() + st::msgServiceFont->spacew + via->width) {
|
&& point.x() < availableLeft + user->nameText.maxWidth() + st::msgServiceFont->spacew + via->width) {
|
||||||
|
@ -914,8 +920,8 @@ bool Message::getStateViaBotIdInfo(
|
||||||
QRect &trect,
|
QRect &trect,
|
||||||
not_null<TextState*> outResult) const {
|
not_null<TextState*> outResult) const {
|
||||||
const auto item = message();
|
const auto item = message();
|
||||||
if (!displayFromName() && !item->Has<HistoryMessageForwarded>()) {
|
if (const auto via = item->Get<HistoryMessageVia>()) {
|
||||||
if (auto via = item->Get<HistoryMessageVia>()) {
|
if (!displayFromName() && !displayForwardedFrom()) {
|
||||||
if (QRect(trect.x(), trect.y(), via->width, st::msgNameFont->height).contains(point)) {
|
if (QRect(trect.x(), trect.y(), via->width, st::msgNameFont->height).contains(point)) {
|
||||||
outResult->link = via->link;
|
outResult->link = via->link;
|
||||||
return true;
|
return true;
|
||||||
|
@ -965,7 +971,9 @@ void Message::updatePressed(QPoint point) {
|
||||||
if (mediaDisplayed && media->isBubbleTop()) {
|
if (mediaDisplayed && media->isBubbleTop()) {
|
||||||
trect.setY(trect.y() - st::msgPadding.top());
|
trect.setY(trect.y() - st::msgPadding.top());
|
||||||
} else {
|
} else {
|
||||||
if (displayFromName()) trect.setTop(trect.top() + st::msgNameFont->height);
|
if (displayFromName()) {
|
||||||
|
trect.setTop(trect.top() + st::msgNameFont->height);
|
||||||
|
}
|
||||||
if (displayForwardedFrom()) {
|
if (displayForwardedFrom()) {
|
||||||
auto forwarded = item->Get<HistoryMessageForwarded>();
|
auto forwarded = item->Get<HistoryMessageForwarded>();
|
||||||
auto fwdheight = ((forwarded->text.maxWidth() > trect.width()) ? 2 : 1) * st::semiboldFont->height;
|
auto fwdheight = ((forwarded->text.maxWidth() > trect.width()) ? 2 : 1) * st::semiboldFont->height;
|
||||||
|
@ -975,8 +983,8 @@ void Message::updatePressed(QPoint point) {
|
||||||
auto h = st::msgReplyPadding.top() + st::msgReplyBarSize.height() + st::msgReplyPadding.bottom();
|
auto h = st::msgReplyPadding.top() + st::msgReplyBarSize.height() + st::msgReplyPadding.bottom();
|
||||||
trect.setTop(trect.top() + h);
|
trect.setTop(trect.top() + h);
|
||||||
}
|
}
|
||||||
if (!displayFromName() && !item->Has<HistoryMessageForwarded>()) {
|
if (const auto via = item->Get<HistoryMessageVia>()) {
|
||||||
if (auto via = item->Get<HistoryMessageVia>()) {
|
if (!displayFromName() && !displayForwardedFrom()) {
|
||||||
trect.setTop(trect.top() + st::msgNameFont->height);
|
trect.setTop(trect.top() + st::msgNameFont->height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1269,7 +1277,7 @@ bool Message::displayFromName() const {
|
||||||
|
|
||||||
bool Message::displayForwardedFrom() const {
|
bool Message::displayForwardedFrom() const {
|
||||||
const auto item = message();
|
const auto item = message();
|
||||||
if (auto forwarded = item->Get<HistoryMessageForwarded>()) {
|
if (const auto forwarded = item->Get<HistoryMessageForwarded>()) {
|
||||||
if (item->history()->peer->isSelf()) {
|
if (item->history()->peer->isSelf()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1474,8 +1482,8 @@ void Message::fromNameUpdated(int width) const {
|
||||||
width -= st::msgPadding.right() + replyWidth;
|
width -= st::msgPadding.right() + replyWidth;
|
||||||
}
|
}
|
||||||
item->_fromNameVersion = item->displayFrom()->nameVersion;
|
item->_fromNameVersion = item->displayFrom()->nameVersion;
|
||||||
if (!item->Has<HistoryMessageForwarded>()) {
|
if (const auto via = item->Get<HistoryMessageVia>()) {
|
||||||
if (auto via = item->Get<HistoryMessageVia>()) {
|
if (!displayForwardedFrom()) {
|
||||||
via->resize(width
|
via->resize(width
|
||||||
- st::msgPadding.left()
|
- st::msgPadding.left()
|
||||||
- st::msgPadding.right()
|
- st::msgPadding.right()
|
||||||
|
@ -1569,7 +1577,6 @@ int Message::resizeContentGetHeight(int newWidth) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bubble) {
|
if (bubble) {
|
||||||
auto forwarded = item->Get<HistoryMessageForwarded>();
|
|
||||||
auto reply = item->Get<HistoryMessageReply>();
|
auto reply = item->Get<HistoryMessageReply>();
|
||||||
auto via = item->Get<HistoryMessageVia>();
|
auto via = item->Get<HistoryMessageVia>();
|
||||||
auto entry = logEntryOriginal();
|
auto entry = logEntryOriginal();
|
||||||
|
@ -1620,12 +1627,13 @@ int Message::resizeContentGetHeight(int newWidth) {
|
||||||
if (displayFromName()) {
|
if (displayFromName()) {
|
||||||
fromNameUpdated(contentWidth);
|
fromNameUpdated(contentWidth);
|
||||||
newHeight += st::msgNameFont->height;
|
newHeight += st::msgNameFont->height;
|
||||||
} else if (via && !forwarded) {
|
} else if (via && !displayForwardedFrom()) {
|
||||||
via->resize(contentWidth - st::msgPadding.left() - st::msgPadding.right());
|
via->resize(contentWidth - st::msgPadding.left() - st::msgPadding.right());
|
||||||
newHeight += st::msgNameFont->height;
|
newHeight += st::msgNameFont->height;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (displayForwardedFrom()) {
|
if (displayForwardedFrom()) {
|
||||||
|
auto forwarded = item->Get<HistoryMessageForwarded>();
|
||||||
auto fwdheight = ((forwarded->text.maxWidth() > (contentWidth - st::msgPadding.left() - st::msgPadding.right())) ? 2 : 1) * st::semiboldFont->height;
|
auto fwdheight = ((forwarded->text.maxWidth() > (contentWidth - st::msgPadding.left() - st::msgPadding.right())) ? 2 : 1) * st::semiboldFont->height;
|
||||||
newHeight += fwdheight;
|
newHeight += fwdheight;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue