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; 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( FlatInput::FlatInput(
QWidget *parent, QWidget *parent,
const style::FlatInput &st, const style::FlatInput &st,
@ -1477,6 +1488,14 @@ void InputField::setInstantReplaces(const InstantReplaces &replaces) {
_mutableInstantReplaces = 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) { void InputField::setInstantReplacesEnabled(rpl::producer<bool> enabled) {
std::move( std::move(
enabled enabled

View file

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