From 9da4a21f94cccfcc9e3ce3d8d06a0f8772c5f029 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 20 May 2015 22:28:24 +0300 Subject: [PATCH] caption display in video, caption display in mediaview, removed Loading / Failed webpage display, rounded corners everywhere --- Telegram/Resources/style.txt | 48 +-- Telegram/Resources/style_classes.txt | 2 +- Telegram/SourceFiles/app.cpp | 118 +++++- Telegram/SourceFiles/app.h | 35 +- Telegram/SourceFiles/art/sprite.png | Bin 168226 -> 168654 bytes Telegram/SourceFiles/art/sprite_200x.png | Bin 219885 -> 220182 bytes Telegram/SourceFiles/boxes/photosendbox.cpp | 3 +- Telegram/SourceFiles/boxes/stickersetbox.cpp | 2 +- Telegram/SourceFiles/dropdown.cpp | 24 +- Telegram/SourceFiles/gui/images.cpp | 125 +++++-- Telegram/SourceFiles/gui/images.h | 8 +- Telegram/SourceFiles/gui/text.cpp | 29 +- Telegram/SourceFiles/gui/text.h | 5 + Telegram/SourceFiles/history.cpp | 373 +++++++++++-------- Telegram/SourceFiles/history.h | 12 +- Telegram/SourceFiles/historywidget.cpp | 15 +- Telegram/SourceFiles/mainwidget.cpp | 5 + Telegram/SourceFiles/mediaview.cpp | 75 +++- Telegram/SourceFiles/mediaview.h | 5 +- Telegram/SourceFiles/overviewwidget.cpp | 6 +- Telegram/SourceFiles/window.cpp | 12 +- Telegram/SourceFiles/window.h | 1 + 22 files changed, 620 insertions(+), 283 deletions(-) diff --git a/Telegram/Resources/style.txt b/Telegram/Resources/style.txt index 5627a3c56..d82fd5e5a 100644 --- a/Telegram/Resources/style.txt +++ b/Telegram/Resources/style.txt @@ -774,6 +774,8 @@ historyToEndSkip: 10px; activeFadeInDuration: 500; activeFadeOutDuration: 3000; +msgRadius: 3px; + msgMaxWidth: 550px; msgFont: font(fsize); msgNameFont: font(fsize semibold); @@ -788,12 +790,11 @@ msgPadding: margins(13px, 7px, 13px, 8px); msgMargin: margins(13px, 4px, 53px, 4px); msgLnkPadding: 2px; // for media open / save links msgBorder: #f0f0f0; -msgOutBG: #effdde; -msgInBG: #fff; -msgOutSelectBG: #b7dbdb; -msgInSelectBG: #c2dcf2; // #358cd4 with 30% opacity -msgOutSelectOverlay: #358cd44c; -msgInSelectOverlay: #358cd44c; +msgOutBg: #effdde; +msgInBg: #fff; +msgOutSelectBg: #b7dbdb; +msgInSelectBg: #c2dcf2; // #358cd4 with 30% opacity +msgSelectOverlay: #358cd44c; msgStickerOverlay: #358cd47f; msgOutServiceColor: #3a8e26; msgInServiceColor: #0e7acd; @@ -818,10 +819,8 @@ msgInReplyBarColor: #2fa9e2; msgOutReplyBarSelColor: #4da79f; msgInReplyBarSelColor: #2fa9e2; -msgServiceSelectBG: #fff4; -msgServiceRadius: 2px; - -msgServiceBG: #89a0b47f; +msgServiceBg: #89a0b47f; +msgServiceSelectBg: #bbc8d4a2; msgServiceColor: #FFF; msgServicePadding: margins(12px, 3px, 12px, 4px); msgServiceMargin: margins(10px, 7px, 80px, 7px); @@ -851,6 +850,7 @@ msgImgDblCheckRect: sprite(300px, 65px, 20px, 20px); msgDateImgDelta: 4px; msgDateImgColor: #fff; msgDateImgBg: #00000054; +msgDateImgSelectBg: #1c4a7187; msgDateImgPadding: point(8px, 2px); msgDateImgCheckSpace: 4px; @@ -862,23 +862,23 @@ defaultTextStyle: textStyle { lnkOverFlags: font(fsize underline); lnkColor: btnYesColor; lnkDownColor: btnYesHover; - selectBG: msgInSelectBG; - selectOverlay: msgInSelectOverlay; + selectBg: msgInSelectBg; + selectOverlay: msgSelectOverlay; lineHeight: 0px; } serviceTextStyle: textStyle(defaultTextStyle) { lnkColor: msgServiceColor; lnkDownColor: msgServiceColor; - selectBG: msgServiceSelectBG; - selectOverlay: msgServiceSelectBG; + selectBg: msgServiceSelectBg; + selectOverlay: msgServiceSelectBg; } inTextStyle: textStyle(defaultTextStyle) { - selectBG: msgInSelectBG; - selectOverlay: msgInSelectOverlay; + selectBg: msgInSelectBg; + selectOverlay: msgSelectOverlay; } outTextStyle: textStyle(defaultTextStyle) { - selectBG: msgOutSelectBG; - selectOverlay: msgOutSelectOverlay; + selectBg: msgOutSelectBg; + selectOverlay: msgSelectOverlay; } medviewSaveAsTextStyle: textStyle(defaultTextStyle) { lnkColor: #91d9ff; @@ -1177,10 +1177,9 @@ btnShareContact: flatButton(btnDefNext, btnDefBig) { } forwardWidth: 364px; -forwardRadius: 2px; forwardMargins: margins(30px, 10px, 30px, 10px); forwardFont: font(16px); -forwardBG: rgba(0, 0, 0, 76); +forwardBg: rgba(0, 0, 0, 76); btnProfileCancel: flatButton(btnDefFlat, btnDefBig) { color: #666d78; overColor: #666d78; @@ -1618,7 +1617,6 @@ emojiPanSize: size(39px, 35px); emojiPanFullSize: size(300px, 321px); emojiPanDuration: 200; emojiPanHover: #f0f4f7; -emojiPanRound: 2px; emojiPanHeader: 42px; emojiPanHeaderFont: font(fsize semibold); @@ -1638,7 +1636,6 @@ emojiSwitchEmoji: sprite(310px, 328px, 8px, 12px); emojiSwitchColor: #42a8db; stickerPanSize: size(55px, 55px); -stickerPanRound: 3px; stickerPanPadding: 11px; stickerPanDelete: sprite(123px, 132px, 12px, 12px); stickerPanDeleteOpacity: 0.5; @@ -1730,11 +1727,16 @@ mvDocLink: linkButton(btnDefLink) { mvDeltaFromLastAction: 5px; mvSwipeDistance: 80px; +mvCaptionPadding: margins(18px, 10px, 18px, 10px); +mvCaptionMargin: size(11px, 11px); +mvCaptionRadius: 2px; +mvCaptionBg: #11111180; +mvCaptionFont: font(fsize); + medviewSaveMsgCheck: sprite(311px, 309px, 22px, 18px); medviewSaveMsgFont: font(16px); medviewSaveMsgPadding: margins(55px, 19px, 29px, 20px); medviewSaveMsgCheckPos: point(23px, 21px); -medviewSaveMsgRadius: 3px; medviewSaveMsgShowing: 200; medviewSaveMsgShown: 2000; medviewSaveMsgHiding: 2500; diff --git a/Telegram/Resources/style_classes.txt b/Telegram/Resources/style_classes.txt index f07d13cef..07a7c5bad 100644 --- a/Telegram/Resources/style_classes.txt +++ b/Telegram/Resources/style_classes.txt @@ -20,7 +20,7 @@ textStyle { lnkOverFlags: font; lnkColor: color; lnkDownColor: color; - selectBG: color; + selectBg: color; selectOverlay: color; lineHeight: number; } diff --git a/Telegram/SourceFiles/app.cpp b/Telegram/SourceFiles/app.cpp index b3088bfd4..da9550e1e 100644 --- a/Telegram/SourceFiles/app.cpp +++ b/Telegram/SourceFiles/app.cpp @@ -75,6 +75,9 @@ namespace { QPixmap *sprite = 0, *emojis = 0, *emojisLarge = 0; + QPixmap *corners[RoundCornersCount][4] = { { 0 } }; + QImage *cornersMask[4] = { 0 }; + typedef QMap EmojisMap; EmojisMap mainEmojisMap; QMap otherEmojisMap; @@ -86,7 +89,8 @@ namespace { typedef QHash LastPhotosMap; LastPhotosMap lastPhotosMap; - style::color _msgServiceBG; + style::color _msgServiceBg; + style::color _msgServiceSelectBg; style::color _historyScrollBarColor; style::color _historyScrollBgColor; style::color _historyScrollBarOverColor; @@ -934,7 +938,11 @@ namespace App { WebPageData *feedWebPage(const MTPWebPage &webpage) { switch (webpage.type()) { case mtpc_webPage: return App::feedWebPage(webpage.c_webPage()); - case mtpc_webPageEmpty: return App::webPage(webpage.c_webPageEmpty().vid.v); + case mtpc_webPageEmpty: { + WebPageData *page = App::webPage(webpage.c_webPageEmpty().vid.v); + if (page->pendingTill > 0) page->pendingTill = -1; // failed + return page; + } break; case mtpc_webPagePending: return App::feedWebPage(webpage.c_webPagePending()); } return 0; @@ -1572,6 +1580,34 @@ namespace App { return 0; } + void prepareCorners(RoundCorners index, int32 radius, const style::color &color, const style::color *shadow = 0, QImage *cors = 0) { + int32 r = radius * cIntRetinaFactor(), s = st::msgShadow * cIntRetinaFactor(); + QImage rect(r * 3, r * 3 + (shadow ? s : 0), QImage::Format_ARGB32_Premultiplied), localCors[4]; + { + QPainter p(&rect); + p.setCompositionMode(QPainter::CompositionMode_Source); + p.fillRect(QRect(0, 0, rect.width(), rect.height()), st::transparent->b); + p.setCompositionMode(QPainter::CompositionMode_SourceOver); + p.setRenderHint(QPainter::HighQualityAntialiasing); + p.setPen(Qt::NoPen); + if (shadow) { + p.setBrush((*shadow)->b); + p.drawRoundedRect(0, s, r * 3, r * 3, r, r); + } + p.setBrush(color->b); + p.drawRoundedRect(0, 0, r * 3, r * 3, r, r); + } + if (!cors) cors = localCors; + cors[0] = rect.copy(0, 0, r, r); + cors[1] = rect.copy(r * 2, 0, r, r); + cors[2] = rect.copy(0, r * 2, r, r + (shadow ? s : 0)); + cors[3] = rect.copy(r * 2, r * 2, r, r + (shadow ? s : 0)); + for (int i = 0; i < 4; ++i) { + ::corners[index][i] = new QPixmap(QPixmap::fromImage(cors[i], Qt::ColorOnly)); + ::corners[index][i]->setDevicePixelRatio(cRetinaFactor()); + } + } + void initMedia() { deinitMedia(false); audioInit(); @@ -1593,6 +1629,33 @@ namespace App { ::emojisLarge = new QPixmap(QLatin1String(EmojiNames[EIndex + 1])); if (cRetina()) ::emojisLarge->setDevicePixelRatio(cRetinaFactor()); } + + QImage mask[4]; + prepareCorners(MaskCorners, st::msgRadius, st::white, 0, mask); + for (int i = 0; i < 4; ++i) { + ::cornersMask[i] = new QImage(mask[i]); + ::cornersMask[i]->convertToFormat(QImage::Format_ARGB32_Premultiplied); + ::cornersMask[i]->setDevicePixelRatio(cRetinaFactor()); + } + prepareCorners(BlackCorners, st::msgRadius, st::black); + prepareCorners(ServiceCorners, st::msgRadius, st::msgServiceBg); + prepareCorners(ServiceSelectedCorners, st::msgRadius, st::msgServiceSelectBg); + prepareCorners(SelectedOverlayCorners, st::msgRadius, st::msgSelectOverlay); + prepareCorners(DateCorners, st::msgRadius, st::msgDateImgBg); + prepareCorners(DateSelectedCorners, st::msgRadius, st::msgDateImgSelectBg); + prepareCorners(InShadowCorners, st::msgRadius, st::msgInShadow); + prepareCorners(InSelectedShadowCorners, st::msgRadius, st::msgInSelectShadow); + prepareCorners(ForwardCorners, st::msgRadius, st::emojiPanHover); + prepareCorners(MediaviewSaveCorners, st::msgRadius, st::emojiPanHover); + prepareCorners(EmojiHoverCorners, st::msgRadius, st::emojiPanHover); + prepareCorners(StickerHoverCorners, st::msgRadius, st::emojiPanHover); + + prepareCorners(MessageInCorners, st::msgRadius, st::msgInBg, &st::msgInShadow); + prepareCorners(MessageInSelectedCorners, st::msgRadius, st::msgInSelectBg, &st::msgInSelectShadow); + prepareCorners(MessageOutCorners, st::msgRadius, st::msgOutBg, &st::msgOutShadow); + prepareCorners(MessageOutSelectedCorners, st::msgRadius, st::msgOutSelectBg, &st::msgOutSelectShadow); + prepareCorners(ButtonHoverCorners, st::msgRadius, st::mediaSaveButton.overBgColor, &st::msgInShadow); + } void deinitMedia(bool completely) { @@ -1610,6 +1673,12 @@ namespace App { ::emojis = 0; delete ::emojisLarge; ::emojisLarge = 0; + for (int32 j = 0; j < 4; ++j) { + for (int32 i = 0; i < RoundCornersCount; ++i) { + delete ::corners[i][j]; ::corners[i][j] = 0; + } + delete ::cornersMask[j]; ::cornersMask[j] = 0; + } mainEmojisMap.clear(); otherEmojisMap.clear(); @@ -1922,6 +1991,31 @@ namespace App { } } + QImage **cornersMask() { + return ::cornersMask; + } + QPixmap **corners(RoundCorners index) { + return ::corners[index]; + } + + void roundRect(QPainter &p, int32 x, int32 y, int32 w, int32 h, const style::color &bg, RoundCorners index, const style::color *sh) { + QPixmap **c = ::corners[index]; + int32 cw = c[0]->width() / cIntRetinaFactor(), ch = c[0]->height() / cIntRetinaFactor(); + if (w < 2 * cw || h < 2 * ch) return; + if (w > 2 * cw) { + p.fillRect(QRect(x + cw, y, w - 2 * cw, ch), bg->b); + p.fillRect(QRect(x + cw, y + h - ch, w - 2 * cw, ch), bg->b); + if (sh) p.fillRect(QRect(x + cw, y + h, w - 2 * cw, st::msgShadow), (*sh)->b); + } + if (h > 2 * ch) { + p.fillRect(QRect(x, y + ch, w, h - 2 * ch), bg->b); + } + p.drawPixmap(QPoint(x, y), *c[0]); + p.drawPixmap(QPoint(x + w - cw, y), *c[1]); + p.drawPixmap(QPoint(x, y + h - ch), *c[2]); + p.drawPixmap(QPoint(x + w - cw, y + h - ch), *c[3]); + } + void initBackground(int32 id, const QImage &p, bool nowrite) { if (Local::readBackground()) return; @@ -2064,7 +2158,17 @@ namespace App { components[maxtomin[0]] = max; uchar r = uchar(components[0]), g = uchar(components[1]), b = uchar(components[2]); - _msgServiceBG = style::color(r, g, b, qRound(st::msgServiceBG->c.alphaF() * 0xFF)); + float64 alpha = st::msgServiceBg->c.alphaF(); + _msgServiceBg = style::color(r, g, b, qRound(alpha * 0xFF)); + + float64 alphaSel = alphaSel = st::msgServiceSelectBg->c.alphaF(), addSel = (1. - ((1. - alphaSel) / (1. - alpha))) * 0xFF; + uchar rsel = snap(qRound(((1. - alphaSel) * r + addSel) / alphaSel), 0, 0xFF); + uchar gsel = snap(qRound(((1. - alphaSel) * g + addSel) / alphaSel), 0, 0xFF); + uchar bsel = snap(qRound(((1. - alphaSel) * b + addSel) / alphaSel), 0, 0xFF); + _msgServiceSelectBg = style::color(r, g, b, qRound(alphaSel * 0xFF)); + + prepareCorners(ServiceCorners, st::msgRadius, _msgServiceBg); + prepareCorners(ServiceSelectedCorners, st::msgRadius, _msgServiceSelectBg); uchar rScroll = uchar(componentsScroll[0]), gScroll = uchar(componentsScroll[1]), bScroll = uchar(componentsScroll[2]); _historyScrollBarColor = style::color(rScroll, gScroll, bScroll, qRound(st::historyScroll.barColor->c.alphaF() * 0xFF)); @@ -2077,8 +2181,12 @@ namespace App { if (App::main()) App::main()->updateScrollColors(); } - style::color msgServiceBG() { - return _msgServiceBG; + style::color msgServiceBg() { + return _msgServiceBg; + } + + style::color msgServiceSelectBg() { + return _msgServiceSelectBg; } style::color historyScrollBarColor() { diff --git a/Telegram/SourceFiles/app.h b/Telegram/SourceFiles/app.h index 5dc0ce6a2..5fea933b7 100644 --- a/Telegram/SourceFiles/app.h +++ b/Telegram/SourceFiles/app.h @@ -36,6 +36,31 @@ typedef QHash AudioItems; typedef QHash DocumentItems; typedef QHash WebPageItems; +enum RoundCorners { + MaskCorners = 0x00, // for images + BlackCorners, + ServiceCorners, + ServiceSelectedCorners, + SelectedOverlayCorners, + DateCorners, + DateSelectedCorners, + ForwardCorners, + MediaviewSaveCorners, + EmojiHoverCorners, + StickerHoverCorners, + + InShadowCorners, // for photos without bg + InSelectedShadowCorners, + + MessageInCorners, // with shadow + MessageInSelectedCorners, + MessageOutCorners, + MessageOutSelectedCorners, + ButtonHoverCorners, + + RoundCornersCount +}; + namespace App { Application *app(); Window *wnd(); @@ -205,9 +230,17 @@ namespace App { void stickersBox(const QString &name); void openLocalUrl(const QString &url); + QImage **cornersMask(); + QPixmap **corners(RoundCorners index); + void roundRect(QPainter &p, int32 x, int32 y, int32 w, int32 h, const style::color &bg, RoundCorners index, const style::color *sh = 0); + inline void roundRect(QPainter &p, const QRect &rect, const style::color &bg, RoundCorners index, const style::color *sh = 0) { + return roundRect(p, rect.x(), rect.y(), rect.width(), rect.height(), bg, index, sh); + } + void initBackground(int32 id = DefaultChatBackground, const QImage &p = QImage(), bool nowrite = false); - style::color msgServiceBG(); + style::color msgServiceBg(); + style::color msgServiceSelectBg(); style::color historyScrollBarColor(); style::color historyScrollBgColor(); style::color historyScrollBarOverColor(); diff --git a/Telegram/SourceFiles/art/sprite.png b/Telegram/SourceFiles/art/sprite.png index efc99191c984425a9228d6be608fcf736e6b7b07..1b89b1136229c99254fcb679b654e57dd477507c 100644 GIT binary patch delta 48384 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 delta 48074 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Π3kj_YOiQZ!utckm+8 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 U-nU;-D+E4NuHRC~k~8-He*?grR{#J2 diff --git a/Telegram/SourceFiles/art/sprite_200x.png b/Telegram/SourceFiles/art/sprite_200x.png index f36cff458af1613c7a16b4697e83d08d8497d9e7..63d898be0658ac57392b78c1870639c52810b6fb 100644 GIT binary patch delta 93630 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

