diff --git a/src/plugins/texteditor/codeassist/basicproposalitem.cpp b/src/plugins/texteditor/codeassist/basicproposalitem.cpp index f1d0045f19406a04f188a9f17d9758a34271dff4..769a10b4fb017f19d45c2d1dc86b1f64049a360d 100644 --- a/src/plugins/texteditor/codeassist/basicproposalitem.cpp +++ b/src/plugins/texteditor/codeassist/basicproposalitem.cpp @@ -61,7 +61,7 @@ void BasicProposalItem::setText(const QString &text) m_text = text; } -const QString &BasicProposalItem::text() const +QString BasicProposalItem::text() const { return m_text; } diff --git a/src/plugins/texteditor/codeassist/basicproposalitem.h b/src/plugins/texteditor/codeassist/basicproposalitem.h index 4478fb8fb21346c9ba30f4a0da433fda667f61f9..2caa2b89c1fb4cba8843054ba379cc414c6f2354 100644 --- a/src/plugins/texteditor/codeassist/basicproposalitem.h +++ b/src/plugins/texteditor/codeassist/basicproposalitem.h @@ -52,7 +52,7 @@ public: const QIcon &icon() const; void setText(const QString &text); - const QString &text() const; + virtual QString text() const; void setDetail(const QString &detail); const QString &detail() const; diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp index 883e8897b428d26382ac0c94f537d16ee009d71b..6cece65adf0674770b0bdf69197c8ac573528646 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp @@ -604,12 +604,12 @@ bool GenericProposalWidget::eventFilter(QObject *o, QEvent *e) if (ke->text().length() == 1 && m_d->m_completionListView->currentIndex().isValid() - && m_d->m_reason == ExplicitlyInvoked && qApp->focusWidget() == o) { const QChar &typedChar = ke->text().at(0); IAssistProposalItem *item = m_d->m_model->proposalItem(m_d->m_completionListView->currentIndex().row()); - if (item->prematurelyApplies(typedChar)) { + if (item->prematurelyApplies(typedChar) + && (m_d->m_reason == ExplicitlyInvoked || item->text().endsWith(typedChar))) { abort(); emit proposalItemActivated(item); return true; diff --git a/src/plugins/texteditor/codeassist/iassistproposalitem.h b/src/plugins/texteditor/codeassist/iassistproposalitem.h index 319a9344635b0da0b4aea54345f11e83b80b8698..109da945c5f265efa16a663fb9853e4c05f280d8 100644 --- a/src/plugins/texteditor/codeassist/iassistproposalitem.h +++ b/src/plugins/texteditor/codeassist/iassistproposalitem.h @@ -35,9 +35,7 @@ #include <texteditor/texteditor_global.h> -QT_BEGIN_NAMESPACE -class QChar; -QT_END_NAMESPACE +#include <QtCore/QString> namespace TextEditor { @@ -49,6 +47,7 @@ public: IAssistProposalItem(); virtual ~IAssistProposalItem(); + virtual QString text() const = 0; virtual bool implicitlyApplies() const = 0; virtual bool prematurelyApplies(const QChar &c) const = 0; virtual void apply(BaseTextEditor *editor, int basePosition) const = 0;