diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp index 5999c6570b2..fa4d7fd1642 100644 --- a/src/plugins/cpptools/cppcompletionassist.cpp +++ b/src/plugins/cpptools/cppcompletionassist.cpp @@ -183,16 +183,14 @@ class CppAssistProposalModel : public TextEditor::BasicProposalItemListModel public: CppAssistProposalModel() : TextEditor::BasicProposalItemListModel() - , m_sortable(false) , m_completionOperator(T_EOF_SYMBOL) , m_replaceDotForArrow(false) , m_typeOfExpression(new TypeOfExpression) {} - virtual bool isSortable() const { return m_sortable; } + virtual bool isSortable(const QString &prefix) const; virtual IAssistProposalItem *proposalItem(int index) const; - bool m_sortable; unsigned m_completionOperator; bool m_replaceDotForArrow; QSharedPointer m_typeOfExpression; @@ -229,6 +227,14 @@ private: Q_DECLARE_METATYPE(CppTools::Internal::CompleteFunctionDeclaration) +bool CppAssistProposalModel::isSortable(const QString &prefix) const +{ + if (m_completionOperator != T_EOF_SYMBOL) + return true; + + return !prefix.isEmpty(); +} + IAssistProposalItem *CppAssistProposalModel::proposalItem(int index) const { BasicProposalItem *item = @@ -699,10 +705,6 @@ IAssistProposal * CppCompletionAssistProcessor::perform(const IAssistInterface * if (m_hintProposal) return m_hintProposal; - if (m_model->m_completionOperator != T_EOF_SYMBOL) - m_model->m_sortable = true; - else - m_model->m_sortable = false; return createContentProposal(); } diff --git a/src/plugins/qt4projectmanager/profilecompletionassist.cpp b/src/plugins/qt4projectmanager/profilecompletionassist.cpp index 874e3999523..94f998ea67a 100644 --- a/src/plugins/qt4projectmanager/profilecompletionassist.cpp +++ b/src/plugins/qt4projectmanager/profilecompletionassist.cpp @@ -225,7 +225,7 @@ ProFileAssistProposalModel::ProFileAssistProposalModel( ProFileAssistProposalModel::~ProFileAssistProposalModel() {} -bool ProFileAssistProposalModel::isSortable() const +bool ProFileAssistProposalModel::isSortable(const QString &prefix) const { return false; } diff --git a/src/plugins/qt4projectmanager/profilecompletionassist.h b/src/plugins/qt4projectmanager/profilecompletionassist.h index a08521a40b1..260e1e825f3 100644 --- a/src/plugins/qt4projectmanager/profilecompletionassist.h +++ b/src/plugins/qt4projectmanager/profilecompletionassist.h @@ -97,7 +97,7 @@ public: ProFileAssistProposalModel(const QList &items); virtual ~ProFileAssistProposalModel(); - virtual bool isSortable() const; + virtual bool isSortable(const QString &prefix) const; }; } // Internal diff --git a/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.cpp b/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.cpp index ca4e6ba977c..a2cdeadf504 100644 --- a/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.cpp +++ b/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.cpp @@ -216,8 +216,10 @@ void BasicProposalItemListModel::filter(const QString &prefix) } } -bool BasicProposalItemListModel::isSortable() const +bool BasicProposalItemListModel::isSortable(const QString &prefix) const { + Q_UNUSED(prefix); + if (m_currentItems.size() < kMaxSort) return true; return false; diff --git a/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h b/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h index 8029d4e42f4..0ea79c2872b 100644 --- a/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h +++ b/src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h @@ -60,7 +60,7 @@ public: virtual int persistentId(int index) const; virtual void removeDuplicates(); virtual void filter(const QString &prefix); - virtual bool isSortable() const; + virtual bool isSortable(const QString &prefix) const; virtual void sort(); virtual bool supportsPrefixExpansion() const; virtual QString proposalPrefix() const; diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp index a06891da3a9..8b0951ee848 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp @@ -437,7 +437,7 @@ bool GenericProposalWidget::updateAndCheck(const QString &prefix) abort(); return false; } - if (d->m_model->isSortable()) + if (d->m_model->isSortable(prefix)) d->m_model->sort(); d->m_completionListView->reset(); diff --git a/src/plugins/texteditor/codeassist/igenericproposalmodel.h b/src/plugins/texteditor/codeassist/igenericproposalmodel.h index d5ba9550225..746b9242a9b 100644 --- a/src/plugins/texteditor/codeassist/igenericproposalmodel.h +++ b/src/plugins/texteditor/codeassist/igenericproposalmodel.h @@ -55,7 +55,7 @@ public: virtual int persistentId(int index) const = 0; virtual void removeDuplicates() = 0; virtual void filter(const QString &prefix) = 0; - virtual bool isSortable() const = 0; + virtual bool isSortable(const QString &prefix) const = 0; virtual void sort() = 0; virtual bool supportsPrefixExpansion() const = 0; virtual QString proposalPrefix() const = 0;