Add InstantReplaces::Custom and setInstantReplaces overload (#11)

This commit is contained in:
blank X 2021-12-17 13:52:15 +00:00 committed by GitHub
parent 05c0f7aa47
commit d9274f06bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View file

@ -961,6 +961,17 @@ const InstantReplaces &InstantReplaces::TextOnly() {
return result;
}
const InstantReplaces &InstantReplaces::Custom() {
static const auto result = [] {
auto result = InstantReplaces();
for (auto i = customReplacesMap.constBegin(), e = customReplacesMap.constEnd(); i != e; ++i) {
result.add(i.key(), i.value());
}
return result;
}();
return result;
}
FlatInput::FlatInput(
QWidget *parent,
const style::FlatInput &st,
@ -1477,6 +1488,14 @@ void InputField::setInstantReplaces(const InstantReplaces &replaces) {
_mutableInstantReplaces = replaces;
}
void InputField::setInstantReplaces(rpl::producer<InstantReplaces> producer) {
std::move(
producer
) | rpl::start_with_next([=](InstantReplaces replaces) {
_mutableInstantReplaces = replaces;
}, lifetime());
}
void InputField::setInstantReplacesEnabled(rpl::producer<bool> enabled) {
std::move(
enabled

View file

@ -43,6 +43,7 @@ struct InstantReplaces {
static const InstantReplaces &Default();
static const InstantReplaces &TextOnly();
static const InstantReplaces &Custom();
int maxLength = 0;
Node reverseMap;
@ -250,6 +251,7 @@ public:
void setAdditionalMargin(int margin);
void setInstantReplaces(const InstantReplaces &replaces);
void setInstantReplaces(rpl::producer<InstantReplaces> producer);
void setInstantReplacesEnabled(rpl::producer<bool> enabled);
void setMarkdownReplacesEnabled(rpl::producer<bool> enabled);
void setExtendedContextMenu(rpl::producer<ExtendedContextMenu> value);