Skip to content

Commit 4cebe9b

Browse files
LiHua000deepin-mozart
authored andcommitted
feat: [codegeex] optimized reference dialog
Log: as title
1 parent 645610c commit 4cebe9b

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

src/plugins/codegeex/widgets/inputeditwidget.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,22 @@ void InputEditWidgetPrivate::initEdit()
144144
if (cursorPos > 0 && edit->document()->characterAt(cursorPos - 1) == "@")
145145
q->popupReference();
146146

147-
if (referencePopup->isVisible() && !currentText.endsWith('@')) {
147+
if (!currentText.contains('@')) {
148+
referencePopup->hide();
149+
} else if (!currentText.endsWith('@')) {
148150
auto start = currentText.indexOf('@');
149151
auto firstSpace = currentText.indexOf(' ', start); // first space after `@`
150-
if (start == -1 || (firstSpace != -1 && cursorPos > firstSpace))
152+
if (start == -1 || (firstSpace != -1 && cursorPos > firstSpace)) {
151153
referencePopup->hide();
154+
return;
155+
}
152156

153157
auto filterText = currentText.mid(start + 1, cursorPos - start - 1);
154158
model.setFilterText(filterText);
159+
if (model.getItems().isEmpty())
160+
referencePopup->hide();
161+
else
162+
referencePopup->show();
155163
} else {
156164
model.setFilterText("");
157165
}
@@ -394,6 +402,7 @@ bool InputEditWidget::eventFilter(QObject *watched, QEvent *event)
394402
emit handleKey(keyEvent);
395403
return true;
396404
case Qt::Key_Space:
405+
case Qt::Key_Escape:
397406
d->referencePopup->hide();
398407
break;
399408
default:

src/plugins/codegeex/widgets/referencepopup.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ void ItemModel::setFilterText(const QString &filterText)
169169
beginResetModel();
170170
displayItems.clear();
171171
for (auto item : items) {
172-
if (item.displayName.startsWith(filterText))
172+
if (item.displayName.startsWith(filterText, Qt::CaseInsensitive) || item.type.startsWith(filterText, Qt::CaseInsensitive))
173173
displayItems.append(item);
174174
}
175175
endResetModel();

src/plugins/codegeex/widgets/referencepopup.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ class DisplayItemDelegate : public DStyledItemDelegate
4646

4747
struct ItemInfo
4848
{
49-
QString type;
50-
QString displayName;
51-
QString extraInfo;
49+
QString type { "" };
50+
QString displayName { "" };
51+
QString extraInfo { "" };
5252
QIcon icon;
5353
};
5454

0 commit comments

Comments
 (0)