mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Fix translation of the pinned message.
This commit is contained in:
parent
514b2a55be
commit
9344e78889
3 changed files with 13 additions and 16 deletions
|
@ -968,8 +968,8 @@ void HistoryInner::paintEvent(QPaintEvent *e) {
|
||||||
auto readTill = (HistoryItem*)nullptr;
|
auto readTill = (HistoryItem*)nullptr;
|
||||||
auto readContents = base::flat_set<not_null<HistoryItem*>>();
|
auto readContents = base::flat_set<not_null<HistoryItem*>>();
|
||||||
const auto guard = gsl::finally([&] {
|
const auto guard = gsl::finally([&] {
|
||||||
if (const auto item = _pinnedItem.current()) {
|
if (_pinnedItem) {
|
||||||
_translateTracker->add(item, translatedTo);
|
_translateTracker->add(_pinnedItem, translatedTo);
|
||||||
}
|
}
|
||||||
_translateTracker->finishBunch();
|
_translateTracker->finishBunch();
|
||||||
if (readTill && _widget->markingMessagesRead()) {
|
if (readTill && _widget->markingMessagesRead()) {
|
||||||
|
@ -3168,15 +3168,8 @@ void HistoryInner::updateSize() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryInner::setShownPinnedId(
|
void HistoryInner::setShownPinned(HistoryItem *item) {
|
||||||
rpl::producer<HistoryView::PinnedId> id) {
|
_pinnedItem = item;
|
||||||
_pinnedItem = std::move(
|
|
||||||
id
|
|
||||||
) | rpl::map([=](const HistoryView::PinnedId &id) {
|
|
||||||
return id.message
|
|
||||||
? session().data().message(id.message)
|
|
||||||
: nullptr;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryInner::enterEventHook(QEnterEvent *e) {
|
void HistoryInner::enterEventHook(QEnterEvent *e) {
|
||||||
|
|
|
@ -117,7 +117,7 @@ public:
|
||||||
void checkActivation();
|
void checkActivation();
|
||||||
void recountHistoryGeometry();
|
void recountHistoryGeometry();
|
||||||
void updateSize();
|
void updateSize();
|
||||||
void setShownPinnedId(rpl::producer<HistoryView::PinnedId> id);
|
void setShownPinned(HistoryItem *item);
|
||||||
|
|
||||||
void repaintItem(const HistoryItem *item);
|
void repaintItem(const HistoryItem *item);
|
||||||
void repaintItem(const Element *view);
|
void repaintItem(const Element *view);
|
||||||
|
@ -471,7 +471,7 @@ private:
|
||||||
|
|
||||||
std::unique_ptr<HistoryView::Reactions::Manager> _reactionsManager;
|
std::unique_ptr<HistoryView::Reactions::Manager> _reactionsManager;
|
||||||
rpl::variable<HistoryItem*> _reactionsItem;
|
rpl::variable<HistoryItem*> _reactionsItem;
|
||||||
rpl::variable<HistoryItem*> _pinnedItem;
|
HistoryItem *_pinnedItem = nullptr;
|
||||||
|
|
||||||
MouseAction _mouseAction = MouseAction::None;
|
MouseAction _mouseAction = MouseAction::None;
|
||||||
TextSelectType _mouseSelectType = TextSelectType::Letters;
|
TextSelectType _mouseSelectType = TextSelectType::Letters;
|
||||||
|
|
|
@ -6335,8 +6335,6 @@ void HistoryWidget::setupPinnedTracker() {
|
||||||
Expects(_history != nullptr);
|
Expects(_history != nullptr);
|
||||||
|
|
||||||
_pinnedTracker = std::make_unique<HistoryView::PinnedTracker>(_history);
|
_pinnedTracker = std::make_unique<HistoryView::PinnedTracker>(_history);
|
||||||
_list->setShownPinnedId(_pinnedTracker->shownMessageId());
|
|
||||||
|
|
||||||
_pinnedBar = nullptr;
|
_pinnedBar = nullptr;
|
||||||
checkPinnedBarState();
|
checkPinnedBarState();
|
||||||
}
|
}
|
||||||
|
@ -6361,6 +6359,7 @@ void HistoryWidget::checkPinnedBarState() {
|
||||||
if (_pinnedBar) {
|
if (_pinnedBar) {
|
||||||
_pinnedBar->setContent(rpl::single(Ui::MessageBarContent()));
|
_pinnedBar->setContent(rpl::single(Ui::MessageBarContent()));
|
||||||
_pinnedTracker->reset();
|
_pinnedTracker->reset();
|
||||||
|
_list->setShownPinned(nullptr);
|
||||||
_hidingPinnedBar = base::take(_pinnedBar);
|
_hidingPinnedBar = base::take(_pinnedBar);
|
||||||
const auto raw = _hidingPinnedBar.get();
|
const auto raw = _hidingPinnedBar.get();
|
||||||
base::call_delayed(st::defaultMessageBar.duration, this, [=] {
|
base::call_delayed(st::defaultMessageBar.duration, this, [=] {
|
||||||
|
@ -6411,7 +6410,12 @@ void HistoryWidget::checkPinnedBarState() {
|
||||||
[bar = _pinnedBar.get()] { bar->customEmojiRepaint(); }),
|
[bar = _pinnedBar.get()] { bar->customEmojiRepaint(); }),
|
||||||
std::move(pinnedRefreshed),
|
std::move(pinnedRefreshed),
|
||||||
std::move(markupRefreshed)
|
std::move(markupRefreshed)
|
||||||
) | rpl::map([](Ui::MessageBarContent &&content, bool, HistoryItem*) {
|
) | rpl::map([=](Ui::MessageBarContent &&content, bool, HistoryItem*) {
|
||||||
|
if (!content.title.isEmpty() || !content.text.empty()) {
|
||||||
|
_list->setShownPinned(
|
||||||
|
session().data().message(
|
||||||
|
_pinnedTracker->currentMessageId().message));
|
||||||
|
}
|
||||||
return std::move(content);
|
return std::move(content);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue