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