From 0c62b29f97cef5818ef189634406e651039ceb8a Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Wed, 23 Oct 2013 16:02:18 +0200 Subject: [PATCH] CppEditor: Fix position of virtual override list ...when using the mouse (Ctrl + Left click). Task-number: QTCREATORBUG-10479 Change-Id: I54a21c449d8bb8e608d383752beb3b31c9c81783 Reviewed-by: Erik Verbruggen --- src/plugins/cppeditor/cppfollowsymbolundercursor.cpp | 1 + .../cppeditor/cppvirtualfunctionassistprovider.cpp | 10 ++++------ .../cppeditor/cppvirtualfunctionassistprovider.h | 3 ++- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/plugins/cppeditor/cppfollowsymbolundercursor.cpp b/src/plugins/cppeditor/cppfollowsymbolundercursor.cpp index adc4640eb14..0132f592ad8 100644 --- a/src/plugins/cppeditor/cppfollowsymbolundercursor.cpp +++ b/src/plugins/cppeditor/cppfollowsymbolundercursor.cpp @@ -560,6 +560,7 @@ BaseTextEditorWidget::Link FollowSymbolUnderCursor::findLink(const QTextCursor & params.startClass = klass; params.function = function; params.snapshot = snapshot; + params.cursorPosition = cursor.position(); params.openInNextSplit = inNextSplit; if (m_virtualFunctionAssistProvider->configure(params)) { diff --git a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp index dbcfa540a41..76d6cc0d172 100644 --- a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp +++ b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp @@ -113,9 +113,8 @@ public: : m_params(params) {} - IAssistProposal *immediateProposal(const TextEditor::IAssistInterface *assistInterface) + IAssistProposal *immediateProposal(const TextEditor::IAssistInterface *) { - QTC_ASSERT(assistInterface, return 0); QTC_ASSERT(m_params.function, return 0); BasicProposalItem *hintItem = new VirtualFunctionProposalItem(CPPEditorWidget::Link()); @@ -126,14 +125,13 @@ public: QList items; items << itemFromSymbol(maybeDefinitionFor(m_params.function)); items << hintItem; - return new VirtualFunctionProposal(assistInterface->position(), + return new VirtualFunctionProposal(m_params.cursorPosition, new BasicProposalItemListModel(items), m_params.openInNextSplit); } - IAssistProposal *perform(const IAssistInterface *assistInterface) + IAssistProposal *perform(const IAssistInterface *) { - QTC_ASSERT(assistInterface, return 0); QTC_ASSERT(m_params.startClass, return 0); QTC_ASSERT(m_params.function, return 0); QTC_ASSERT(!m_params.snapshot.isEmpty(), return 0); @@ -148,7 +146,7 @@ public: items << itemFromSymbol(maybeDefinitionFor(symbol)); items.first()->setOrder(1000); // Ensure top position for function of static type - return new VirtualFunctionProposal(assistInterface->position(), + return new VirtualFunctionProposal(m_params.cursorPosition, new BasicProposalItemListModel(items), m_params.openInNextSplit); } diff --git a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.h b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.h index 2d91e298ee7..b5ff42d846b 100644 --- a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.h +++ b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.h @@ -46,11 +46,12 @@ public: VirtualFunctionAssistProvider(); struct Parameters { - Parameters() : startClass(0), function(0), openInNextSplit(false) {} + Parameters() : startClass(0), function(0), cursorPosition(-1), openInNextSplit(false) {} CPlusPlus::Class *startClass; CPlusPlus::Function *function; CPlusPlus::Snapshot snapshot; + int cursorPosition; bool openInNextSplit; };