mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
fix: translator crashes
This commit is contained in:
@@ -43,12 +43,12 @@ TranslateManager::Builder::Builder(
|
||||
, _toLang(to_lang) {
|
||||
}
|
||||
|
||||
TranslateManager::Builder &TranslateManager::Builder::done(std::function < void(const Result &) > cb) {
|
||||
TranslateManager::Builder &TranslateManager::Builder::done(std::function<void(const Result &)> cb) {
|
||||
_done = std::move(cb);
|
||||
return *this;
|
||||
}
|
||||
|
||||
TranslateManager::Builder &TranslateManager::Builder::fail(std::function < void(const MTP::Error &) > cb) {
|
||||
TranslateManager::Builder &TranslateManager::Builder::fail(std::function<void(const MTP::Error &)> cb) {
|
||||
_fail = std::move(cb);
|
||||
return *this;
|
||||
}
|
||||
@@ -242,7 +242,8 @@ bool TranslateManager::cancel(mtpRequestId requestId) {
|
||||
if (it->second.cancel) {
|
||||
it->second.cancel();
|
||||
}
|
||||
_pending.erase(it);
|
||||
// already erased by `triggerFail`
|
||||
// _pending.erase(it);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -329,4 +330,4 @@ void TranslateManager::removeLeastRecentlyUsed() {
|
||||
_cacheList.pop_back();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,7 +230,7 @@ void TranslateBox(
|
||||
const auto send = [=](LanguageId to) {
|
||||
loading->show(anim::type::instant);
|
||||
translated->hide(anim::type::instant);
|
||||
Ayu::Translator::TranslateManager::currentInstance()->request(
|
||||
const auto reqId = Ayu::Translator::TranslateManager::currentInstance()->request(
|
||||
&peer->session(),
|
||||
MTP_flags(flags),
|
||||
msgId ? peer->input : MTP_inputPeerEmpty(),
|
||||
@@ -261,6 +261,11 @@ void TranslateBox(
|
||||
showText(
|
||||
Ui::Text::Italic(tr::lng_translate_box_error(tr::now)));
|
||||
}).send();
|
||||
|
||||
box->boxClosing() | rpl::start_with_next([=]
|
||||
{
|
||||
Ayu::Translator::TranslateManager::currentInstance()->cancel(reqId);
|
||||
}, box->lifetime());
|
||||
};
|
||||
state->to.value() | rpl::start_with_next(send, box->lifetime());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user