From bc29296716f68e84e9c5f081a1b19c04060411ba Mon Sep 17 00:00:00 2001 From: parhelia512 <0011d3@gmail.com> Date: Wed, 6 Aug 2025 01:48:12 +0800 Subject: [PATCH] feat: show auto completion window when focus in AutoCompleteTextEdit --- 3rdparty/qv2ray/v2/ui/QvAutoCompleteTextEdit.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/3rdparty/qv2ray/v2/ui/QvAutoCompleteTextEdit.cpp b/3rdparty/qv2ray/v2/ui/QvAutoCompleteTextEdit.cpp index e9ff35f..8fd5f1e 100644 --- a/3rdparty/qv2ray/v2/ui/QvAutoCompleteTextEdit.cpp +++ b/3rdparty/qv2ray/v2/ui/QvAutoCompleteTextEdit.cpp @@ -101,6 +101,16 @@ namespace Qv2ray::ui::widgets { if (c) c->setWidget(this); + if (lineUnderCursor().isEmpty()) { + c->setCompletionPrefix(""); + } else if (auto word = lineUnderCursor(); word != c->completionPrefix()) { + c->setCompletionPrefix(word); + } + c->popup()->setCurrentIndex(c->completionModel()->index(0, 0)); + QRect cr = cursorRect(); + cr.setWidth(c->popup()->sizeHintForColumn(0) + c->popup()->verticalScrollBar()->sizeHint().width()); + c->complete(cr); // popup it up! + QPlainTextEdit::focusInEvent(e); } @@ -126,6 +136,7 @@ namespace Qv2ray::ui::widgets { case Qt::Key_Escape: case Qt::Key_Tab: case Qt::Key_Backtab: + case Qt::Key_Asterisk: e->ignore(); return; // let the completer do default behavior