Help: Avoid double lookup for help tooltips

Save the HelpItem directly in the tooltip instead of the help ID which
would need to be looked up again.

Change-Id: I107e82e89d9ea26cad9d6532ad4c687d1ac8f1ec
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2019-01-29 11:43:43 +01:00
parent 4e8c2c4b13
commit 32429e11c9
9 changed files with 67 additions and 57 deletions

View File

@@ -75,7 +75,7 @@ static bool editorDocumentProcessorHasDiagnosticAt(TextEditorWidget *editorWidge
static void processWithEditorDocumentProcessor(TextEditorWidget *editorWidget,
const QPoint &point,
int position,
const QString &helpId)
const Core::HelpItem &helpItem)
{
if (CppTools::BaseEditorDocumentProcessor *processor = editorDocumentProcessor(editorWidget)) {
int line, column;
@@ -84,7 +84,7 @@ static void processWithEditorDocumentProcessor(TextEditorWidget *editorWidget,
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(2);
processor->addDiagnosticToolTipToLayout(line, column, layout);
Utils::ToolTip::show(point, layout, editorWidget, helpId);
Utils::ToolTip::show(point, layout, editorWidget, qVariantFromValue(helpItem));
}
}
}
@@ -283,9 +283,10 @@ void ClangHoverHandler::operateTooltip(TextEditor::TextEditorWidget *editorWidge
const QPoint &point)
{
if (priority() == Priority_Diagnostic) {
const Core::HelpItem helpItem = lastHelpItemIdentified();
const QString helpId = helpItem.isValid() ? helpItem.helpId() : QString();
processWithEditorDocumentProcessor(editorWidget, point, m_cursorPosition, helpId);
processWithEditorDocumentProcessor(editorWidget,
point,
m_cursorPosition,
lastHelpItemIdentified());
return;
}