w*Du+Vr`IS4wVps(nFK^-O-85CQrt0S& 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 delta 93497 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 - p.fillRect(QRect(x, y, w, h), st::msgOutBG->b); - p.fillRect(x, y + h, w, st::msgShadow, st::msgOutShadow->b); + App::roundRect(p, x, y, w, h, st::msgOutBg, MessageOutCorners, &st::msgOutShadow); if (_thumbw) { int32 rf(cIntRetinaFactor()); p.drawPixmap(QPoint(x + st::mediaPadding.left(), y + st::mediaPadding.top()), _thumb, QRect(_thumbx * rf, _thumby * rf, st::mediaThumbSize * rf, st::mediaThumbSize * rf)); diff --git a/Telegram/SourceFiles/boxes/stickersetbox.cpp b/Telegram/SourceFiles/boxes/stickersetbox.cpp index 778355aa8..a77b7a1a5 100644 --- a/Telegram/SourceFiles/boxes/stickersetbox.cpp +++ b/Telegram/SourceFiles/boxes/stickersetbox.cpp @@ -144,7 +144,7 @@ void StickerSetInner::paintEvent(QPaintEvent *e) { } } - float64 coef = qMin((st::stickersSize.width() - st::stickerPanRound * 2) / float64(doc->dimensions.width()), (st::stickersSize.height() - st::stickerPanRound * 2) / float64(doc->dimensions.height())); + float64 coef = qMin((st::stickersSize.width() - st::msgRadius * 2) / float64(doc->dimensions.width()), (st::stickersSize.height() - st::msgRadius * 2) / float64(doc->dimensions.height())); if (coef > 1) coef = 1; int32 w = qRound(coef * doc->dimensions.width()), h = qRound(coef * doc->dimensions.height()); if (w < 1) w = 1; diff --git a/Telegram/SourceFiles/dropdown.cpp b/Telegram/SourceFiles/dropdown.cpp index c6f46eaf2..31b4fb438 100644 --- a/Telegram/SourceFiles/dropdown.cpp +++ b/Telegram/SourceFiles/dropdown.cpp @@ -675,11 +675,9 @@ void EmojiColorPicker::drawVariant(Painter &p, int variant) { QPoint w(st::dropdownDef.shadow.pxWidth() + st::emojiColorsPadding + variant * st::emojiPanSize.width() + (variant ? 2 * st::emojiColorsPadding + st::emojiColorsSep : 0), st::dropdownDef.shadow.pxHeight() + st::emojiColorsPadding); if (hover > 0) { p.setOpacity(hover); - p.setBrush(st::emojiPanHover->b); - p.setPen(Qt::NoPen); QPoint tl(w); if (rtl()) tl.setX(width() - tl.x() - st::emojiPanSize.width()); - p.drawRoundedRect(QRect(tl, st::emojiPanSize), st::emojiPanRound, st::emojiPanRound); + App::roundRect(p, QRect(tl, st::emojiPanSize), st::emojiPanHover, StickerHoverCorners); p.setOpacity(1); } int esize = EmojiSizes[EIndex + 1]; @@ -786,11 +784,9 @@ void EmojiPanInner::paintEvent(QPaintEvent *e) { QPoint w(st::emojiPanPadding + j * st::emojiPanSize.width(), y + i * st::emojiPanSize.height()); if (hover > 0) { p.setOpacity(hover); - p.setBrush(st::emojiPanHover->b); - p.setPen(Qt::NoPen); QPoint tl(w); if (rtl()) tl.setX(width() - tl.x() - st::emojiPanSize.width()); - p.drawRoundedRect(QRect(tl, st::emojiPanSize), st::emojiPanRound, st::emojiPanRound); + App::roundRect(p, QRect(tl, st::emojiPanSize), st::emojiPanHover, StickerHoverCorners); p.setOpacity(1); } p.drawPixmapLeft(w.x() + (st::emojiPanSize.width() - (_esize / cIntRetinaFactor())) / 2, w.y() + (st::emojiPanSize.height() - (_esize / cIntRetinaFactor())) / 2, width(), App::emojisLarge(), QRect(_emojis[c][index]->x * _esize, _emojis[c][index]->y * _esize, _esize, _esize)); @@ -928,9 +924,9 @@ void EmojiPanInner::onShowPicker() { int32 size = (c == tab) ? (sel - (sel % EmojiPanPerRow)) : _counts[c], rows = (size / EmojiPanPerRow) + ((size % EmojiPanPerRow) ? 1 : 0); y += st::emojiPanHeader + (rows * st::emojiPanSize.height()); } - y -= _picker.height() - st::emojiPanRound; + y -= _picker.height() - st::msgRadius; if (y < _top) { - y += _picker.height() - st::emojiPanRound + st::emojiPanSize.height() - st::emojiPanRound; + y += _picker.height() - st::msgRadius + st::emojiPanSize.height() - st::msgRadius; } int xmax = width() - _picker.width(); float64 coef = float64(sel % EmojiPanPerRow) / float64(EmojiPanPerRow - 1); @@ -1211,11 +1207,9 @@ void StickerPanInner::paintEvent(QPaintEvent *e) { QPoint pos(st::stickerPanPadding + j * st::stickerPanSize.width(), y + i * st::stickerPanSize.height()); if (hover > 0) { p.setOpacity(hover); - p.setBrush(st::emojiPanHover->b); - p.setPen(Qt::NoPen); QPoint tl(pos); if (rtl()) tl.setX(width() - tl.x() - st::stickerPanSize.width()); - p.drawRoundedRect(QRect(tl, st::stickerPanSize), st::stickerPanRound, st::stickerPanRound); + App::roundRect(p, QRect(tl, st::stickerPanSize), st::emojiPanHover, StickerHoverCorners); p.setOpacity(1); } @@ -1236,7 +1230,7 @@ void StickerPanInner::paintEvent(QPaintEvent *e) { } } - float64 coef = qMin((st::stickerPanSize.width() - st::stickerPanRound * 2) / float64(sticker->dimensions.width()), (st::stickerPanSize.height() - st::stickerPanRound * 2) / float64(sticker->dimensions.height())); + float64 coef = qMin((st::stickerPanSize.width() - st::msgRadius * 2) / float64(sticker->dimensions.width()), (st::stickerPanSize.height() - st::msgRadius * 2) / float64(sticker->dimensions.height())); if (coef > 1) coef = 1; int32 w = qRound(coef * sticker->dimensions.width()), h = qRound(coef * sticker->dimensions.height()); if (w < 1) w = 1; @@ -2012,9 +2006,9 @@ void EmojiPan::onSwitch() { hideAll(); _moveStart = getms(); - a_toCoord = _stickersShown ? anim::ivalue(st::emojiPanFullSize.width(), 0) : anim::ivalue(-st::emojiPanFullSize.width(), 0); + a_toCoord = (_stickersShown != rtl()) ? anim::ivalue(st::emojiPanFullSize.width(), 0) : anim::ivalue(-st::emojiPanFullSize.width(), 0); a_toAlpha = anim::fvalue(0, 1); - a_fromCoord = _stickersShown ? anim::ivalue(0, -st::emojiPanFullSize.width()) : anim::ivalue(0, st::emojiPanFullSize.width()); + a_fromCoord = (_stickersShown != rtl()) ? anim::ivalue(0, -st::emojiPanFullSize.width()) : anim::ivalue(0, st::emojiPanFullSize.width()); a_fromAlpha = anim::fvalue(1, 0); if (!animating()) anim::start(this); @@ -2110,7 +2104,7 @@ void MentionsInner::paintEvent(QPaintEvent *e) { } } user->photo->load(); - p.drawPixmap(st::mentionPadding.left(), i * st::mentionHeight + st::mentionPadding.top(), user->photo->pix(st::mentionPhotoSize)); + p.drawPixmap(st::mentionPadding.left(), i * st::mentionHeight + st::mentionPadding.top(), user->photo->pixRounded(st::mentionPhotoSize)); user->nameText.drawElided(p, 2 * st::mentionPadding.left() + st::mentionPhotoSize, i * st::mentionHeight + st::mentionTop, namewidth); p.setFont(st::mentionFont->f); diff --git a/Telegram/SourceFiles/gui/images.cpp b/Telegram/SourceFiles/gui/images.cpp index 00415df95..067e98aad 100644 --- a/Telegram/SourceFiles/gui/images.cpp +++ b/Telegram/SourceFiles/gui/images.cpp @@ -34,6 +34,11 @@ namespace { StorageImages storageImages; int64 globalAquiredSize = 0; + + static const uint64 BlurredCacheSkip = 0x1000000000000000LLU; + static const uint64 ColoredCacheSkip = 0x2000000000000000LLU; + static const uint64 BlurredColoredCacheSkip = 0x3000000000000000LLU; + static const uint64 RoundedCacheSkip = 0x4000000000000000LLU; } bool Image::isNull() const { @@ -70,6 +75,29 @@ const QPixmap &Image::pix(int32 w, int32 h) const { return i.value(); } +const QPixmap &Image::pixRounded(int32 w, int32 h) const { + restore(); + checkload(); + + if (w <= 0 || !width() || !height()) { + w = width(); + } else if (cRetina()) { + w *= cIntRetinaFactor(); + h *= cIntRetinaFactor(); + } + uint64 k = RoundedCacheSkip | (uint64(w) << 32) | uint64(h); + Sizes::const_iterator i = _sizesCache.constFind(k); + if (i == _sizesCache.cend()) { + QPixmap p(pixNoCache(w, h, true, false, true)); + if (cRetina()) p.setDevicePixelRatio(cRetinaFactor()); + i = _sizesCache.insert(k, p); + if (!p.isNull()) { + globalAquiredSize += int64(p.width()) * p.height() * 4; + } + } + return i.value(); +} + const QPixmap &Image::pixBlurred(int32 w, int32 h) const { restore(); checkload(); @@ -80,10 +108,10 @@ const QPixmap &Image::pixBlurred(int32 w, int32 h) const { w *= cIntRetinaFactor(); h *= cIntRetinaFactor(); } - uint64 k = 0x1000000000000000LL | (uint64(w) << 32) | uint64(h); + uint64 k = BlurredCacheSkip | (uint64(w) << 32) | uint64(h); Sizes::const_iterator i = _sizesCache.constFind(k); if (i == _sizesCache.cend()) { - QPixmap p(pixBlurredNoCache(w, h)); + QPixmap p(pixNoCache(w, h, true, true)); if (cRetina()) p.setDevicePixelRatio(cRetinaFactor()); i = _sizesCache.insert(k, p); if (!p.isNull()) { @@ -103,7 +131,7 @@ const QPixmap &Image::pixColored(const style::color &add, int32 w, int32 h) cons w *= cIntRetinaFactor(); h *= cIntRetinaFactor(); } - uint64 k = 0x2000000000000000LL | (uint64(w) << 32) | uint64(h); + uint64 k = ColoredCacheSkip | (uint64(w) << 32) | uint64(h); Sizes::const_iterator i = _sizesCache.constFind(k); if (i == _sizesCache.cend()) { QPixmap p(pixColoredNoCache(add, w, h, true)); @@ -126,7 +154,7 @@ const QPixmap &Image::pixBlurredColored(const style::color &add, int32 w, int32 w *= cIntRetinaFactor(); h *= cIntRetinaFactor(); } - uint64 k = 0x3000000000000000LL | (uint64(w) << 32) | uint64(h); + uint64 k = BlurredColoredCacheSkip | (uint64(w) << 32) | uint64(h); Sizes::const_iterator i = _sizesCache.constFind(k); if (i == _sizesCache.cend()) { QPixmap p(pixBlurredColoredNoCache(add, w, h)); @@ -139,7 +167,7 @@ const QPixmap &Image::pixBlurredColored(const style::color &add, int32 w, int32 return i.value(); } -const QPixmap &Image::pixSingle(int32 w, int32 h) const { +const QPixmap &Image::pixSingle(int32 w, int32 h, int32 outerw, int32 outerh) const { restore(); checkload(); @@ -155,7 +183,7 @@ const QPixmap &Image::pixSingle(int32 w, int32 h) const { if (i != _sizesCache.cend()) { globalAquiredSize -= int64(i->width()) * i->height() * 4; } - QPixmap p(pixNoCache(w, h, true)); + QPixmap p(pixNoCache(w, h, true, false, true, outerw, outerh)); if (cRetina()) p.setDevicePixelRatio(cRetinaFactor()); i = _sizesCache.insert(k, p); if (!p.isNull()) { @@ -165,7 +193,7 @@ const QPixmap &Image::pixSingle(int32 w, int32 h) const { return i.value(); } -const QPixmap &Image::pixBlurredSingle(int32 w, int32 h) const { +const QPixmap &Image::pixBlurredSingle(int32 w, int32 h, int32 outerw, int32 outerh) const { restore(); checkload(); @@ -175,13 +203,13 @@ const QPixmap &Image::pixBlurredSingle(int32 w, int32 h) const { w *= cIntRetinaFactor(); h *= cIntRetinaFactor(); } - uint64 k = 0x1000000000000000LL | 0LL; + uint64 k = BlurredCacheSkip | 0LL; Sizes::const_iterator i = _sizesCache.constFind(k); if (i == _sizesCache.cend() || i->width() != w || (h && i->height() != h)) { if (i != _sizesCache.cend()) { globalAquiredSize -= int64(i->width()) * i->height() * 4; } - QPixmap p(pixBlurredNoCache(w, h)); + QPixmap p(pixNoCache(w, h, true, true, true, outerw, outerh)); if (cRetina()) p.setDevicePixelRatio(cRetinaFactor()); i = _sizesCache.insert(k, p); if (!p.isNull()) { @@ -309,6 +337,39 @@ yi += stride; return img; } +void imageRound(QImage &img) { + img.setDevicePixelRatio(cRetinaFactor()); + img = img.convertToFormat(QImage::Format_ARGB32_Premultiplied); + + QImage **masks = App::cornersMask(); + int32 w = masks[0]->width(), h = masks[0]->height(); + int32 tw = img.width(), th = img.height(); + + uchar *bits = img.bits(); + const uchar *c0 = masks[0]->constBits(), *c1 = masks[1]->constBits(), *c2 = masks[2]->constBits(), *c3 = masks[3]->constBits(); + + int32 s0 = 0, s1 = (tw - w) * 4, s2 = (th - h) * tw * 4, s3 = ((th - h + 1) * tw - w) * 4; + for (int32 i = 0; i < w; ++i) { + for (int32 j = 0; j < h; ++j) { +#define update(s, c) \ + { \ + uint64 color = _blurGetColors(bits + s + (j * tw + i) * 4); \ + color *= (c[(j * w + i) * 4 + 3] + 1); \ + color = (color >> 8); \ + bits[s + (j * tw + i) * 4] = color & 0xFF; \ + bits[s + (j * tw + i) * 4 + 1] = (color >> 16) & 0xFF; \ + bits[s + (j * tw + i) * 4 + 2] = (color >> 32) & 0xFF; \ + bits[s + (j * tw + i) * 4 + 3] = (color >> 48) & 0xFF; \ + } + update(s0, c0); + update(s1, c1); + update(s2, c2); + update(s3, c3); +#undef update + } + } +} + QImage imageColored(const style::color &add, QImage img) { QImage::Format fmt = img.format(); if (fmt != QImage::Format_RGB32 && fmt != QImage::Format_ARGB32_Premultiplied) { @@ -330,35 +391,39 @@ QImage imageColored(const style::color &add, QImage img) { return img; } -QPixmap Image::pixNoCache(int32 w, int32 h, bool smooth) const { - restore(); - loaded(); - - const QPixmap &p(pixData()); - if (p.isNull()) { - return blank()->pix(); - } - if (w <= 0 || !width() || !height() || (w == width() && (h <= 0 || h == height()))) return p; - if (h <= 0) { - return QPixmap::fromImage(p.toImage().scaledToWidth(w, smooth ? Qt::SmoothTransformation : Qt::FastTransformation), Qt::ColorOnly); - } - return QPixmap::fromImage(p.toImage().scaled(w, h, Qt::IgnoreAspectRatio, smooth ? Qt::SmoothTransformation : Qt::FastTransformation), Qt::ColorOnly); -} - -QPixmap Image::pixBlurredNoCache(int32 w, int32 h) const { +QPixmap Image::pixNoCache(int32 w, int32 h, bool smooth, bool blurred, bool rounded, int32 outerw, int32 outerh) const { restore(); loaded(); const QPixmap &p(pixData()); if (p.isNull()) return blank()->pix(); - QImage img = imageBlur(p.toImage()); - if (h <= 0) { - img = img.scaledToWidth(w, Qt::SmoothTransformation); + QImage img = p.toImage(); + if (blurred) img = imageBlur(img); + if (w <= 0 || !width() || !height() || (w == width() && (h <= 0 || h == height()))) { + } else if (h <= 0) { + img = img.scaledToWidth(w, smooth ? Qt::SmoothTransformation : Qt::FastTransformation); } else { - img = img.scaled(w, h, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + img = img.scaled(w, h, Qt::IgnoreAspectRatio, smooth ? Qt::SmoothTransformation : Qt::FastTransformation); } - + if (outerw > 0 && outerh > 0) { + outerw *= cIntRetinaFactor(); + outerh *= cIntRetinaFactor(); + if (outerw != w || outerh != h) { + img.setDevicePixelRatio(cRetinaFactor()); + QImage result(outerw, outerh, QImage::Format_ARGB32_Premultiplied); + result.setDevicePixelRatio(cRetinaFactor()); + { + QPainter p(&result); + if (w < outerw || h < outerh) { + p.fillRect(0, 0, result.width(), result.height(), st::black->b); + } + p.drawImage((result.width() - img.width()) / 2, (result.height() - img.height()) / 2, img); + } + img = result; + } + } + if (rounded) imageRound(img); return QPixmap::fromImage(img, Qt::ColorOnly); } diff --git a/Telegram/SourceFiles/gui/images.h b/Telegram/SourceFiles/gui/images.h index 6d4a437aa..f74e7191f 100644 --- a/Telegram/SourceFiles/gui/images.h +++ b/Telegram/SourceFiles/gui/images.h @@ -47,13 +47,13 @@ public: return false; } const QPixmap &pix(int32 w = 0, int32 h = 0) const; + const QPixmap &pixRounded(int32 w = 0, int32 h = 0) const; const QPixmap &pixBlurred(int32 w = 0, int32 h = 0) const; const QPixmap &pixColored(const style::color &add, int32 w = 0, int32 h = 0) const; const QPixmap &pixBlurredColored(const style::color &add, int32 w = 0, int32 h = 0) const; - const QPixmap &pixSingle(int32 w = 0, int32 h = 0) const; - const QPixmap &pixBlurredSingle(int32 w = 0, int32 h = 0) const; - QPixmap pixNoCache(int32 w = 0, int32 h = 0, bool smooth = false) const; - QPixmap pixBlurredNoCache(int32 w, int32 h = 0) const; + const QPixmap &pixSingle(int32 w, int32 y, int32 outerw, int32 outerh) const; + const QPixmap &pixBlurredSingle(int32 w, int32 h, int32 outerw, int32 outerh) const; + QPixmap pixNoCache(int32 w = 0, int32 h = 0, bool smooth = false, bool blurred = false, bool rounded = false, int32 outerw = -1, int32 outerh = -1) const; QPixmap pixColoredNoCache(const style::color &add, int32 w = 0, int32 h = 0, bool smooth = false) const; QPixmap pixBlurredColoredNoCache(const style::color &add, int32 w, int32 h = 0) const; diff --git a/Telegram/SourceFiles/gui/text.cpp b/Telegram/SourceFiles/gui/text.cpp index d41fad940..ceda2a487 100644 --- a/Telegram/SourceFiles/gui/text.cpp +++ b/Telegram/SourceFiles/gui/text.cpp @@ -1129,12 +1129,12 @@ public: if ((selectFromStart && _parDirection == Qt::LeftToRight) || (selectTillEnd && _parDirection == Qt::RightToLeft)) { if (x > _x) { - _p->fillRect(QRectF(_x.toReal(), _y + _yDelta, (x - _x).toReal(), _fontHeight), _textStyle->selectBG->b); + _p->fillRect(QRectF(_x.toReal(), _y + _yDelta, (x - _x).toReal(), _fontHeight), _textStyle->selectBg->b); } } if ((selectTillEnd && _parDirection == Qt::LeftToRight) || (selectFromStart && _parDirection == Qt::RightToLeft)) { if (x < _x + _wLeft) { - _p->fillRect(QRectF((x + _w - _wLeft).toReal(), _y + _yDelta, (_x + _wLeft - x).toReal(), _fontHeight), _textStyle->selectBG->b); + _p->fillRect(QRectF((x + _w - _wLeft).toReal(), _y + _yDelta, (_x + _wLeft - x).toReal(), _fontHeight), _textStyle->selectBg->b); } } @@ -1292,15 +1292,15 @@ public: const QChar *chFrom = _str + currentBlock->from(), *chTo = chFrom + ((nextBlock ? nextBlock->from() : _t->_text.size()) - currentBlock->from()); if (_localFrom + si.position >= _selectedFrom) { // could be without space if (chTo == chFrom || (chTo - 1)->unicode() != QChar::Space || _selectedTo >= (chTo - _str)) { - _p->fillRect(QRectF(x.toReal(), _y + _yDelta, si.width.toReal(), _fontHeight), _textStyle->selectBG->b); + _p->fillRect(QRectF(x.toReal(), _y + _yDelta, si.width.toReal(), _fontHeight), _textStyle->selectBg->b); } else { // or with space - _p->fillRect(QRectF(glyphX.toReal(), _y + _yDelta, currentBlock->f_width().toReal(), _fontHeight), _textStyle->selectBG->b); + _p->fillRect(QRectF(glyphX.toReal(), _y + _yDelta, currentBlock->f_width().toReal(), _fontHeight), _textStyle->selectBg->b); } } else if (chTo > chFrom && (chTo - 1)->unicode() == QChar::Space && (chTo - 1 - _str) >= _selectedFrom) { if (rtl) { // rtl space only - _p->fillRect(QRectF(x.toReal(), _y + _yDelta, (glyphX - x).toReal(), _fontHeight), _textStyle->selectBG->b); + _p->fillRect(QRectF(x.toReal(), _y + _yDelta, (glyphX - x).toReal(), _fontHeight), _textStyle->selectBg->b); } else { // ltr space only - _p->fillRect(QRectF((x + currentBlock->f_width()).toReal(), _y + _yDelta, (si.width - currentBlock->f_width()).toReal(), _fontHeight), _textStyle->selectBG->b); + _p->fillRect(QRectF((x + currentBlock->f_width()).toReal(), _y + _yDelta, (si.width - currentBlock->f_width()).toReal(), _fontHeight), _textStyle->selectBg->b); } } } @@ -1426,7 +1426,7 @@ public: } } if (rtl) selX = x + itemWidth - (selX - x) - selWidth; - _p->fillRect(QRectF(selX.toReal(), _y + _yDelta, selWidth.toReal(), _fontHeight), _textStyle->selectBG->b); + _p->fillRect(QRectF(selX.toReal(), _y + _yDelta, selWidth.toReal(), _fontHeight), _textStyle->selectBg->b); } _p->drawTextItem(QPointF(x.toReal(), textY), gf); @@ -2243,6 +2243,21 @@ _startDir(other._startDir) } } +Text &Text::operator=(const Text &other) { + _minResizeWidth = other._minResizeWidth; + _maxWidth = other._maxWidth; + _minHeight = other._minHeight; + _text = other._text; + _font = other._font; + _blocks = TextBlocks(other._blocks.size()); + _links = other._links; + _startDir = other._startDir; + for (int32 i = 0, l = _blocks.size(); i < l; ++i) { + _blocks[i] = other._blocks.at(i)->clone(); + } + return *this; +} + void Text::setText(style::font font, const QString &text, const TextParseOptions &options) { if (!_textStyle) _initDefault(); _font = font; diff --git a/Telegram/SourceFiles/gui/text.h b/Telegram/SourceFiles/gui/text.h index 5d72eaf24..64cc56d0f 100644 --- a/Telegram/SourceFiles/gui/text.h +++ b/Telegram/SourceFiles/gui/text.h @@ -426,6 +426,7 @@ public: Text(int32 minResizeWidth = QFIXED_MAX); Text(style::font font, const QString &text, const TextParseOptions &options = _defaultOptions, int32 minResizeWidth = QFIXED_MAX, bool richText = false); Text(const Text &other); + Text &operator=(const Text &other); int32 countHeight(int32 width) const; void setText(style::font font, const QString &text, const TextParseOptions &options = _defaultOptions); @@ -434,6 +435,10 @@ public: void setLink(uint16 lnkIndex, const TextLinkPtr &lnk); bool hasLinks() const; + bool hasSkipBlock() const { + return _blocks.isEmpty() ? false : _blocks.back()->type() == TextBlockSkip; + } + int32 maxWidth() const { return _maxWidth.ceil().toInt(); } diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp index c10cea049..baef5c8d6 100644 --- a/Telegram/SourceFiles/history.cpp +++ b/Telegram/SourceFiles/history.cpp @@ -1597,7 +1597,7 @@ void HistoryPhoto::initDimensions(const HistoryItem *parent) { _minh += st::msgPadding.top() + st::msgNameFont->height; } if (!_caption.isEmpty()) { - _minh += _caption.minHeight(); + _minh += st::webPagePhotoSkip + _caption.minHeight(); } _minh += st::mediaPadding.bottom(); } @@ -1666,6 +1666,10 @@ const QString HistoryPhoto::inHistoryText() const { return qsl("[ ") + lang(lng_in_dlg_photo) + qsl(" ]"); } +const Text &HistoryPhoto::captionForClone() const { + return _caption; +} + bool HistoryPhoto::hasPoint(int32 x, int32 y, const HistoryItem *parent, int32 width) const { if (width < 0) width = w; return (x >= 0 && y >= 0 && x < width && y < _height); @@ -1765,15 +1769,20 @@ void HistoryPhoto::updateFrom(const MTPMessageMedia &media) { void HistoryPhoto::draw(QPainter &p, const HistoryItem *parent, bool selected, int32 width) const { const HistoryReply *reply = toHistoryReply(parent); const HistoryForwarded *fwd = reply ? 0 : toHistoryForwarded(parent); + bool out = parent->out(); + if (width < 0) width = w; int skipx = 0, skipy = 0, height = _height; if (reply || !_caption.isEmpty()) { skipx = st::mediaPadding.left(); - style::color bg(selected ? (parent->out() ? st::msgOutSelectBG : st::msgInSelectBG) : (parent->out() ? st::msgOutBG : st::msgInBG)); - p.fillRect(QRect(0, 0, width, _height), bg->b); + style::color bg(selected ? (out ? st::msgOutSelectBg : st::msgInSelectBg) : (out ? st::msgOutBg : st::msgInBg)); + style::color sh(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); + RoundCorners cors(selected ? (out ? MessageOutSelectedCorners : MessageInSelectedCorners) : (out ? MessageOutCorners : MessageInCorners)); + App::roundRect(p, 0, 0, width, _height, bg, cors, &sh); + int replyFrom = 0, fwdFrom = 0; - if (!parent->out() && parent->history()->peer->chat) { + if (!out && parent->history()->peer->chat) { replyFrom = st::msgPadding.top() + st::msgNameFont->height; fwdFrom = st::msgPadding.top() + st::msgNameFont->height; skipy += replyFrom; @@ -1797,20 +1806,25 @@ void HistoryPhoto::draw(QPainter &p, const HistoryItem *parent, bool selected, i if (!_caption.isEmpty()) { height -= st::webPagePhotoSkip + _caption.countHeight(width); } + } else { + QPixmap **cors = App::corners(selected ? InSelectedShadowCorners : InShadowCorners); + int32 cw = cors[0]->width() / cIntRetinaFactor(), ch = cors[0]->height(); + style::color shadow(selected ? st::msgInSelectShadow : st::msgInShadow); + p.fillRect(cw, _height, width - 2 * cw, st::msgShadow, shadow->b); + p.fillRect(0, _height - ch, cw, st::msgShadow, shadow->b); + p.fillRect(width - cw, _height - ch, cw, st::msgShadow, shadow->b); + p.drawPixmap(0, _height - ch + st::msgShadow, *cors[2]); + p.drawPixmap(width - cw, _height - ch + st::msgShadow, *cors[3]); } data->full->load(false, false); - bool out = parent->out(); bool full = data->full->loaded(); QPixmap pix; if (full) { - pix = data->full->pixSingle(pixw, pixh); + pix = data->full->pixSingle(pixw, pixh, width, height); } else { - pix = data->thumb->pixBlurredSingle(pixw, pixh); + pix = data->thumb->pixBlurredSingle(pixw, pixh, width, height); } - if (pixw < width || pixh < height) { - p.fillRect(QRect(skipx, skipy, width, height), st::black->b); - } - p.drawPixmap(QPoint(skipx + (width - pixw) / 2, skipy + (height - pixh) / 2), pix); + p.drawPixmap(skipx, skipy, pix); if (!full) { uint64 dt = itemAnimations().animate(parent, getms()); int32 cnt = int32(st::photoLoaderCnt), period = int32(st::photoLoaderPeriod), t = dt % period, delta = int32(st::photoLoaderDelta); @@ -1833,10 +1847,8 @@ void HistoryPhoto::draw(QPainter &p, const HistoryItem *parent, bool selected, i } if (selected) { - p.fillRect(skipx, skipy, width, height, textstyleCurrent()->selectOverlay->b); + App::roundRect(p, skipx, skipy, width, height, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); } - style::color shadow(selected ? st::msgInSelectShadow : st::msgInShadow); - p.fillRect(0, _height, width + (skipx ? (st::mediaPadding.left() + st::mediaPadding.right()) : 0), st::msgShadow, shadow->b); // date QString time(parent->time()); @@ -1850,10 +1862,8 @@ void HistoryPhoto::draw(QPainter &p, const HistoryItem *parent, bool selected, i int32 dateW = skipx + width - dateX - st::msgDateImgDelta; int32 dateH = skipy + height - dateY - st::msgDateImgDelta; - p.fillRect(dateX, dateY, dateW, dateH, st::msgDateImgBg->b); - if (selected) { - p.fillRect(dateX, dateY, dateW, dateH, textstyleCurrent()->selectOverlay->b); - } + App::roundRect(p, dateX, dateY, dateW, dateH, selected ? st::msgDateImgSelectBg : st::msgDateImgBg, selected ? DateSelectedCorners : DateCorners); + p.setFont(st::msgDateFont->f); p.setPen(st::msgDateImgColor->p); p.drawText(dateX + st::msgDateImgPadding.x(), dateY + st::msgDateImgPadding.y() + st::msgDateFont->ascent, time); @@ -1945,6 +1955,10 @@ HistoryVideo::HistoryVideo(const MTPDvideo &video, const QString &caption, Histo , _dldDone(0) , _uplDone(0) { + if (!caption.isEmpty()) { + _caption.setText(st::msgFont, caption + textcmdSkipBlock(parent->timeWidth(true), st::msgDateFont->height - st::msgDateDelta.y()), _historyTextOptions); + } + _size = formatDurationAndSizeText(data->duration, data->size); if (!_openWithWidth) { @@ -1988,7 +2002,11 @@ void HistoryVideo::initDimensions(const HistoryItem *parent) { } _minh += st::msgServiceNameFont->height; } - _height = _minh; + if (_caption.isEmpty()) { + _height = _minh; + } else { + _minh += st::webPagePhotoSkip + _caption.minHeight(); + } } void HistoryVideo::regItem(HistoryItem *item) { @@ -2042,7 +2060,11 @@ void HistoryVideo::getState(TextLinkPtr &lnk, bool &inText, int32 x, int32 y, co } if (!out) { // draw Download / Save As button - int32 btnw = _buttonWidth, btnh = st::mediaSaveButton.height, btnx = width - _buttonWidth, btny = skipy + (_height - skipy - btnh) / 2; + int32 h = _height; + if (!_caption.isEmpty()) { + h -= st::webPagePhotoSkip + _caption.countHeight(width - _buttonWidth - st::mediaSaveDelta - st::mediaPadding.left() - st::mediaPadding.right()); + } + int32 btnw = _buttonWidth, btnh = st::mediaSaveButton.height, btnx = width - _buttonWidth, btny = skipy + (h - skipy - btnh) / 2; if (x >= btnx && y >= btny && x < btnx + btnw && y < btny + btnh) { lnk = data->loader ? _cancell : _savel; return; @@ -2067,10 +2089,14 @@ void HistoryVideo::getState(TextLinkPtr &lnk, bool &inText, int32 x, int32 y, co } } - if (x >= 0 && y >= skipy && x < width && y < _height && !data->loader && data->access) { + int32 tw = width - st::mediaPadding.left() - st::mediaPadding.right(); + if (x >= st::mediaPadding.left() && y >= skipy + st::mediaPadding.top() && x < st::mediaPadding.left() + tw && y < skipy + st::mediaPadding.top() + st::mediaThumbSize && !data->loader && data->access) { lnk = _openl; return; } + if (!_caption.isEmpty() && x >= st::mediaPadding.left() && x < st::mediaPadding.left() + tw && y >= skipy + st::mediaPadding.top() + st::mediaThumbSize + st::webPagePhotoSkip) { + return _caption.getState(lnk, inText, x - st::mediaPadding.left(), y - skipy - st::mediaPadding.top() - st::mediaThumbSize - st::webPagePhotoSkip, tw); + } } HistoryMedia *HistoryVideo::clone() const { @@ -2110,11 +2136,16 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, bool selected, i pressed = hovered && ((data->loader ? _cancell : _savel) == textlnkDown()); if (hovered && !pressed && textlnkDown()) hovered = false; - int32 btnw = _buttonWidth, btnh = st::mediaSaveButton.height, btnx = width - _buttonWidth, btny = skipy + (_height - skipy - btnh) / 2; - p.fillRect(QRect(btnx, btny, btnw, btnh), (selected ? st::msgInSelectBG : (hovered ? st::mediaSaveButton.overBgColor : st::mediaSaveButton.bgColor))->b); + int32 h = _height; + if (!_caption.isEmpty()) { + h -= st::webPagePhotoSkip + _caption.countHeight(width - _buttonWidth - st::mediaSaveDelta - st::mediaPadding.left() - st::mediaPadding.right()); + } - style::color shadow(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); - p.fillRect(btnx, btny + btnh, btnw, st::msgShadow, shadow->b); + int32 btnw = _buttonWidth, btnh = st::mediaSaveButton.height, btnx = width - _buttonWidth, btny = skipy + (h - skipy - btnh) / 2; + style::color bg(selected ? st::msgInSelectBg : (hovered ? st::mediaSaveButton.overBgColor : st::mediaSaveButton.bgColor)); + style::color sh(selected ? st::msgInSelectShadow : st::msgInShadow); + RoundCorners cors(selected ? MessageInSelectedCorners : (hovered ? ButtonHoverCorners : MessageInCorners)); + App::roundRect(p, btnx, btny, btnw, btnh, bg, cors, &sh); p.setPen((hovered ? st::mediaSaveButton.overColor : st::mediaSaveButton.color)->p); p.setFont(st::mediaSaveButton.font->f); @@ -2124,11 +2155,10 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, bool selected, i width -= btnw + st::mediaSaveDelta; } - style::color bg(selected ? (out ? st::msgOutSelectBG : st::msgInSelectBG) : (out ? st::msgOutBG : st::msgInBG)); - p.fillRect(QRect(0, 0, width, _height), bg->b); - - style::color shadow(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); - p.fillRect(0, _height, width, st::msgShadow, shadow->b); + style::color bg(selected ? (out ? st::msgOutSelectBg : st::msgInSelectBg) : (out ? st::msgOutBg : st::msgInBg)); + style::color sh(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); + RoundCorners cors(selected ? (out ? MessageOutSelectedCorners : MessageInSelectedCorners) : (out ? MessageOutCorners : MessageInCorners)); + App::roundRect(p, 0, 0, width, _height, bg, cors, &sh); if (!parent->out() && parent->history()->peer->chat) { p.setFont(st::msgNameFont->f); @@ -2142,13 +2172,12 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, bool selected, i } if (_thumbw) { - int32 rf(cIntRetinaFactor()); - p.drawPixmap(QPoint(st::mediaPadding.left(), skipy + st::mediaPadding.top()), data->thumb->pix(_thumbw), QRect(_thumbx * rf, _thumby * rf, st::mediaThumbSize * rf, st::mediaThumbSize * rf)); + p.drawPixmap(QPoint(st::mediaPadding.left(), skipy + st::mediaPadding.top()), data->thumb->pixSingle(_thumbw, 0, st::mediaThumbSize, st::mediaThumbSize)); } else { p.drawPixmap(QPoint(st::mediaPadding.left(), skipy + st::mediaPadding.top()), App::sprite(), (out ? st::mediaDocOutImg : st::mediaDocInImg)); } if (selected) { - p.fillRect(st::mediaPadding.left(), skipy + st::mediaPadding.top(), st::mediaThumbSize, st::mediaThumbSize, (out ? st::msgOutSelectOverlay : st::msgInSelectOverlay)->b); + App::roundRect(p, st::mediaPadding.left(), skipy + st::mediaPadding.top(), st::mediaThumbSize, st::mediaThumbSize, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); } int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right(); @@ -2198,6 +2227,11 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, bool selected, i } p.setFont(st::msgDateFont->f); + if (!_caption.isEmpty()) { + p.setPen(st::black->p); + _caption.draw(p, st::mediaPadding.left(), skipy + st::mediaPadding.top() + st::mediaThumbSize + st::webPagePhotoSkip, width - st::mediaPadding.left() - st::mediaPadding.right()); + } + style::color date(selected ? (out ? st::msgOutSelectDateColor : st::msgInSelectDateColor) : (out ? st::msgOutDateColor : st::msgInDateColor)); p.setPen(date->p); @@ -2218,6 +2252,32 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, bool selected, i } } +int32 HistoryVideo::resize(int32 width, bool dontRecountText, const HistoryItem *parent) { + w = qMin(width, _maxw); + if (_caption.isEmpty()) return _height; + + _height = st::mediaPadding.top() + st::mediaThumbSize + st::mediaPadding.bottom(); + if (!parent->out() && parent->history()->peer->chat) { + _height += st::msgPadding.top() + st::msgNameFont->height; + } + if (const HistoryReply *reply = toHistoryReply(parent)) { + _height += st::msgReplyPadding.top() + st::msgReplyBarSize.height() + st::msgReplyPadding.bottom(); + } else if (const HistoryForwarded *fwd = toHistoryForwarded(parent)) { + if (parent->out() || !parent->history()->peer->chat) { + _height += st::msgPadding.top(); + } + _height += st::msgServiceNameFont->height; + } + if (!_caption.isEmpty()) { + int32 textw = w - st::mediaPadding.left() - st::mediaPadding.right(); + if (!parent->out()) { // substract Download / Save As button + textw -= st::mediaSaveDelta + _buttonWidth; + } + _height += st::webPagePhotoSkip + _caption.countHeight(textw); + } + return _height; +} + ImagePtr HistoryVideo::replyPreview() { if (data->replyPreview->isNull() && !data->thumb->isNull()) { if (data->thumb->loaded()) { @@ -2309,11 +2369,11 @@ void HistoryAudio::draw(QPainter &p, const HistoryItem *parent, bool selected, i if (hovered && !pressed && textlnkDown()) hovered = false; int32 btnw = _buttonWidth, btnh = st::mediaSaveButton.height, btnx = width - _buttonWidth, btny = skipy + (_height - skipy - btnh) / 2; - p.fillRect(QRect(btnx, btny, btnw, btnh), (selected ? st::msgInSelectBG : (hovered ? st::mediaSaveButton.overBgColor : st::mediaSaveButton.bgColor))->b); - - style::color shadow(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); - p.fillRect(btnx, btny + btnh, btnw, st::msgShadow, shadow->b); - + style::color bg(selected ? st::msgInSelectBg : (hovered ? st::mediaSaveButton.overBgColor : st::mediaSaveButton.bgColor)); + style::color sh(selected ? st::msgInSelectShadow : st::msgInShadow); + RoundCorners cors(selected ? MessageInSelectedCorners : (hovered ? ButtonHoverCorners : MessageInCorners)); + App::roundRect(p, btnx, btny, btnw, btnh, bg, cors, &sh); + p.setPen((hovered ? st::mediaSaveButton.overColor : st::mediaSaveButton.color)->p); p.setFont(st::mediaSaveButton.font->f); QString btnText(lang(data->loader ? lng_media_cancel : (already ? lng_media_open_with : lng_media_download))); @@ -2322,11 +2382,10 @@ void HistoryAudio::draw(QPainter &p, const HistoryItem *parent, bool selected, i width -= btnw + st::mediaSaveDelta; } - style::color bg(selected ? (out ? st::msgOutSelectBG : st::msgInSelectBG) : (out ? st::msgOutBG : st::msgInBG)); - p.fillRect(QRect(0, 0, width, _height), bg->b); - - style::color shadow(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); - p.fillRect(0, _height, width, st::msgShadow, shadow->b); + style::color bg(selected ? (out ? st::msgOutSelectBg : st::msgInSelectBg) : (out ? st::msgOutBg : st::msgInBg)); + style::color sh(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); + RoundCorners cors(selected ? (out ? MessageOutSelectedCorners : MessageInSelectedCorners) : (out ? MessageOutCorners : MessageInCorners)); + App::roundRect(p, 0, 0, width, _height, bg, cors, &sh); if (!parent->out() && parent->history()->peer->chat) { p.setFont(st::msgNameFont->f); @@ -2354,7 +2413,7 @@ void HistoryAudio::draw(QPainter &p, const HistoryItem *parent, bool selected, i } p.drawPixmap(QPoint(st::mediaPadding.left(), skipy + st::mediaPadding.top()), App::sprite(), img); if (selected) { - p.fillRect(st::mediaPadding.left(), skipy + st::mediaPadding.top(), st::mediaThumbSize, st::mediaThumbSize, textstyleCurrent()->selectOverlay->b); + App::roundRect(p, st::mediaPadding.left(), skipy + st::mediaPadding.top(), st::mediaThumbSize, st::mediaThumbSize, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); } int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right(); @@ -2639,10 +2698,10 @@ void HistoryDocument::draw(QPainter &p, const HistoryItem *parent, bool selected if (hovered && !pressed && textlnkDown()) hovered = false; int32 btnw = _buttonWidth, btnh = st::mediaSaveButton.height, btnx = width - _buttonWidth, btny = skipy + (_height - skipy - btnh) / 2; - p.fillRect(QRect(btnx, btny, btnw, btnh), (selected ? st::msgInSelectBG : (hovered ? st::mediaSaveButton.overBgColor : st::mediaSaveButton.bgColor))->b); - - style::color shadow(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); - p.fillRect(btnx, btny + btnh, btnw, st::msgShadow, shadow->b); + style::color bg(selected ? st::msgInSelectBg : (hovered ? st::mediaSaveButton.overBgColor : st::mediaSaveButton.bgColor)); + style::color sh(selected ? st::msgInSelectShadow : st::msgInShadow); + RoundCorners cors(selected ? MessageInSelectedCorners : (hovered ? ButtonHoverCorners : MessageInCorners)); + App::roundRect(p, btnx, btny, btnw, btnh, bg, cors, &sh); p.setPen((hovered ? st::mediaSaveButton.overColor : st::mediaSaveButton.color)->p); p.setFont(st::mediaSaveButton.font->f); @@ -2652,11 +2711,10 @@ void HistoryDocument::draw(QPainter &p, const HistoryItem *parent, bool selected width -= btnw + st::mediaSaveDelta; } - style::color bg(selected ? (out ? st::msgOutSelectBG : st::msgInSelectBG) : (out ? st::msgOutBG : st::msgInBG)); - p.fillRect(QRect(0, 0, width, _height), bg->b); - - style::color shadow(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); - p.fillRect(0, _height, width, st::msgShadow, shadow->b); + style::color bg(selected ? (out ? st::msgOutSelectBg : st::msgInSelectBg) : (out ? st::msgOutBg : st::msgInBg)); + style::color sh(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); + RoundCorners cors(selected ? (out ? MessageOutSelectedCorners : MessageInSelectedCorners) : (out ? MessageOutCorners : MessageInCorners)); + App::roundRect(p, 0, 0, width, _height, bg, cors, &sh); if (!parent->out() && parent->history()->peer->chat) { p.setFont(st::msgNameFont->f); @@ -2669,13 +2727,12 @@ void HistoryDocument::draw(QPainter &p, const HistoryItem *parent, bool selected fwd->drawForwardedFrom(p, st::mediaPadding.left(), fwdFrom, width - st::mediaPadding.left() - st::mediaPadding.right(), selected); } if (_thumbw) { - int32 rf(cIntRetinaFactor()); - p.drawPixmap(QPoint(st::mediaPadding.left(), skipy + st::mediaPadding.top()), data->thumb->pix(_thumbw), QRect(_thumbx * rf, _thumby * rf, st::mediaThumbSize * rf, st::mediaThumbSize * rf)); + p.drawPixmap(QPoint(st::mediaPadding.left(), skipy + st::mediaPadding.top()), data->thumb->pixSingle(_thumbw, 0, st::mediaThumbSize, st::mediaThumbSize)); } else { p.drawPixmap(QPoint(st::mediaPadding.left(), skipy + st::mediaPadding.top()), App::sprite(), (out ? st::mediaDocOutImg : st::mediaDocInImg)); } if (selected) { - p.fillRect(st::mediaPadding.left(), skipy + st::mediaPadding.top(), st::mediaThumbSize, st::mediaThumbSize, textstyleCurrent()->selectOverlay->b); + App::roundRect(p, st::mediaPadding.left(), skipy + st::mediaPadding.top(), st::mediaThumbSize, st::mediaThumbSize, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); } int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right(); @@ -2980,10 +3037,8 @@ void HistorySticker::draw(QPainter &p, const HistoryItem *parent, bool selected, int32 dateW = usex + usew - dateX - st::msgDateImgDelta; int32 dateH = _height - dateY - st::msgDateImgDelta; - p.fillRect(dateX, dateY, dateW, dateH, st::msgDateImgBg->b); - if (selected) { - p.fillRect(dateX, dateY, dateW, dateH, textstyleCurrent()->selectOverlay->b); - } + App::roundRect(p, dateX, dateY, dateW, dateH, selected ? st::msgDateImgSelectBg : st::msgDateImgBg, selected ? DateSelectedCorners : DateCorners); + p.setFont(st::msgDateFont->f); p.setPen(st::msgDateImgColor->p); p.drawText(dateX + st::msgDateImgPadding.x(), dateY + st::msgDateImgPadding.y() + st::msgDateFont->ascent, time); @@ -3006,14 +3061,7 @@ void HistorySticker::draw(QPainter &p, const HistoryItem *parent, bool selected, int32 rw = width - usew, rh = st::msgReplyPadding.top() + st::msgReplyBarSize.height() + st::msgReplyPadding.bottom(); int32 rx = parent->out() ? 0 : usew, ry = _height - rh; - p.setPen(Qt::NoPen); - QRect r(rx, ry, rw, rh); - p.setBrush(App::msgServiceBG()->b); - p.drawRoundedRect(r, st::msgServiceRadius, st::msgServiceRadius); - if (selected) { - p.setBrush(textstyleCurrent()->selectOverlay->b); - p.drawRoundedRect(r, st::msgServiceRadius, st::msgServiceRadius); - } + App::roundRect(p, rx, ry, rw, rh, App::msgServiceBg(), selected ? ServiceSelectedCorners : ServiceCorners, &App::msgServiceSelectBg()); reply->drawReplyTo(p, rx + st::msgReplyPadding.left(), ry, rw - st::msgReplyPadding.left() - st::msgReplyPadding.right(), selected, true); } @@ -3217,11 +3265,10 @@ void HistoryContact::draw(QPainter &p, const HistoryItem *parent, bool selected, width = _maxw; } - style::color bg(selected ? (out ? st::msgOutSelectBG : st::msgInSelectBG) : (out ? st::msgOutBG : st::msgInBG)); - p.fillRect(QRect(0, 0, width, _height), bg->b); - - style::color shadow(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); - p.fillRect(0, _height, width, st::msgShadow, shadow->b); + style::color bg(selected ? (out ? st::msgOutSelectBg : st::msgInSelectBg) : (out ? st::msgOutBg : st::msgInBg)); + style::color sh(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); + RoundCorners cors(selected ? (out ? MessageOutSelectedCorners : MessageInSelectedCorners) : (out ? MessageOutCorners : MessageInCorners)); + App::roundRect(p, 0, 0, width, _height, bg, cors, &sh); if (!parent->out() && parent->history()->peer->chat) { p.setFont(st::msgNameFont->f); @@ -3234,7 +3281,10 @@ void HistoryContact::draw(QPainter &p, const HistoryItem *parent, bool selected, fwd->drawForwardedFrom(p, st::mediaPadding.left(), fwdFrom, width - st::mediaPadding.left() - st::mediaPadding.right(), selected); } - p.drawPixmap(st::mediaPadding.left(), skipy + st::mediaPadding.top(), (contact ? contact->photo : userDefPhoto(1))->pix(st::mediaThumbSize)); + p.drawPixmap(st::mediaPadding.left(), skipy + st::mediaPadding.top(), (contact ? contact->photo : userDefPhoto(1))->pixRounded(st::mediaThumbSize)); + if (selected) { + App::roundRect(p, st::mediaPadding.left(), skipy + st::mediaPadding.top(), st::mediaThumbSize, st::mediaThumbSize, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); + } int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right(); int32 twidth = width - tleft - st::mediaPadding.right(); @@ -3307,9 +3357,10 @@ HistoryWebPage::HistoryWebPage(WebPageData *data) : HistoryMedia() void HistoryWebPage::initDimensions(const HistoryItem *parent) { if (data->pendingTill) { - _maxw = st::webPageLeft + st::linkFont->m.width(lang((data->pendingTill < 0) ? lng_attach_failed : lng_profile_loading)); - _minh = st::replyHeight; - _height = _minh; + _maxw = _minh = _height = 0; + //_maxw = st::webPageLeft + st::linkFont->m.width(lang((data->pendingTill < 0) ? lng_attach_failed : lng_profile_loading)); + //_minh = st::replyHeight; + //_height = _minh; return; } if (!_openl && !data->url.isEmpty()) _openl = TextLinkPtr(new TextLink(data->url)); @@ -3404,29 +3455,29 @@ void HistoryWebPage::initDimensions(const HistoryItem *parent) { void HistoryWebPage::draw(QPainter &p, const HistoryItem *parent, bool selected, int32 width) const { if (width < 0) width = w; - if (width < 1) return; + if (width < 1 || data->pendingTill) return; int32 bottomSkip = 0; - if (!data->pendingTill) { + //if (!data->pendingTill) { if (data->photo) { bottomSkip += st::webPagePhotoSkip; if (_asArticle || (st::webPageLeft + qMax(_pixw, int16(st::minPhotoSize)) + parent->timeWidth(true) > width)) { bottomSkip += (st::msgDateFont->height - st::msgDateDelta.y()); } } - } + //} style::color bar = (selected ? (parent->out() ? st::msgOutReplyBarSelColor : st::msgInReplyBarSelColor) : (parent->out() ? st::msgOutReplyBarColor : st::msgInReplyBarColor)); style::color semibold = (selected ? (parent->out() ? st::msgOutServiceSelColor : st::msgInServiceSelColor) : (parent->out() ? st::msgOutServiceColor : st::msgInServiceColor)); style::color regular = (selected ? (parent->out() ? st::msgOutSelectDateColor : st::msgInSelectDateColor) : (parent->out() ? st::msgOutDateColor : st::msgInDateColor)); p.fillRect(0, 0, st::webPageBar, _height - bottomSkip, bar->b); - if (data->pendingTill) { - p.setFont(st::linkFont->f); - p.setPen(regular->p); - p.drawText(st::webPageLeft, (_minh - st::linkFont->height) / 2 + st::linkFont->ascent, lang(data->pendingTill < 0 ? lng_attach_failed : lng_profile_loading)); - return; - } + //if (data->pendingTill) { + // p.setFont(st::linkFont->f); + // p.setPen(regular->p); + // p.drawText(st::webPageLeft, (_minh - st::linkFont->height) / 2 + st::linkFont->ascent, lang(data->pendingTill < 0 ? lng_attach_failed : lng_profile_loading)); + // return; + //} p.save(); p.translate(st::webPageLeft, 0); @@ -3440,19 +3491,13 @@ void HistoryWebPage::draw(QPainter &p, const HistoryItem *parent, bool selected, bool full = data->photo->medium->loaded(); QPixmap pix; if (full) { - pix = data->photo->medium->pixSingle(_pixw, _pixh); + pix = data->photo->medium->pixSingle(_pixw, _pixh, pixwidth, pixheight); } else { - pix = data->photo->thumb->pixBlurredSingle(_pixw, _pixh); + pix = data->photo->thumb->pixBlurredSingle(_pixw, _pixh, pixwidth, pixheight); } - if (_pixw < pixwidth || _pixh < pixheight) { - p.fillRect(QRect(width - pixwidth, 0, pixwidth, pixheight), st::black->b); - } - if (_pixw > pixwidth) { - p.drawPixmap(QRect(width - pixwidth, (pixheight - _pixh) / 2, pixwidth, _pixh), pix, QRect(cIntRetinaFactor() * (_pixw - pixwidth) / 2, 0, cIntRetinaFactor() * pixwidth, cIntRetinaFactor() * _pixh)); - } else if (_pixh > pixheight) { - p.drawPixmap(QRect(width - pixwidth + (pixwidth - _pixw) / 2, 0, _pixw, pixheight), pix, QRect(0, cIntRetinaFactor() * (_pixh - pixheight) / 2, cIntRetinaFactor() * _pixw, cIntRetinaFactor() * pixheight)); - } else { - p.drawPixmap(QPoint(width - pixwidth + (pixwidth - _pixw) / 2, (pixheight - _pixh) / 2), pix); + p.drawPixmap(width - pixwidth, 0, pix); + if (selected) { + App::roundRect(p, width - pixwidth, 0, pixwidth, pixheight, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); } } int32 articleLines = 5; @@ -3511,14 +3556,11 @@ void HistoryWebPage::draw(QPainter &p, const HistoryItem *parent, bool selected, bool full = data->photo->full->loaded(); QPixmap pix; if (full) { - pix = data->photo->full->pixSingle(_pixw, _pixh); + pix = data->photo->full->pixSingle(_pixw, _pixh, pixwidth, pixheight); } else { - pix = data->photo->thumb->pixBlurredSingle(_pixw, _pixh); + pix = data->photo->thumb->pixBlurredSingle(_pixw, _pixh, pixwidth, pixheight); } - if (_pixw < pixwidth || _pixh < pixheight) { - p.fillRect(QRect(0, 0, pixwidth, pixheight), st::black->b); - } - p.drawPixmap(QPoint((pixwidth - _pixw) / 2, (pixheight - _pixh) / 2), pix); + p.drawPixmap(0, 0, pix); if (!full) { uint64 dt = itemAnimations().animate(parent, getms()); int32 cnt = int32(st::photoLoaderCnt), period = int32(st::photoLoaderPeriod), t = dt % period, delta = int32(st::photoLoaderDelta); @@ -3541,7 +3583,7 @@ void HistoryWebPage::draw(QPainter &p, const HistoryItem *parent, bool selected, } if (selected) { - p.fillRect(0, 0, pixwidth, pixheight, textstyleCurrent()->selectOverlay->b); + App::roundRect(p, 0, 0, pixwidth, pixheight, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); } if (data->type == WebPageVideo) { @@ -3556,10 +3598,8 @@ void HistoryWebPage::draw(QPainter &p, const HistoryItem *parent, bool selected, int32 dateW = pixwidth - dateX - st::msgDateImgDelta; int32 dateH = pixheight - dateY - st::msgDateImgDelta; - p.fillRect(dateX, dateY, dateW, dateH, st::msgDateImgBg->b); - if (selected) { - p.fillRect(dateX, dateY, dateW, dateH, textstyleCurrent()->selectOverlay->b); - } + App::roundRect(p, dateX, dateY, dateW, dateH, selected ? st::msgDateImgSelectBg : st::msgDateImgBg, selected ? DateSelectedCorners : DateCorners); + p.setFont(st::msgDateFont->f); p.setPen(st::msgDateImgColor->p); p.drawText(dateX + st::msgDateImgPadding.x(), dateY + st::msgDateImgPadding.y() + st::msgDateFont->ascent, _duration); @@ -4214,13 +4254,18 @@ void HistoryImageLink::draw(QPainter &p, const HistoryItem *parent, bool selecte int skipx = 0, skipy = 0, height = _height; const HistoryReply *reply = toHistoryReply(parent); const HistoryForwarded *fwd = toHistoryForwarded(parent); + bool out = parent->out(); + if (reply || !_title.isEmpty() || !_description.isEmpty()) { skipx = st::mediaPadding.left(); - style::color bg(selected ? (parent->out() ? st::msgOutSelectBG : st::msgInSelectBG) : (parent->out() ? st::msgOutBG : st::msgInBG)); - p.fillRect(QRect(0, 0, width, _height), bg->b); + style::color bg(selected ? (out ? st::msgOutSelectBg : st::msgInSelectBg) : (out ? st::msgOutBg : st::msgInBg)); + style::color sh(selected ? (out ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out ? st::msgOutShadow : st::msgInShadow)); + RoundCorners cors(selected ? (out ? MessageOutSelectedCorners : MessageInSelectedCorners) : (out ? MessageOutCorners : MessageInCorners)); + App::roundRect(p, 0, 0, width, _height, bg, cors, &sh); + int replyFrom = 0, fwdFrom = 0; - if (!parent->out() && parent->history()->peer->chat) { + if (!out && parent->history()->peer->chat) { replyFrom = st::msgPadding.top() + st::msgNameFont->height; fwdFrom = st::msgPadding.top() + st::msgNameFont->height; skipy += replyFrom; @@ -4255,27 +4300,37 @@ void HistoryImageLink::draw(QPainter &p, const HistoryItem *parent, bool selecte skipy += st::webPagePhotoSkip; } height -= skipy + st::mediaPadding.bottom(); + } else { + QPixmap **cors = App::corners(selected ? InSelectedShadowCorners : InShadowCorners); + int32 cw = cors[0]->width() / cIntRetinaFactor(), ch = cors[0]->height(); + style::color shadow(selected ? st::msgInSelectShadow : st::msgInShadow); + p.fillRect(cw, _height, width - 2 * cw, st::msgShadow, shadow->b); + p.fillRect(0, _height - ch, cw, st::msgShadow, shadow->b); + p.fillRect(width - cw, _height - ch, cw, st::msgShadow, shadow->b); + p.drawPixmap(0, _height - ch + st::msgShadow, *cors[2]); + p.drawPixmap(width - cw, _height - ch + st::msgShadow, *cors[3]); } data->load(); - bool out = parent->out(); QPixmap toDraw; if (data && !data->thumb->isNull()) { int32 w = data->thumb->width(), h = data->thumb->height(); + QPixmap pix; if (width * h == height * w || (w == convertScale(fullWidth()) && h == convertScale(fullHeight()))) { - p.drawPixmap(QPoint(skipx, skipy), data->thumb->pixSingle(width, height)); + pix = data->thumb->pixSingle(width, height, width, height); } else { p.fillRect(QRect(skipx, skipy, width, height), st::black->b); if (width * h > height * w) { int32 nw = height * w / h; - p.drawPixmap(QPoint(skipx + (width - nw) / 2, skipy), data->thumb->pixSingle(nw, height)); + pix = data->thumb->pixSingle(nw, height, width, height); } else { int32 nh = width * h / w; - p.drawPixmap(QPoint(skipx, skipy + (height - nh) / 2), data->thumb->pixSingle(width, nh)); + pix = data->thumb->pixSingle(width, nh, width, height); } } + p.drawPixmap(QPoint(skipx, skipy), pix); } else { - p.fillRect(QRect(skipx, skipy, width, height), st::black->b); + App::roundRect(p, skipx, skipy, width, height, st::black, BlackCorners); } if (data) { switch (data->type) { @@ -4298,10 +4353,8 @@ void HistoryImageLink::draw(QPainter &p, const HistoryItem *parent, bool selecte } } if (selected) { - p.fillRect(skipx, skipy, width, height, textstyleCurrent()->selectOverlay->b); + App::roundRect(p, skipx, skipy, width, height, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); } - style::color shadow(selected ? st::msgInSelectShadow : st::msgInShadow); - p.fillRect(0, _height, width + (skipx ? (st::mediaPadding.left() + st::mediaPadding.right()) : 0), st::msgShadow, shadow->b); // date QString time(parent->time()); @@ -4314,10 +4367,8 @@ void HistoryImageLink::draw(QPainter &p, const HistoryItem *parent, bool selecte int32 dateW = skipx + width - dateX - st::msgDateImgDelta; int32 dateH = skipy + height - dateY - st::msgDateImgDelta; - p.fillRect(dateX, dateY, dateW, dateH, st::msgDateImgBg->b); - if (selected) { - p.fillRect(dateX, dateY, dateW, dateH, textstyleCurrent()->selectOverlay->b); - } + App::roundRect(p, dateX, dateY, dateW, dateH, selected ? st::msgDateImgSelectBg : st::msgDateImgBg, selected ? DateSelectedCorners : DateCorners); + p.setFont(st::msgDateFont->f); p.setPen(st::msgDateImgColor->p); p.drawText(dateX + st::msgDateImgPadding.x(), dateY + st::msgDateImgPadding.y() + st::msgDateFont->ascent, time); @@ -4616,7 +4667,7 @@ void HistoryMessage::initMediaFromDocument(DocumentData *doc) { void HistoryMessage::initDimensions(const QString &text) { if (!_media || !text.isEmpty()) { // !justMedia() - if (_media) { + if (_media && _media->isDisplayed()) { _text.setText(st::msgFont, text, _historyTextOptions); } else { _text.setText(st::msgFont, text + textcmdSkipBlock(timeWidth(true), st::msgDateFont->height - st::msgDateDelta.y()), _historyTextOptions); @@ -4635,9 +4686,26 @@ void HistoryMessage::initDimensions(const HistoryItem *parent) { _maxw += st::msgPadding.left() + st::msgPadding.right(); if (_media) { _media->initDimensions(this); - int32 maxw = _media->maxWidth() + st::msgPadding.left() + st::msgPadding.right(); - if (maxw > _maxw) _maxw = maxw; - _minh += st::msgPadding.bottom() + _media->minHeight(); + if (_media->isDisplayed() && _text.hasSkipBlock()) { + QString was = HistoryMessage::selectedText(FullItemSel); + if (!was.isEmpty()) { + _text.setText(st::msgFont, was, _historyTextOptions); // without date skip + _textWidth = 0; + _textHeight = 0; + } + } else if (!_media->isDisplayed() && !_text.hasSkipBlock()) { + QString was = HistoryMessage::selectedText(FullItemSel); + if (!was.isEmpty()) { + _text.setText(st::msgFont, was + textcmdSkipBlock(timeWidth(true), st::msgDateFont->height - st::msgDateDelta.y()), _historyTextOptions); // without date skip + _textWidth = 0; + _textHeight = 0; + } + } + if (_media->isDisplayed()) { + int32 maxw = _media->maxWidth() + st::msgPadding.left() + st::msgPadding.right(); + if (maxw > _maxw) _maxw = maxw; + _minh += st::msgPadding.bottom() + _media->minHeight(); + } } } fromNameUpdated(); @@ -4674,21 +4742,28 @@ HistoryMedia *HistoryMessage::getMedia(bool inOverview) const { void HistoryMessage::setMedia(const MTPmessageMedia &media) { if ((!_media || _media->isImageLink()) && media.type() == mtpc_messageMediaEmpty) return; - bool wasMedia = false; + bool mediaWasDisplayed = false; if (_media) { - wasMedia = true; + mediaWasDisplayed = _media->isDisplayed(); delete _media; _media = 0; } QString t; initMedia(media, t); - if (_media && !wasMedia) { + if (_media && _media->isDisplayed() && !mediaWasDisplayed) { QString was = HistoryMessage::selectedText(FullItemSel); if (!was.isEmpty()) { _text.setText(st::msgFont, was, _historyTextOptions); // without date skip _textWidth = 0; _textHeight = 0; } + } else if (mediaWasDisplayed && (!_media || !_media->isDisplayed())) { + QString was = HistoryMessage::selectedText(FullItemSel); + if (!was.isEmpty()) { + _text.setText(st::msgFont, was + textcmdSkipBlock(timeWidth(true), st::msgDateFont->height - st::msgDateDelta.y()), _historyTextOptions); // without date skip + _textWidth = 0; + _textHeight = 0; + } } initDimensions(0); if (App::main()) App::main()->itemResized(this); @@ -4728,7 +4803,7 @@ void HistoryMessage::draw(QPainter &p, uint32 selection) const { } if (!out() && _history->peer->chat) { - p.drawPixmap(left, _height - st::msgMargin.bottom() - st::msgPhotoSize, _from->photo->pix(st::msgPhotoSize)); + p.drawPixmap(left, _height - st::msgMargin.bottom() - st::msgPhotoSize, _from->photo->pixRounded(st::msgPhotoSize)); // width -= st::msgPhotoSkip; left += st::msgPhotoSkip; } @@ -4746,11 +4821,10 @@ void HistoryMessage::draw(QPainter &p, uint32 selection) const { } else { QRect r(left, st::msgMargin.top(), width, _height - st::msgMargin.top() - st::msgMargin.bottom()); - style::color bg(selected ? (out() ? st::msgOutSelectBG : st::msgInSelectBG) : (out() ? st::msgOutBG : st::msgInBG)); - p.fillRect(r, bg->b); - - style::color shadow(selected ? (out() ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out() ? st::msgOutShadow : st::msgInShadow)); - p.fillRect(left, _height - st::msgMargin.bottom(), width, st::msgShadow, shadow->b); + style::color bg(selected ? (out() ? st::msgOutSelectBg : st::msgInSelectBg) : (out() ? st::msgOutBg : st::msgInBg)); + style::color sh(selected ? (out() ? st::msgOutSelectShadow : st::msgInSelectShadow) : (out() ? st::msgOutShadow : st::msgInShadow)); + RoundCorners cors(selected ? (out() ? MessageOutSelectedCorners : MessageInSelectedCorners) : (out() ? MessageOutCorners : MessageInCorners)); + App::roundRect(p, r, bg, cors, &sh); if (!out() && _history->peer->chat) { p.setFont(st::msgNameFont->f); @@ -4822,7 +4896,7 @@ int32 HistoryMessage::resize(int32 width, bool dontRecountText, const HistoryIte if (_media) _media->resize(_maxw - st::msgPadding.left() - st::msgPadding.right(), dontRecountText, this); } else { _height = _textHeight; - if (_media) _height += st::msgPadding.bottom() + _media->resize(nwidth, dontRecountText, this); + if (_media && _media->isDisplayed()) _height += st::msgPadding.bottom() + _media->resize(nwidth, dontRecountText, this); } if (!out() && _history->peer->chat) { _height += st::msgNameFont->height; @@ -4906,7 +4980,7 @@ void HistoryMessage::getState(TextLinkPtr &lnk, bool &inText, int32 x, int32 y) void HistoryMessage::getStateFromMessageText(TextLinkPtr &lnk, bool &inText, int32 x, int32 y, const QRect &r) const { QRect trect(r.marginsAdded(-st::msgPadding)); TextLinkPtr medialnk; - if (_media) { + if (_media && _media->isDisplayed()) { if (y >= trect.bottom() - _media->height() && y < trect.bottom()) { _media->getState(lnk, inText, x - trect.left(), y + _media->height() - trect.bottom(), this); return; @@ -4943,7 +5017,7 @@ void HistoryMessage::getSymbol(uint16 &symbol, bool &after, bool &upon, int32 x, r.setTop(r.top() + st::msgNameFont->height); } QRect trect(r.marginsAdded(-st::msgPadding)); - if (_media) { + if (_media && _media->isDisplayed()) { trect.setBottom(trect.bottom() - _media->height() - st::msgPadding.bottom()); } _text.getSymbol(symbol, after, upon, x - trect.x(), y - trect.y(), trect.width()); @@ -5323,14 +5397,9 @@ void HistoryReply::drawReplyTo(QPainter &p, int32 x, int32 y, int32 w, bool sele ImagePtr replyPreview = replyToMsg->getMedia()->replyPreview(); if (!replyPreview->isNull()) { QRect to(x + st::msgReplyBarSkip, y + st::msgReplyPadding.top() + st::msgReplyBarPos.y(), st::msgReplyBarSize.height(), st::msgReplyBarSize.height()); - if (replyPreview->width() == replyPreview->height()) { - p.drawPixmap(to.x(), to.y(), replyPreview->pix()); - } else { - QRect from = (replyPreview->width() > replyPreview->height()) ? QRect((replyPreview->width() - replyPreview->height()) / 2, 0, replyPreview->height(), replyPreview->height()) : QRect(0, (replyPreview->height() - replyPreview->width()) / 2, replyPreview->width(), replyPreview->width()); - p.drawPixmap(to, replyPreview->pix(), from); - } + p.drawPixmap(to.x(), to.y(), replyPreview->pixSingle(replyPreview->width() / cIntRetinaFactor(), replyPreview->height() / cIntRetinaFactor(), to.width(), to.height())); if (selected) { - p.fillRect(to, textstyleCurrent()->selectOverlay->b); + App::roundRect(p, to, textstyleCurrent()->selectOverlay, SelectedOverlayCorners); } } } @@ -5653,16 +5722,8 @@ void HistoryServiceMsg::draw(QPainter &p, uint32 selection) const { left += (width - _maxw) / 2; width = _maxw; } -// QRect r(0, st::msgServiceMargin.top(), _history->width, height); - QRect r(left, st::msgServiceMargin.top(), width, height); - p.setBrush(App::msgServiceBG()->b); - p.setPen(Qt::NoPen); -// p.fillRect(r, App::msgServiceBG()->b); - p.drawRoundedRect(r, st::msgServiceRadius, st::msgServiceRadius); - if (selection == FullItemSel) { - p.setBrush(st::msgServiceSelectBG->b); - p.drawRoundedRect(r, st::msgServiceRadius, st::msgServiceRadius); - } + App::roundRect(p, left, st::msgServiceMargin.top(), width, height, App::msgServiceBg(), (selection == FullItemSel) ? ServiceSelectedCorners : ServiceCorners); + p.setBrush(Qt::NoBrush); p.setPen(st::msgServiceColor->p); p.setFont(st::msgServiceFont->f); diff --git a/Telegram/SourceFiles/history.h b/Telegram/SourceFiles/history.h index e82d93c47..f708d1951 100644 --- a/Telegram/SourceFiles/history.h +++ b/Telegram/SourceFiles/history.h @@ -805,6 +805,9 @@ public: virtual const QString inDialogsText() const = 0; virtual const QString inHistoryText() const = 0; virtual bool hasPoint(int32 x, int32 y, const HistoryItem *parent, int32 width = -1) const = 0; + virtual bool isDisplayed() const { + return true; + } virtual int32 countHeight(const HistoryItem *parent, int32 width = -1) const { return height(); } @@ -873,6 +876,7 @@ public: } const QString inDialogsText() const; const QString inHistoryText() const; + const Text &captionForClone() const; bool hasPoint(int32 x, int32 y, const HistoryItem *parent, int32 width = -1) const; void getState(TextLinkPtr &lnk, bool &inText, int32 x, int32 y, const HistoryItem *parent, int32 width = -1) const; HistoryMedia *clone() const; @@ -914,6 +918,7 @@ public: void initDimensions(const HistoryItem *parent); void draw(QPainter &p, const HistoryItem *parent, bool selected, int32 width = -1) const; + int32 resize(int32 width, bool dontRecountText = false, const HistoryItem *parent = 0); HistoryMediaType type() const { return MediaTypeVideo; } @@ -1097,6 +1102,9 @@ public: void initDimensions(const HistoryItem *parent); void draw(QPainter &p, const HistoryItem *parent, bool selected, int32 width = -1) const; + bool isDisplayed() const { + return !data->pendingTill; + } int32 resize(int32 width, bool dontRecountText = false, const HistoryItem *parent = 0); HistoryMediaType type() const { return MediaTypeWebPage; @@ -1252,7 +1260,9 @@ public: QString notificationText() const; void updateMedia(const MTPMessageMedia &media) { - if (_media) _media->updateFrom(media); + if (_media) { + _media->updateFrom(media); + } } void updateStickerEmoji(); diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index 06026c920..6e47154ae 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -1424,10 +1424,8 @@ void HistoryHider::paintEvent(QPaintEvent *e) { p.setPen(st::black->p); toText.drawElided(p, box.left() + (box.width() - toTextWidth) / 2, box.top() + st::boxPadding.top(), toTextWidth + 1); } else { - p.setBrush(st::forwardBG->b); - p.setPen(Qt::NoPen); int32 w = st::forwardMargins.left() + _chooseWidth + st::forwardMargins.right(), h = st::forwardMargins.top() + st::forwardFont->height + st::forwardMargins.bottom(); - p.drawRoundedRect((width() - w) / 2, (height() - h) / 2, w, h, st::forwardRadius, st::forwardRadius); + App::roundRect(p, (width() - w) / 2, (height() - h) / 2, w, h, st::forwardBg, ForwardCorners); p.setPen(st::white->p); p.drawText(box, lang(lng_forward_choose), QTextOption(style::al_center)); @@ -4096,12 +4094,7 @@ void HistoryWidget::drawFieldBackground(QPainter &p) { ImagePtr replyPreview = _replyTo->getMedia()->replyPreview(); if (!replyPreview->isNull()) { QRect to(replyLeft, backy + st::msgReplyPadding.top(), st::msgReplyBarSize.height(), st::msgReplyBarSize.height()); - if (replyPreview->width() == replyPreview->height()) { - p.drawPixmap(to.x(), to.y(), replyPreview->pix()); - } else { - QRect from = (replyPreview->width() > replyPreview->height()) ? QRect((replyPreview->width() - replyPreview->height()) / 2, 0, replyPreview->height(), replyPreview->height()) : QRect(0, (replyPreview->height() - replyPreview->width()) / 2, replyPreview->width(), replyPreview->width()); - p.drawPixmap(to, replyPreview->pix(), from); - } + p.drawPixmap(to.x(), to.y(), replyPreview->pixSingle(replyPreview->width() / cIntRetinaFactor(), replyPreview->height() / cIntRetinaFactor(), to.width(), to.height())); } replyLeft += st::msgReplyBarSize.height() + st::msgReplyBarSkip - st::msgReplyBarSize.width() - st::msgReplyBarPos.x(); } @@ -4230,9 +4223,7 @@ void HistoryWidget::paintEvent(QPaintEvent *e) { style::font font(st::msgServiceFont); int32 w = font->m.width(lang(lng_willbe_history)) + st::msgPadding.left() + st::msgPadding.right(), h = font->height + st::msgServicePadding.top() + st::msgServicePadding.bottom() + 2; QRect tr((width() - w) / 2, (height() - _field.height() - 2 * st::sendPadding - h) / 2, w, h); - p.setPen(Qt::NoPen); - p.setBrush(App::msgServiceBG()->b); - p.drawRoundedRect(tr, st::msgServiceRadius, st::msgServiceRadius); + App::roundRect(p, tr, App::msgServiceBg(), ServiceCorners); p.setPen(st::msgServiceColor->p); p.setFont(font->f); diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index e558a09b4..cc776c9ac 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -1013,6 +1013,7 @@ void MainWidget::stopAnimActive() { } void MainWidget::searchMessages(const QString &query) { + App::wnd()->hideMediaview(); dialogs.searchMessages(query); if (!cWideMode()) onShowDialogs(); } @@ -2507,6 +2508,8 @@ void MainWidget::openLocalUrl(const QString &url) { } void MainWidget::openUserByName(const QString &username, bool toProfile) { + App::wnd()->hideMediaview(); + UserData *user = App::userByName(username); if (user) { if (toProfile) { @@ -2520,10 +2523,12 @@ void MainWidget::openUserByName(const QString &username, bool toProfile) { } void MainWidget::joinGroupByHash(const QString &hash) { + App::wnd()->hideMediaview(); MTP::send(MTPmessages_CheckChatInvite(MTP_string(hash)), rpcDone(&MainWidget::inviteCheckDone, hash), rpcFail(&MainWidget::inviteCheckFail)); } void MainWidget::stickersBox(const MTPInputStickerSet &set) { + App::wnd()->hideMediaview(); StickerSetBox *box = new StickerSetBox(set); connect(box, SIGNAL(installed(uint64)), this, SLOT(onStickersInstalled(uint64))); App::wnd()->showLayer(box); diff --git a/Telegram/SourceFiles/mediaview.cpp b/Telegram/SourceFiles/mediaview.cpp index fe45aed96..af8b8f98e 100644 --- a/Telegram/SourceFiles/mediaview.cpp +++ b/Telegram/SourceFiles/mediaview.cpp @@ -41,6 +41,14 @@ namespace { MediaView *_view; }; + + + TextParseOptions _captionTextOptions = { + TextParseLinks | TextParseMentions | TextParseHashtags | TextParseMultiline | TextParseRichText, // flags + 0, // maxw + 0, // maxh + Qt::LayoutDirectionAuto, // dir + }; } MediaView::MediaView() : TWidget(App::wnd()), @@ -282,6 +290,14 @@ void MediaView::updateControls() { } else { _leftNavVisible = _rightNavVisible = false; } + if (!_caption.isEmpty()) { + int32 skipw = qMax(_dateNav.left() + _dateNav.width(), _headerNav.left() + _headerNav.width()); + int32 maxw = qMin(qMax(width() - 2 * skipw - st::mvCaptionPadding.left() - st::mvCaptionPadding.right() - 2 * st::mvCaptionMargin.width(), int(st::msgMinWidth)), _caption.maxWidth()); + int32 maxh = qMin(_caption.countHeight(maxw), int(height() / 4 - st::mvCaptionPadding.top() - st::mvCaptionPadding.bottom() - 2 * st::mvCaptionMargin.height())); + _captionRect = QRect((width() - maxw) / 2, height() - maxh - st::mvCaptionPadding.bottom() - st::mvCaptionMargin.height(), maxw, maxh); + } else { + _captionRect = QRect(); + } updateOver(mapFromGlobal(QCursor::pos())); update(); } @@ -336,7 +352,7 @@ bool MediaView::animStep(float64 msp) { } else { a_cOpacity.update(dt, anim::linear); } - QRegion toUpdate = QRegion() + (_over == OverLeftNav ? _leftNav : _leftNavIcon) + (_over == OverRightNav ? _rightNav : _rightNavIcon) + (_over == OverClose ? _closeNav : _closeNavIcon) + _saveNavIcon + _moreNavIcon + _headerNav + _nameNav + _dateNav; + QRegion toUpdate = QRegion() + (_over == OverLeftNav ? _leftNav : _leftNavIcon) + (_over == OverRightNav ? _rightNav : _rightNavIcon) + (_over == OverClose ? _closeNav : _closeNavIcon) + _saveNavIcon + _moreNavIcon + _headerNav + _nameNav + _dateNav + _captionRect.marginsAdded(st::mvCaptionPadding); update(toUpdate); if (dt < 1) result = true; } @@ -641,7 +657,7 @@ void MediaView::showPhoto(PhotoData *photo, HistoryItem *context) { findCurrent(); } - displayPhoto(photo); + displayPhoto(photo, context); preloadData(0); activateControls(); } @@ -679,7 +695,7 @@ void MediaView::showPhoto(PhotoData *photo, PeerData *context) { loadBack(); } } - displayPhoto(photo); + displayPhoto(photo, 0); preloadData(0); activateControls(); } @@ -722,11 +738,18 @@ void MediaView::showDocument(DocumentData *doc, HistoryItem *context) { activateControls(); } -void MediaView::displayPhoto(PhotoData *photo) { +void MediaView::displayPhoto(PhotoData *photo, HistoryItem *item) { _photo = photo; _doc = 0; _zoom = 0; + _caption = Text(); + if (HistoryMessage *itemMsg = item ? item->toHistoryMessage() : 0) { + if (HistoryPhoto *photoMsg = dynamic_cast(itemMsg->getMedia())) { + _caption.setText(st::mvCaptionFont, photoMsg->captionForClone().original(0, 0xFFFF), _captionTextOptions); + } + } + _zoomToScreen = 0; MTP::clearLoaderPriorities(); _full = -1; @@ -774,6 +797,7 @@ void MediaView::displayPhoto(PhotoData *photo) { void MediaView::displayDocument(DocumentData *doc, HistoryItem *item) { _doc = doc; + _caption = Text(); QString already = _doc->already(true); if (_doc->sticker && !_doc->sticker->img->isNull() && _doc->sticker->img->loaded()) { _currentGif.stop(); @@ -966,12 +990,12 @@ void MediaView::paintEvent(QPaintEvent *e) { _full = 1; } else if (_full < 0 && _photo->medium->loaded()) { int32 h = int((_photo->full->height() * (qreal(w) / qreal(_photo->full->width()))) + 0.9999); - _current = _photo->medium->pixBlurredNoCache(w, h); + _current = _photo->medium->pixNoCache(w, h, true, true); if (cRetina()) _current.setDevicePixelRatio(cRetinaFactor()); _full = 0; } else if (_current.isNull() && _photo->thumb->loaded()) { int32 h = int((_photo->full->height() * (qreal(w) / qreal(_photo->full->width()))) + 0.9999); - _current = _photo->thumb->pixBlurredNoCache(w, h); + _current = _photo->thumb->pixNoCache(w, h, true, true); if (cRetina()) _current.setDevicePixelRatio(cRetinaFactor()); } } @@ -1028,9 +1052,7 @@ void MediaView::paintEvent(QPaintEvent *e) { _saveMsgOpacity.update(qMin(progress, 1.), anim::linear); if (_saveMsgOpacity.current() > 0) { p.setOpacity(_saveMsgOpacity.current()); - p.setBrush(st::medviewSaveMsg->b); - p.setPen(Qt::NoPen); - p.drawRoundedRect(_saveMsg, st::medviewSaveMsgRadius, st::medviewSaveMsgRadius); + App::roundRect(p, _saveMsg, st::medviewSaveMsg, MediaviewSaveCorners); p.drawPixmap(_saveMsg.topLeft() + st::medviewSaveMsgCheckPos, App::sprite(), st::medviewSaveMsgCheck); p.setPen(st::white->p); @@ -1216,6 +1238,23 @@ void MediaView::paintEvent(QPaintEvent *e) { p.drawLine(_dateNav.left(), _dateNav.top() + st::mvFont->ascent + 1, _dateNav.right(), _dateNav.top() + st::mvFont->ascent + 1); } } + + // caption + if (!_caption.isEmpty()) { + QRect outer(_captionRect.marginsAdded(st::mvCaptionPadding)); + if (outer.intersects(r)) { + p.setOpacity(co); + p.setBrush(st::mvCaptionBg->b); + p.setPen(Qt::NoPen); + p.drawRoundedRect(outer, st::mvCaptionRadius, st::mvCaptionRadius); + if (_captionRect.intersects(r)) { + textstyleSet(&st::medviewSaveAsTextStyle); + p.setPen(st::white->p); + _caption.drawElided(p, _captionRect.x(), _captionRect.y(), _captionRect.width(), _captionRect.height() / st::mvCaptionFont->height); + textstyleRestore(); + } + } + } } // static uint64 t = getms(); @@ -1334,7 +1373,7 @@ void MediaView::moveToNext(int32 delta) { if (HistoryItem *item = App::histItemById(_history->_overview[_overview][_index])) { _msgid = item->id; switch (item->getMedia()->type()) { - case MediaTypePhoto: displayPhoto(static_cast(item->getMedia())->photo()); preloadData(delta); break; + case MediaTypePhoto: displayPhoto(static_cast(item->getMedia())->photo(), item); preloadData(delta); break; case MediaTypeDocument: displayDocument(static_cast(item->getMedia())->document(), item); preloadData(delta); break; case MediaTypeSticker: displayDocument(static_cast(item->getMedia())->document(), item); preloadData(delta); break; } @@ -1346,7 +1385,7 @@ void MediaView::moveToNext(int32 delta) { } else if (_user) { if (newIndex >= 0 && newIndex < _user->photos.size()) { _index = newIndex; - displayPhoto(_user->photos[_index]); + displayPhoto(_user->photos[_index], 0); preloadData(delta); } if (delta > 0 && _index > _user->photos.size() - MediaOverviewStartPerPage) { @@ -1405,7 +1444,10 @@ void MediaView::preloadData(int32 delta) { void MediaView::mousePressEvent(QMouseEvent *e) { updateOver(e->pos()); if (_menu || !_receiveMouse) return; - textlnkDown(textlnkOver()); + + if (textlnkDown() != textlnkOver()) { + textlnkDown(textlnkOver()); + } if (e->button() == Qt::LeftButton) { _down = OverNone; @@ -1540,9 +1582,12 @@ bool MediaView::updateOverState(OverState newState) { void MediaView::updateOver(QPoint pos) { TextLinkPtr lnk; bool inText; - if (_saveMsgStarted) { + + if (_saveMsgStarted && _saveMsg.contains(pos)) { _saveMsgText.getState(lnk, inText, pos.x() - _saveMsg.x() - st::medviewSaveMsgPadding.left(), pos.y() - _saveMsg.y() - st::medviewSaveMsgPadding.top(), _saveMsg.width() - st::medviewSaveMsgPadding.left() - st::medviewSaveMsgPadding.right()); - } + } else if (_captionRect.contains(pos)) { + _caption.getState(lnk, inText, pos.x() - _captionRect.x(), pos.y() - _captionRect.y(), _captionRect.width()); + } // retina if (pos.x() == width()) { @@ -1555,7 +1600,7 @@ void MediaView::updateOver(QPoint pos) { if (lnk != textlnkOver()) { textlnkOver(lnk); setCursor((textlnkOver() || textlnkDown()) ? style::cur_pointer : style::cur_default); - updateImage(); + update(QRegion(_saveMsg) + _captionRect); } if (_pressed || _dragging) return; diff --git a/Telegram/SourceFiles/mediaview.h b/Telegram/SourceFiles/mediaview.h index 700aca0fe..77a0a738d 100644 --- a/Telegram/SourceFiles/mediaview.h +++ b/Telegram/SourceFiles/mediaview.h @@ -99,7 +99,7 @@ public slots: private: - void displayPhoto(PhotoData *photo); + void displayPhoto(PhotoData *photo, HistoryItem *item); void displayDocument(DocumentData *doc, HistoryItem *item); void findCurrent(); void loadBack(); @@ -124,6 +124,9 @@ private: QString _dateText; QString _headerText; + Text _caption; + QRect _captionRect; + uint64 _animStarted; int32 _width, _x, _y, _w, _h, _xStart, _yStart; diff --git a/Telegram/SourceFiles/overviewwidget.cpp b/Telegram/SourceFiles/overviewwidget.cpp index 4d17ccba6..720041606 100644 --- a/Telegram/SourceFiles/overviewwidget.cpp +++ b/Telegram/SourceFiles/overviewwidget.cpp @@ -688,7 +688,7 @@ void OverviewInner::paintEvent(QPaintEvent *e) { bool out = item->out(); int32 mw = media->maxWidth(), left = (out ? st::msgMargin.right() : st::msgMargin.left()) + (out && mw < w ? (w - mw) : 0); if (!out && _hist->peer->chat) { - p.drawPixmap(left, media->countHeight(item, w) - st::msgPhotoSize, item->from()->photo->pix(st::msgPhotoSize)); + p.drawPixmap(left, media->countHeight(item, w) - st::msgPhotoSize, item->from()->photo->pixRounded(st::msgPhotoSize)); left += st::msgPhotoSkip; } @@ -720,9 +720,7 @@ void OverviewInner::paintEvent(QPaintEvent *e) { width = strwidth; QRect r(left, st::msgServiceMargin.top(), width, height); - p.setBrush(App::msgServiceBG()->b); - p.setPen(Qt::NoPen); - p.drawRoundedRect(r, st::msgServiceRadius, st::msgServiceRadius); + App::roundRect(p, r, App::msgServiceBg(), ServiceCorners); p.setBrush(Qt::NoBrush); p.setPen(st::msgServiceColor->p); diff --git a/Telegram/SourceFiles/window.cpp b/Telegram/SourceFiles/window.cpp index b3358ab12..0b506c4ca 100644 --- a/Telegram/SourceFiles/window.cpp +++ b/Telegram/SourceFiles/window.cpp @@ -810,9 +810,7 @@ void Window::hideLayer(bool fast) { layerBG = 0; } } - if (_mediaView && !_mediaView->isHidden()) { - _mediaView->hide(); - } + hideMediaview(); } bool Window::hideInnerLayer() { @@ -843,10 +841,14 @@ void Window::layerHidden() { layerBG->deleteLater(); } layerBG = 0; - if (_mediaView && !_mediaView->isHidden()) _mediaView->hide(); + hideMediaview(); setInnerFocus(); } +void Window::hideMediaview() { + if (_mediaView && !_mediaView->isHidden()) _mediaView->hide(); +} + void Window::setInnerFocus() { if (_passcode) { _passcode->setInnerFocus(); @@ -1691,7 +1693,7 @@ QImage Window::iconWithCounter(int size, int count, style::color bg, bool smallI void Window::sendPaths() { if (App::passcoded()) return; - if (_mediaView && !_mediaView->isHidden()) _mediaView->hide(); + hideMediaview(); if (settings) { hideSettings(); } else { diff --git a/Telegram/SourceFiles/window.h b/Telegram/SourceFiles/window.h index 61504ec17..3835f573c 100644 --- a/Telegram/SourceFiles/window.h +++ b/Telegram/SourceFiles/window.h @@ -231,6 +231,7 @@ public: void changingMsgId(HistoryItem *row, MsgId newId); bool isActive(bool cached = true) const; + void hideMediaview(); public slots: