2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-09-05 00:55:12 +00:00

Fix crash in emoji keywords init.

This commit is contained in:
John Preston
2019-03-29 16:21:11 +04:00
parent dba677dcc7
commit 817e9aa43d
3 changed files with 45 additions and 16 deletions

View File

@@ -112,7 +112,7 @@ std::vector<SuggestionsWidget::Row> SuggestionsWidget::getRowsByQuery() const {
return result;
}
auto suggestions = std::vector<Row>();
const auto results = Core::App().emojiKeywords().query(_query.mid(1));
const auto results = Core::App().emojiKeywords().query(_query);
for (const auto &result : results) {
suggestions.emplace_back(
result.emoji,
@@ -475,13 +475,13 @@ QString SuggestionsController::getEmojiQuery() {
return QString();
}
auto cursor = _field->textCursor();
const auto cursor = _field->textCursor();
if (cursor.hasSelection()) {
return QString();
}
auto position = cursor.position();
auto findTextPart = [this, &position] {
const auto position = cursor.position();
const auto findTextPart = [&] {
auto document = _field->document();
auto block = document->findBlock(position);
for (auto i = block.begin(); !i.atEnd(); ++i) {
@@ -496,18 +496,21 @@ QString SuggestionsController::getEmojiQuery() {
if (fragment.charFormat().isImageFormat()) {
continue;
}
position -= from;
_queryStartPosition = from;
return fragment.text();
}
return QString();
};
auto text = findTextPart();
const auto text = findTextPart();
if (text.isEmpty()) {
return QString();
}
for (auto i = position - _queryStartPosition; i != 0;) {
if (text[--i] == ':') {
return text.mid(i + 1);
}
}
const auto isUpperCaseLetter = [](QChar ch) {
return (ch >= 'A' && ch <= 'Z');
};
@@ -568,7 +571,7 @@ QString SuggestionsController::getEmojiQuery() {
}
void SuggestionsController::replaceCurrent(const QString &replacement) {
auto suggestion = getEmojiQuery();
const auto suggestion = getEmojiQuery();
if (suggestion.isEmpty()) {
_suggestions->showWithQuery(QString());
} else {