Added ability to initialize spellchecker without SessionController.

This commit is contained in:
23rd 2022-03-03 11:51:43 +03:00
parent b900ac2b1d
commit 5e13949eda
2 changed files with 17 additions and 5 deletions

View file

@ -314,7 +314,8 @@ void InitMessageField(
}
void InitSpellchecker(
not_null<Window::SessionController*> controller,
std::shared_ptr<Ui::Show> show,
not_null<Main::Session*> session,
not_null<Ui::InputField*> field) {
#ifndef TDESKTOP_DISABLE_SPELLCHECK
const auto s = Ui::CreateChild<Spellchecker::SpellingHighlighter>(
@ -322,15 +323,21 @@ void InitSpellchecker(
Core::App().settings().spellcheckerEnabledValue(),
Spellchecker::SpellingHighlighter::CustomContextMenuItem{
tr::lng_settings_manage_dictionaries(tr::now),
[=] {
controller->show(
Box<Ui::ManageDictionariesBox>(&controller->session()));
}
[=] { show->showBox(Box<Ui::ManageDictionariesBox>(session)); }
});
field->setExtendedContextMenu(s->contextMenuCreated());
#endif // TDESKTOP_DISABLE_SPELLCHECK
}
void InitSpellchecker(
not_null<Window::SessionController*> controller,
not_null<Ui::InputField*> field) {
InitSpellchecker(
std::make_shared<Window::Show>(controller),
&controller->session(),
field);
}
bool HasSendText(not_null<const Ui::InputField*> field) {
const auto &text = field->getTextWithTags().text;
for (const auto &ch : text) {

View file

@ -28,6 +28,7 @@ class SessionController;
namespace Ui {
class PopupMenu;
class Show;
} // namespace Ui
QString PrepareMentionTag(not_null<UserData*> user);
@ -44,6 +45,10 @@ void InitMessageField(
not_null<Window::SessionController*> controller,
not_null<Ui::InputField*> field);
void InitSpellchecker(
std::shared_ptr<Ui::Show> show,
not_null<Main::Session*> session,
not_null<Ui::InputField*> field);
void InitSpellchecker(
not_null<Window::SessionController*> controller,
not_null<Ui::InputField*> field);