Refresh emoji after server responds.

This commit is contained in:
John Preston 2019-03-29 20:04:05 +04:00
parent b353af00c9
commit 932ed20c4b
2 changed files with 15 additions and 4 deletions

View File

@ -85,8 +85,8 @@ rpl::producer<QString> SuggestionsWidget::triggered() const {
return _triggered.events();
}
void SuggestionsWidget::showWithQuery(const QString &query) {
if (_query == query) {
void SuggestionsWidget::showWithQuery(const QString &query, bool force) {
if (!force && (_query == query)) {
return;
}
_query = query;
@ -428,6 +428,10 @@ SuggestionsController::SuggestionsController(
) | rpl::start_with_next([=](QString replacement) {
replaceCurrent(replacement);
}, _lifetime);
Core::App().emojiKeywords().refreshed(
) | rpl::start_with_next([=] {
showFromTextChange(getEmojiQuery(), true);
}, _lifetime);
updateForceHidden();
@ -477,10 +481,16 @@ void SuggestionsController::handleTextChange() {
const auto query = getEmojiQuery();
if (query.isEmpty() || _textChangeAfterKeyPress) {
_suggestions->showWithQuery(query);
showFromTextChange(query);
}
}
void SuggestionsController::showFromTextChange(
const QString &query,
bool force) {
_suggestions->showWithQuery(query, force);
}
QString SuggestionsController::getEmojiQuery() {
if (!Global::SuggestEmoji()) {
return QString();

View File

@ -21,7 +21,7 @@ class SuggestionsWidget : public TWidget {
public:
SuggestionsWidget(QWidget *parent, const style::Menu &st);
void showWithQuery(const QString &query);
void showWithQuery(const QString &query, bool force = false);
void handleKeyEvent(int key);
rpl::producer<bool> toggleAnimated() const;
@ -88,6 +88,7 @@ public:
private:
void handleCursorPositionChange();
void handleTextChange();
void showFromTextChange(const QString &query, bool force = false);
QString getEmojiQuery();
void suggestionsUpdated(bool visible);
void updateGeometry();