Slightly improved style of mini icons in dialogs list for replies story.

This commit is contained in:
23rd 2023-09-13 12:09:00 +03:00
parent c057c88d30
commit 976c696004
4 changed files with 36 additions and 23 deletions

View file

@ -35,6 +35,12 @@ ForumTopicIcon {
textTop: pixels; textTop: pixels;
} }
DialogsMiniIcon {
icon: ThreeStateIcon;
skipText: pixels;
skipMedia: pixels;
}
defaultForumTopicIcon: ForumTopicIcon { defaultForumTopicIcon: ForumTopicIcon {
size: 21px; size: 21px;
font: font(bold 11px); font: font(bold 11px);
@ -462,17 +468,24 @@ dialogsMiniPreviewSkip: 2px;
dialogsMiniPreviewRight: 3px; dialogsMiniPreviewRight: 3px;
dialogsMiniPlay: icon{{ "dialogs/dialogs_mini_play", videoPlayIconFg }}; dialogsMiniPlay: icon{{ "dialogs/dialogs_mini_play", videoPlayIconFg }};
dialogsMiniForwardIcon: ThreeStateIcon { dialogsMiniForward: DialogsMiniIcon {
icon: icon {{ "mini_forward", dialogsTextFg, point(0px, 1px) }}; icon: ThreeStateIcon {
over: icon {{ "mini_forward", dialogsTextFgOver, point(0px, 1px) }}; icon: icon {{ "mini_forward", dialogsTextFg, point(0px, 1px) }};
active: icon {{ "mini_forward", dialogsTextFgActive, point(0px, 1px) }}; over: icon {{ "mini_forward", dialogsTextFgOver, point(0px, 1px) }};
active: icon {{ "mini_forward", dialogsTextFgActive, point(0px, 1px) }};
}
skipText: 1px;
skipMedia: 2px;
} }
dialogsMiniIconSkip: 2px;
dialogsMiniIconTextSkip: 1px; dialogsMiniReplyStory: DialogsMiniIcon {
dialogsMiniReplyStoryIcon: ThreeStateIcon { icon: ThreeStateIcon {
icon: icon {{ "mini_reply_story", dialogsTextFg, point(0px, 1px) }}; icon: icon {{ "mini_reply_story", dialogsTextFg, point(0px, 1px) }};
over: icon {{ "mini_reply_story", dialogsTextFgOver, point(0px, 1px) }}; over: icon {{ "mini_reply_story", dialogsTextFgOver, point(0px, 1px) }};
active: icon {{ "mini_reply_story", dialogsTextFgActive, point(0px, 1px) }}; active: icon {{ "mini_reply_story", dialogsTextFgActive, point(0px, 1px) }};
}
skipText: 4px;
skipMedia: 5px;
} }
dialogsUnreadMention: ThreeStateIcon { dialogsUnreadMention: ThreeStateIcon {

View file

@ -160,9 +160,9 @@ void MessageView::prepare(
options.spoilerLoginCode = true; options.spoilerLoginCode = true;
auto preview = item->toPreview(options); auto preview = item->toPreview(options);
_leftIcon = (preview.icon == ItemPreview::Icon::ForwardedMessage) _leftIcon = (preview.icon == ItemPreview::Icon::ForwardedMessage)
? &st::dialogsMiniForwardIcon ? &st::dialogsMiniForward
: (preview.icon == ItemPreview::Icon::ReplyToStory) : (preview.icon == ItemPreview::Icon::ReplyToStory)
? &st::dialogsMiniReplyStoryIcon ? &st::dialogsMiniReplyStory
: nullptr; : nullptr;
const auto hasImages = !preview.images.empty(); const auto hasImages = !preview.images.empty();
const auto history = item->history(); const auto history = item->history();
@ -325,7 +325,7 @@ void MessageView::paint(
if (_leftIcon) { if (_leftIcon) {
const auto &icon = ThreeStateIcon( const auto &icon = ThreeStateIcon(
*_leftIcon, _leftIcon->icon,
context.active, context.active,
context.selected); context.selected);
const auto w = (icon.width()); const auto w = (icon.width());
@ -342,8 +342,8 @@ void MessageView::paint(
rect.setLeft(rect.x() rect.setLeft(rect.x()
+ w + w
+ (_imagesCache.empty() + (_imagesCache.empty()
? st::dialogsMiniIconTextSkip ? _leftIcon->skipText
: st::dialogsMiniIconSkip)); : _leftIcon->skipMedia));
} }
} }
for (const auto &image : _imagesCache) { for (const auto &image : _imagesCache) {

View file

@ -15,7 +15,7 @@ enum class ImageRoundRadius;
namespace style { namespace style {
struct DialogRow; struct DialogRow;
struct ThreeStateIcon; struct DialogsMiniIcon;
} // namespace style } // namespace style
namespace Ui { namespace Ui {
@ -93,7 +93,7 @@ private:
mutable std::vector<ItemPreviewImage> _imagesCache; mutable std::vector<ItemPreviewImage> _imagesCache;
mutable std::unique_ptr<SpoilerAnimation> _spoiler; mutable std::unique_ptr<SpoilerAnimation> _spoiler;
mutable std::unique_ptr<LoadingContext> _loadingContext; mutable std::unique_ptr<LoadingContext> _loadingContext;
mutable const style::ThreeStateIcon *_leftIcon = nullptr; mutable const style::DialogsMiniIcon *_leftIcon = nullptr;
mutable bool _hasPlainLinkAtBegin = false; mutable bool _hasPlainLinkAtBegin = false;
}; };

View file

@ -43,7 +43,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "api/api_bot.h" #include "api/api_bot.h"
#include "styles/style_widgets.h" #include "styles/style_widgets.h"
#include "styles/style_chat.h" #include "styles/style_chat.h"
#include "styles/style_dialogs.h" // dialogsMiniReplyStoryIcon. #include "styles/style_dialogs.h" // dialogsMiniReplyStory.
#include <QtGui/QGuiApplication> #include <QtGui/QGuiApplication>
@ -466,8 +466,8 @@ void HistoryMessageReply::updateName(
w, w,
std::min(replyToText.maxWidth(), st::maxSignatureSize)) std::min(replyToText.maxWidth(), st::maxSignatureSize))
+ (storyReply + (storyReply
? (st::dialogsMiniIconSkip ? (st::dialogsMiniReplyStory.skipText
+ st::dialogsMiniReplyStoryIcon.icon.width()) + st::dialogsMiniReplyStory.icon.icon.width())
: 0); : 0);
} else { } else {
maxReplyWidth = st::msgDateFont->width(statePhrase()); maxReplyWidth = st::msgDateFont->width(statePhrase());
@ -611,14 +611,14 @@ void HistoryMessageReply::paint(
? stm->replyTextPalette ? stm->replyTextPalette
: st->imgReplyTextPalette()); : st->imgReplyTextPalette());
if (storyReply) { if (storyReply) {
st::dialogsMiniReplyStoryIcon.icon.paint( st::dialogsMiniReplyStory.icon.icon.paint(
p, p,
replyToTextPosition, replyToTextPosition,
w - st::msgReplyBarSkip - previewSkip, w - st::msgReplyBarSkip - previewSkip,
replyToTextPalette->linkFg->c); replyToTextPalette->linkFg->c);
replyToTextPosition += QPoint( replyToTextPosition += QPoint(
st::dialogsMiniIconSkip st::dialogsMiniReplyStory.skipText
+ st::dialogsMiniReplyStoryIcon.icon.width(), + st::dialogsMiniReplyStory.icon.icon.width(),
0); 0);
} }
replyToText.draw(p, { replyToText.draw(p, {