mirror of https://github.com/procxx/kepka.git
Remove emoji from custom admin ranks.
This commit is contained in:
parent
3bf709d459
commit
27d84befa8
|
@ -427,14 +427,17 @@ not_null<Ui::InputField*> EditAdminBox::addRankInput() {
|
||||||
this,
|
this,
|
||||||
st::customBadgeField,
|
st::customBadgeField,
|
||||||
(isOwner ? tr::lng_owner_badge : tr::lng_admin_badge)(),
|
(isOwner ? tr::lng_owner_badge : tr::lng_admin_badge)(),
|
||||||
_oldRank),
|
TextUtilities::RemoveEmoji(_oldRank)),
|
||||||
st::rightsAboutMargin);
|
st::rightsAboutMargin);
|
||||||
result->setMaxLength(kAdminRoleLimit);
|
result->setMaxLength(kAdminRoleLimit);
|
||||||
result->setInstantReplaces(Ui::InstantReplaces::Default());
|
result->setInstantReplaces(Ui::InstantReplaces::TextOnly());
|
||||||
result->setInstantReplacesEnabled(Global::ReplaceEmojiValue());
|
connect(result, &Ui::InputField::changed, [=] {
|
||||||
Ui::Emoji::SuggestionsController::Init(
|
const auto text = result->getLastText();
|
||||||
getDelegate()->outerContainer(),
|
const auto removed = TextUtilities::RemoveEmoji(text);
|
||||||
result);
|
if (removed != text) {
|
||||||
|
result->setText(removed);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
addControl(
|
addControl(
|
||||||
object_ptr<Ui::FlatLabel>(
|
object_ptr<Ui::FlatLabel>(
|
||||||
|
|
|
@ -674,7 +674,7 @@ void HistoryMessage::refreshMessageBadge() {
|
||||||
} else {
|
} else {
|
||||||
_messageBadge.setText(
|
_messageBadge.setText(
|
||||||
st::defaultTextStyle,
|
st::defaultTextStyle,
|
||||||
TextUtilities::SingleLine(text));
|
TextUtilities::RemoveEmoji(TextUtilities::SingleLine(text)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1302,6 +1302,23 @@ QString RemoveAccents(const QString &text) {
|
||||||
return (i < result.size()) ? result.mid(0, i) : result;
|
return (i < result.size()) ? result.mid(0, i) : result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString RemoveEmoji(const QString &text) {
|
||||||
|
auto result = QString();
|
||||||
|
result.reserve(text.size());
|
||||||
|
|
||||||
|
auto begin = text.data();
|
||||||
|
const auto end = begin + text.size();
|
||||||
|
while (begin != end) {
|
||||||
|
auto length = 0;
|
||||||
|
if (Ui::Emoji::Find(begin, end, &length)) {
|
||||||
|
begin += length;
|
||||||
|
} else {
|
||||||
|
result.append(*begin++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
QStringList PrepareSearchWords(const QString &query, const QRegularExpression *SplitterOverride) {
|
QStringList PrepareSearchWords(const QString &query, const QRegularExpression *SplitterOverride) {
|
||||||
auto clean = RemoveAccents(query.trimmed().toLower());
|
auto clean = RemoveAccents(query.trimmed().toLower());
|
||||||
auto result = QStringList();
|
auto result = QStringList();
|
||||||
|
|
|
@ -281,6 +281,7 @@ QString Clean(const QString &text);
|
||||||
QString EscapeForRichParsing(const QString &text);
|
QString EscapeForRichParsing(const QString &text);
|
||||||
QString SingleLine(const QString &text);
|
QString SingleLine(const QString &text);
|
||||||
QString RemoveAccents(const QString &text);
|
QString RemoveAccents(const QString &text);
|
||||||
|
QString RemoveEmoji(const QString &text);
|
||||||
QStringList PrepareSearchWords(const QString &query, const QRegularExpression *SplitterOverride = nullptr);
|
QStringList PrepareSearchWords(const QString &query, const QRegularExpression *SplitterOverride = nullptr);
|
||||||
bool CutPart(TextWithEntities &sending, TextWithEntities &left, int limit);
|
bool CutPart(TextWithEntities &sending, TextWithEntities &left, int limit);
|
||||||
|
|
||||||
|
|
|
@ -936,6 +936,20 @@ const InstantReplaces &InstantReplaces::Default() {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const InstantReplaces &InstantReplaces::TextOnly() {
|
||||||
|
static const auto result = [] {
|
||||||
|
auto result = InstantReplaces();
|
||||||
|
result.add("--", QString(1, QChar(8212)));
|
||||||
|
result.add("<<", QString(1, QChar(171)));
|
||||||
|
result.add(">>", QString(1, QChar(187)));
|
||||||
|
result.add(
|
||||||
|
":shrug:",
|
||||||
|
QChar(175) + QString("\\_(") + QChar(12484) + ")_/" + QChar(175));
|
||||||
|
return result;
|
||||||
|
}();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
FlatInput::FlatInput(
|
FlatInput::FlatInput(
|
||||||
QWidget *parent,
|
QWidget *parent,
|
||||||
const style::FlatInput &st,
|
const style::FlatInput &st,
|
||||||
|
|
|
@ -28,6 +28,7 @@ struct InstantReplaces {
|
||||||
void add(const QString &what, const QString &with);
|
void add(const QString &what, const QString &with);
|
||||||
|
|
||||||
static const InstantReplaces &Default();
|
static const InstantReplaces &Default();
|
||||||
|
static const InstantReplaces &TextOnly();
|
||||||
|
|
||||||
int maxLength = 0;
|
int maxLength = 0;
|
||||||
Node reverseMap;
|
Node reverseMap;
|
||||||
|
|
Loading…
Reference in New Issue