Improve design of locked tags.
BIN
Telegram/Resources/icons/dialogs/mini_arrow.png
Normal file
After Width: | Height: | Size: 212 B |
BIN
Telegram/Resources/icons/dialogs/mini_arrow@2x.png
Normal file
After Width: | Height: | Size: 267 B |
BIN
Telegram/Resources/icons/dialogs/mini_arrow@3x.png
Normal file
After Width: | Height: | Size: 368 B |
BIN
Telegram/Resources/icons/dialogs/mini_tag_lock.png
Normal file
After Width: | Height: | Size: 283 B |
BIN
Telegram/Resources/icons/dialogs/mini_tag_lock@2x.png
Normal file
After Width: | Height: | Size: 378 B |
BIN
Telegram/Resources/icons/dialogs/mini_tag_lock@3x.png
Normal file
After Width: | Height: | Size: 550 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 196 B |
Before Width: | Height: | Size: 244 B |
BIN
Telegram/Resources/icons/menu/tag_filter.png
Normal file
After Width: | Height: | Size: 634 B |
BIN
Telegram/Resources/icons/menu/tag_filter@2x.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Telegram/Resources/icons/menu/tag_filter@3x.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
Telegram/Resources/icons/menu/tag_remove.png
Normal file
After Width: | Height: | Size: 692 B |
BIN
Telegram/Resources/icons/menu/tag_remove@2x.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
Telegram/Resources/icons/menu/tag_remove@3x.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
Telegram/Resources/icons/menu/tag_rename.png
Normal file
After Width: | Height: | Size: 614 B |
BIN
Telegram/Resources/icons/menu/tag_rename@2x.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Telegram/Resources/icons/menu/tag_rename@3x.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 593 B |
Before Width: | Height: | Size: 685 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1.6 KiB |
|
@ -626,7 +626,10 @@ searchedBarPosition: point(17px, 7px);
|
||||||
|
|
||||||
dialogsSearchTagSkip: point(8px, 4px);
|
dialogsSearchTagSkip: point(8px, 4px);
|
||||||
dialogsSearchTagBottom: 10px;
|
dialogsSearchTagBottom: 10px;
|
||||||
dialogsSearchTagLocked: icon{{ "emoji/premium_lock", lightButtonFgOver }};
|
dialogsSearchTagLocked: icon{{ "dialogs/mini_tag_lock", lightButtonFgOver }};
|
||||||
dialogsSearchTagPromo: defaultTextStyle;
|
dialogsSearchTagPromo: defaultTextStyle;
|
||||||
dialogsSearchTagArrow: icon{{ "dialogs/tags_arrow", windowSubTextFg }};
|
dialogsSearchTagArrow: icon{{ "dialogs/mini_arrow", windowSubTextFg }};
|
||||||
dialogsSearchTagArrowPadding: margins(0px, 3px, 0px, 0px);
|
dialogsSearchTagArrowPadding: margins(-6px, 3px, 0px, 0px);
|
||||||
|
dialogsSearchTagPromoLeft: 6px;
|
||||||
|
dialogsSearchTagPromoRight: 1px;
|
||||||
|
dialogsSearchTagPromoSkip: 6px;
|
||||||
|
|
|
@ -1862,6 +1862,9 @@ void InnerWidget::setSearchedPressed(int pressed) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void InnerWidget::resizeEvent(QResizeEvent *e) {
|
void InnerWidget::resizeEvent(QResizeEvent *e) {
|
||||||
|
if (_searchTags) {
|
||||||
|
_searchTags->resizeToWidth(width() - 2 * _searchTagsLeft);
|
||||||
|
}
|
||||||
resizeEmptyLabel();
|
resizeEmptyLabel();
|
||||||
moveCancelSearchButtons();
|
moveCancelSearchButtons();
|
||||||
}
|
}
|
||||||
|
|
|
@ -214,7 +214,9 @@ void SearchTags::layout() {
|
||||||
auto x = 0;
|
auto x = 0;
|
||||||
auto y = 0;
|
auto y = 0;
|
||||||
for (auto &tag : _tags) {
|
for (auto &tag : _tags) {
|
||||||
const auto width = xbase + tag.textWidth;
|
const auto width = xbase + (tag.promo
|
||||||
|
? std::max(0, tag.textWidth - st::dialogsSearchTagPromoLeft - st::dialogsSearchTagPromoRight)
|
||||||
|
: tag.textWidth);
|
||||||
if (x > 0 && x + width > _width) {
|
if (x > 0 && x + width > _width) {
|
||||||
x = 0;
|
x = 0;
|
||||||
y += ybase + skip.y();
|
y += ybase + skip.y();
|
||||||
|
@ -224,7 +226,7 @@ void SearchTags::layout() {
|
||||||
}
|
}
|
||||||
_height = y + ybase + st::dialogsSearchTagBottom;
|
_height = y + ybase + st::dialogsSearchTagBottom;
|
||||||
if (_tags.size() == 1 && _tags.front().promo) {
|
if (_tags.size() == 1 && _tags.front().promo) {
|
||||||
_additionalLeft = x;
|
_additionalLeft = x - skip.x() + st::dialogsSearchTagPromoSkip;
|
||||||
const auto additionalWidth = _width - _additionalLeft;
|
const auto additionalWidth = _width - _additionalLeft;
|
||||||
_additionalText = FillAdditionalText(_owner, additionalWidth);
|
_additionalText = FillAdditionalText(_owner, additionalWidth);
|
||||||
} else {
|
} else {
|
||||||
|
@ -335,7 +337,11 @@ void SearchTags::paint(
|
||||||
inner.topLeft() + QPoint(skip, skip),
|
inner.topLeft() + QPoint(skip, skip),
|
||||||
QSize(st::reactionInlineImage, st::reactionInlineImage));
|
QSize(st::reactionInlineImage, st::reactionInlineImage));
|
||||||
if (tag.promo) {
|
if (tag.promo) {
|
||||||
st::dialogsSearchTagLocked.paintInCenter(p, image);
|
st::dialogsSearchTagLocked.paintInCenter(p, QRect(
|
||||||
|
inner.x(),
|
||||||
|
inner.y() + skip,
|
||||||
|
size - st::dialogsSearchTagPromoLeft,
|
||||||
|
st::reactionInlineImage));
|
||||||
} else if (const auto custom = tag.custom.get()) {
|
} else if (const auto custom = tag.custom.get()) {
|
||||||
const auto textFg = tag.selected
|
const auto textFg = tag.selected
|
||||||
? st::dialogsNameFgActive->c
|
? st::dialogsNameFgActive->c
|
||||||
|
@ -363,7 +369,7 @@ void SearchTags::paintAdditionalText(Painter &p, QPoint position) const {
|
||||||
const auto height = st::dialogsSearchTagPromo.font->height;
|
const auto height = st::dialogsSearchTagPromo.font->height;
|
||||||
const auto y = position.y() + tag.y() + (tag.height() - height) / 2;
|
const auto y = position.y() + tag.y() + (tag.height() - height) / 2;
|
||||||
p.setPen(st::windowSubTextFg);
|
p.setPen(st::windowSubTextFg);
|
||||||
_additionalText.drawLeft(p, x, y, _width - x, _width);
|
_additionalText.drawLeft(p, x, y, _width - _additionalLeft, _width);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SearchTags::paintBackground(
|
void SearchTags::paintBackground(
|
||||||
|
@ -409,8 +415,11 @@ void SearchTags::paintText(
|
||||||
? st::dialogsTextFgActive
|
? st::dialogsTextFgActive
|
||||||
: st::windowSubTextFg);
|
: st::windowSubTextFg);
|
||||||
p.setFont(st::reactionInlineTagFont);
|
p.setFont(st::reactionInlineTagFont);
|
||||||
const auto x = geometry.x() + st::reactionInlineTagNamePosition.x();
|
const auto position = tag.promo
|
||||||
const auto y = geometry.y() + st::reactionInlineTagNamePosition.y();
|
? st::reactionInlineTagPromoPosition
|
||||||
|
: st::reactionInlineTagNamePosition;
|
||||||
|
const auto x = geometry.x() + position.x();
|
||||||
|
const auto y = geometry.y() + position.y();
|
||||||
p.drawText(x, y + st::reactionInlineTagFont->ascent, tag.text);
|
p.drawText(x, y + st::reactionInlineTagFont->ascent, tag.text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -327,6 +327,8 @@ Widget::Widget(
|
||||||
) | rpl::start_with_next([=] {
|
) | rpl::start_with_next([=] {
|
||||||
setSearchInChat((_openedForum && !_searchInChat)
|
setSearchInChat((_openedForum && !_searchInChat)
|
||||||
? Key(_openedForum->history())
|
? Key(_openedForum->history())
|
||||||
|
: _searchInChat.sublist()
|
||||||
|
? Key(session().data().history(session().user()))
|
||||||
: _searchInChat, nullptr);
|
: _searchInChat, nullptr);
|
||||||
applyFilterUpdate(true);
|
applyFilterUpdate(true);
|
||||||
}, lifetime());
|
}, lifetime());
|
||||||
|
|
|
@ -1449,14 +1449,14 @@ void ShowTagMenu(
|
||||||
.sessionWindow = controller,
|
.sessionWindow = controller,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}, &st::menuIconFave);
|
}, &st::menuIconTagFilter);
|
||||||
|
|
||||||
const auto editLabel = owner->reactions().myTagTitle(id).isEmpty()
|
const auto editLabel = owner->reactions().myTagTitle(id).isEmpty()
|
||||||
? tr::lng_context_tag_add_name(tr::now)
|
? tr::lng_context_tag_add_name(tr::now)
|
||||||
: tr::lng_context_tag_edit_name(tr::now);
|
: tr::lng_context_tag_edit_name(tr::now);
|
||||||
(*menu)->addAction(editLabel, [=] {
|
(*menu)->addAction(editLabel, [=] {
|
||||||
controller->show(Box(EditTagBox, controller, id));
|
controller->show(Box(EditTagBox, controller, id));
|
||||||
}, &st::menuIconEdit);
|
}, &st::menuIconTagRename);
|
||||||
|
|
||||||
const auto removeTag = [=] {
|
const auto removeTag = [=] {
|
||||||
if (const auto item = owner->message(itemId)) {
|
if (const auto item = owner->message(itemId)) {
|
||||||
|
@ -1475,8 +1475,8 @@ void ShowTagMenu(
|
||||||
(*menu)->menu(),
|
(*menu)->menu(),
|
||||||
tr::lng_context_remove_tag(tr::now),
|
tr::lng_context_remove_tag(tr::now),
|
||||||
removeTag),
|
removeTag),
|
||||||
&st::menuIconDisableAttention,
|
&st::menuIconTagRemoveAttention,
|
||||||
&st::menuIconDisableAttention));
|
&st::menuIconTagRemoveAttention));
|
||||||
|
|
||||||
if (const auto custom = id.custom()) {
|
if (const auto custom = id.custom()) {
|
||||||
if (const auto set = owner->document(custom)->sticker()) {
|
if (const auto set = owner->document(custom)->sticker()) {
|
||||||
|
|
|
@ -866,6 +866,7 @@ reactionInlineTagDot: 5px;
|
||||||
reactionInlineTagDotSkip: 2px;
|
reactionInlineTagDotSkip: 2px;
|
||||||
reactionInlineTagFont: font(12px);
|
reactionInlineTagFont: font(12px);
|
||||||
reactionInlineTagNamePosition: point(26px, 2px);
|
reactionInlineTagNamePosition: point(26px, 2px);
|
||||||
|
reactionInlineTagPromoPosition: point(20px, 2px);
|
||||||
reactionInlineBetween: 4px;
|
reactionInlineBetween: 4px;
|
||||||
reactionInlineInBubbleLeft: -3px;
|
reactionInlineInBubbleLeft: -3px;
|
||||||
reactionInlineUserpicsPadding: margins(1px, 1px, 1px, 1px);
|
reactionInlineUserpicsPadding: margins(1px, 1px, 1px, 1px);
|
||||||
|
|
|
@ -147,6 +147,8 @@ menuIconEnlarge: icon {{ "menu/link_enlarge", menuIconColor }};
|
||||||
menuIconShrink: icon {{ "menu/link_shrink", menuIconColor }};
|
menuIconShrink: icon {{ "menu/link_shrink", menuIconColor }};
|
||||||
menuIconAsTopics: icon {{ "menu/mode_topics", menuIconColor }};
|
menuIconAsTopics: icon {{ "menu/mode_topics", menuIconColor }};
|
||||||
menuIconAsMessages: icon {{ "menu/mode_messages", menuIconColor }};
|
menuIconAsMessages: icon {{ "menu/mode_messages", menuIconColor }};
|
||||||
|
menuIconTagFilter: icon{{ "menu/tag_filter", menuIconColor }};
|
||||||
|
menuIconTagRename: icon{{ "menu/tag_rename", menuIconColor }};
|
||||||
|
|
||||||
menuIconTTLAny: icon {{ "menu/auto_delete_plain", menuIconColor }};
|
menuIconTTLAny: icon {{ "menu/auto_delete_plain", menuIconColor }};
|
||||||
menuIconTTLAnyTextPosition: point(11px, 22px);
|
menuIconTTLAnyTextPosition: point(11px, 22px);
|
||||||
|
@ -182,6 +184,7 @@ menuIconLeaveAttention: icon {{ "menu/leave", menuIconAttentionColor }};
|
||||||
menuIconDisableAttention: icon {{ "menu/disable", menuIconAttentionColor }};
|
menuIconDisableAttention: icon {{ "menu/disable", menuIconAttentionColor }};
|
||||||
menuIconReportAttention: icon {{ "menu/report", menuIconAttentionColor }};
|
menuIconReportAttention: icon {{ "menu/report", menuIconAttentionColor }};
|
||||||
menuIconRestoreAttention: icon {{ "menu/restore", menuIconAttentionColor }};
|
menuIconRestoreAttention: icon {{ "menu/restore", menuIconAttentionColor }};
|
||||||
|
menuIconTagRemoveAttention: icon {{ "menu/tag_remove", menuIconAttentionColor }};
|
||||||
|
|
||||||
menuIconBlockSettings: icon {{ "menu/block", windowBgActive }};
|
menuIconBlockSettings: icon {{ "menu/block", windowBgActive }};
|
||||||
menuIconInviteSettings: icon {{ "menu/invite", windowBgActive }};
|
menuIconInviteSettings: icon {{ "menu/invite", windowBgActive }};
|
||||||
|
|