mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-02-19 14:36:58 +00:00
Added ability to use EditLinkBox without SessionController.
This commit is contained in:
parent
87bdfaf731
commit
cf55f1a7cd
@ -851,7 +851,10 @@ not_null<Ui::InputField*> CreatePollBox::setupSolution(
|
||||
Core::App().settings().replaceEmojiValue());
|
||||
solution->setMarkdownReplacesEnabled(rpl::single(true));
|
||||
solution->setEditLinkCallback(
|
||||
DefaultEditLinkCallback(_controller, solution));
|
||||
DefaultEditLinkCallback(
|
||||
std::make_shared<Window::Show>(_controller),
|
||||
session,
|
||||
solution));
|
||||
solution->customTab(true);
|
||||
|
||||
const auto warning = CreateWarningLabel(
|
||||
|
@ -238,6 +238,8 @@ void EditCaptionBox::rebuildPreview() {
|
||||
}
|
||||
|
||||
void EditCaptionBox::setupField() {
|
||||
const auto show = std::make_shared<Window::Show>(_controller);
|
||||
const auto session = &_controller->session();
|
||||
_field->setMaxLength(
|
||||
_controller->session().serverConfig().captionLengthMax);
|
||||
_field->setSubmitSettings(
|
||||
@ -247,10 +249,10 @@ void EditCaptionBox::setupField() {
|
||||
Core::App().settings().replaceEmojiValue());
|
||||
_field->setMarkdownReplacesEnabled(rpl::single(true));
|
||||
_field->setEditLinkCallback(
|
||||
DefaultEditLinkCallback(_controller, _field));
|
||||
DefaultEditLinkCallback(show, session, _field));
|
||||
_field->setMaxHeight(st::confirmCaptionArea.heightMax);
|
||||
|
||||
InitSpellchecker(_controller, _field);
|
||||
InitSpellchecker(show, session, _field);
|
||||
|
||||
connect(_field, &Ui::InputField::submitted, [=] { save(); });
|
||||
connect(_field, &Ui::InputField::cancelled, [=] { closeBox(); });
|
||||
|
@ -706,18 +706,21 @@ void SendFilesBox::setupCaption() {
|
||||
}
|
||||
Unexpected("action in MimeData hook.");
|
||||
});
|
||||
const auto show = std::make_shared<Window::Show>(_controller);
|
||||
const auto session = &_controller->session();
|
||||
|
||||
_caption->setInstantReplaces(Ui::InstantReplaces::Default());
|
||||
_caption->setInstantReplacesEnabled(
|
||||
Core::App().settings().replaceEmojiValue());
|
||||
_caption->setMarkdownReplacesEnabled(rpl::single(true));
|
||||
_caption->setEditLinkCallback(
|
||||
DefaultEditLinkCallback(_controller, _caption));
|
||||
DefaultEditLinkCallback(show, session, _caption));
|
||||
Ui::Emoji::SuggestionsController::Init(
|
||||
getDelegate()->outerContainer(),
|
||||
_caption,
|
||||
&_controller->session());
|
||||
session);
|
||||
|
||||
InitSpellchecker(_controller, _caption);
|
||||
InitSpellchecker(show, session, _caption);
|
||||
|
||||
updateCaptionPlaceholder();
|
||||
setupEmojiPanel();
|
||||
|
@ -258,7 +258,8 @@ void ShareBox::prepareCommentField() {
|
||||
} else if (_descriptor.navigation) {
|
||||
field->setEditLinkCallback(
|
||||
DefaultEditLinkCallback(
|
||||
_descriptor.navigation->parentController(),
|
||||
std::make_shared<Window::Show>(_descriptor.navigation),
|
||||
_descriptor.session,
|
||||
field));
|
||||
}
|
||||
field->setSubmitSettings(Core::App().settings().sendSubmitWay());
|
||||
|
@ -241,7 +241,8 @@ Fn<bool(
|
||||
QString text,
|
||||
QString link,
|
||||
EditLinkAction action)> DefaultEditLinkCallback(
|
||||
not_null<Window::SessionController*> controller,
|
||||
std::shared_ptr<Ui::Show> show,
|
||||
not_null<Main::Session*> session,
|
||||
not_null<Ui::InputField*> field) {
|
||||
const auto weak = Ui::MakeWeak(field);
|
||||
return [=](
|
||||
@ -258,14 +259,8 @@ Fn<bool(
|
||||
strong->commitMarkdownLinkEdit(selection, text, link);
|
||||
}
|
||||
};
|
||||
controller->show(
|
||||
Box(
|
||||
EditLinkBox,
|
||||
std::make_shared<Window::Show>(controller),
|
||||
&controller->session(),
|
||||
text,
|
||||
link,
|
||||
std::move(callback)),
|
||||
show->showBox(
|
||||
Box(EditLinkBox, show, session, text, link, std::move(callback)),
|
||||
Ui::LayerOption::KeepOther);
|
||||
return true;
|
||||
};
|
||||
@ -288,7 +283,11 @@ void InitMessageField(
|
||||
field->setInstantReplacesEnabled(
|
||||
Core::App().settings().replaceEmojiValue());
|
||||
field->setMarkdownReplacesEnabled(rpl::single(true));
|
||||
field->setEditLinkCallback(DefaultEditLinkCallback(controller, field));
|
||||
field->setEditLinkCallback(
|
||||
DefaultEditLinkCallback(
|
||||
std::make_shared<Window::Show>(controller),
|
||||
&controller->session(),
|
||||
field));
|
||||
}
|
||||
|
||||
void InitSpellchecker(
|
||||
|
@ -39,7 +39,8 @@ Fn<bool(
|
||||
QString text,
|
||||
QString link,
|
||||
Ui::InputField::EditLinkAction action)> DefaultEditLinkCallback(
|
||||
not_null<Window::SessionController*> controller,
|
||||
std::shared_ptr<Ui::Show> show,
|
||||
not_null<Main::Session*> session,
|
||||
not_null<Ui::InputField*> field);
|
||||
void InitMessageField(
|
||||
not_null<Window::SessionController*> controller,
|
||||
|
@ -87,7 +87,11 @@ EditInfoBox::EditInfoBox(
|
||||
_field->setInstantReplacesEnabled(
|
||||
Core::App().settings().replaceEmojiValue());
|
||||
_field->setMarkdownReplacesEnabled(rpl::single(true));
|
||||
_field->setEditLinkCallback(DefaultEditLinkCallback(controller, _field));
|
||||
_field->setEditLinkCallback(
|
||||
DefaultEditLinkCallback(
|
||||
std::make_shared<Window::Show>(controller),
|
||||
&controller->session(),
|
||||
_field));
|
||||
}
|
||||
|
||||
void EditInfoBox::prepare() {
|
||||
|
Loading…
Reference in New Issue
Block a user