summary refs log tree commit diff
path: root/src/TextInputWidget.cpp
diff options
context:
space:
mode:
authorJussi Kuokkanen <jussi.kuokkanen@protonmail.com>2020-09-04 12:56:36 +0300
committerNicolas Werner <nicolas.werner@hotmail.de>2020-11-25 19:05:12 +0100
commit07259b9cb736469262acbb450fd451233e150c2c (patch)
tree5fe949fd416c8707191765b8a23922a324aa6dc3 /src/TextInputWidget.cpp
parentadd completer interface (item roles) (diff)
downloadnheko-07259b9cb736469262acbb450fd451233e150c2c.tar.xz
use completion interface in emoji completions
Diffstat (limited to 'src/TextInputWidget.cpp')
-rw-r--r--src/TextInputWidget.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/TextInputWidget.cpp b/src/TextInputWidget.cpp

index b46f0e5a..6d1fdc7a 100644 --- a/src/TextInputWidget.cpp +++ b/src/TextInputWidget.cpp
@@ -30,6 +30,7 @@ #include "Cache.h" #include "ChatPage.h" +#include "CompletionModelRoles.h" #include "CompletionProxyModel.h" #include "Logging.h" #include "TextInputWidget.h" @@ -71,6 +72,7 @@ FilteredTextEdit::FilteredTextEdit(QWidget *parent) auto model = new emoji::EmojiSearchModel(this); model->sort(0, Qt::AscendingOrder); completer_->setModel((emoji_completion_model_ = new CompletionProxyModel(model, this))); + emoji_completion_model_->setFilterRole(CompletionModel::SearchRole); completer_->setModelSorting(QCompleter::UnsortedModel); completer_->popup()->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); completer_->popup()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -79,8 +81,8 @@ FilteredTextEdit::FilteredTextEdit(QWidget *parent) QOverload<const QModelIndex &>::of(&QCompleter::activated), [this](auto &index) { emoji_popup_open_ = false; - auto emoji = index.data(emoji::EmojiModel::Unicode).toString(); - insertCompletion(emoji); + auto text = index.data(CompletionModel::CompletionRole).toString(); + insertCompletion(text); }); connect(this, &FilteredTextEdit::resultsRetrieved, this, &FilteredTextEdit::showResults); @@ -297,7 +299,9 @@ FilteredTextEdit::keyPressEvent(QKeyEvent *event) if (emoji_popup_open_ && textAfterPosition(trigger_pos_).length() > 2) { // Update completion - emoji_completion_model_->setFilterRegExp(textAfterPosition(trigger_pos_)); + // Don't include the trigger token in the search + emoji_completion_model_->setFilterWildcard( + textAfterPosition(trigger_pos_).remove(0, 1)); completer_->complete(completerRect()); }