diff --git a/src/libs/cplusplus/TypeOfExpression.cpp b/src/libs/cplusplus/TypeOfExpression.cpp index 7f08d5874d8c54df110f7001d33789e6a4a3199a..47d6b10360c0e0b68169b257630cfe034d09cb8b 100644 --- a/src/libs/cplusplus/TypeOfExpression.cpp +++ b/src/libs/cplusplus/TypeOfExpression.cpp @@ -47,6 +47,11 @@ TypeOfExpression::TypeOfExpression(): { } +Snapshot TypeOfExpression::snapshot() const +{ + return m_snapshot; +} + void TypeOfExpression::setSnapshot(const Snapshot &documents) { m_snapshot = documents; diff --git a/src/libs/cplusplus/TypeOfExpression.h b/src/libs/cplusplus/TypeOfExpression.h index c0eafb2e37f047258c50fa61ea9b6bc66c745357..1f41b26248a961658a1a93f66d8b5154f6415584 100644 --- a/src/libs/cplusplus/TypeOfExpression.h +++ b/src/libs/cplusplus/TypeOfExpression.h @@ -54,6 +54,8 @@ public: public: TypeOfExpression(); + Snapshot snapshot() const; + /** * Sets the documents used to evaluate expressions. Should be set before * calling this functor. diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 2cd859ecb9e4e18a15a2c163792d2ed9ac58b5da..a3759c7c9526f353248949945baebab58e4e9585 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -77,7 +77,7 @@ namespace Internal { class FunctionArgumentWidget : public QLabel { public: FunctionArgumentWidget(Core::ICore *core); - void showFunctionHint(Function *functionSymbol); + void showFunctionHint(Function *functionSymbol, const Snapshot &snapshot); protected: bool eventFilter(QObject *obj, QEvent *e); @@ -94,6 +94,7 @@ private: QFrame *m_popupFrame; Function *m_item; + Snapshot m_snapshot; }; class ConvertToCompletionItem: protected NameVisitor @@ -212,9 +213,11 @@ FunctionArgumentWidget::FunctionArgumentWidget(Core::ICore *core) setMargin(1); } -void FunctionArgumentWidget::showFunctionHint(Function *functionSymbol) +void FunctionArgumentWidget::showFunctionHint(Function *functionSymbol, + const Snapshot &snapshot) { m_item = functionSymbol; + m_snapshot = snapshot; m_startpos = m_editor->position(); // update the text @@ -1023,7 +1026,7 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item) QTC_ASSERT(function, return); m_functionArgumentWidget = new FunctionArgumentWidget(m_core); - m_functionArgumentWidget->showFunctionHint(function); + m_functionArgumentWidget->showFunctionHint(function, typeOfExpression.snapshot()); } } else if (m_completionOperator == T_SIGNAL || m_completionOperator == T_SLOT) { QString toInsert = item.m_text;