forked from qt-creator/qt-creator
Clang: Show help with F1 even if there is a diagnostic
...at that particular location. For example, the code new QSignalMapper; produced a deprecated warning with Qt 5.12 and F1 led to "No documentation available" as the diagnostic was always prioritized. Task-number: QTCREATORBUG-21686 Change-Id: Icf03000fb6b9de04e467e758da6167018d154a21 Reviewed-by: Marco Bubke <marco.bubke@qt.io> Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -114,7 +114,7 @@ void ClangHoverHandler::identifyMatch(TextEditorWidget *editorWidget,
|
||||
m_cursorPosition = -1;
|
||||
|
||||
// Check for diagnostics (sync)
|
||||
if (editorDocumentProcessorHasDiagnosticAt(editorWidget, pos)) {
|
||||
if (!isContextHelpRequest() && editorDocumentProcessorHasDiagnosticAt(editorWidget, pos)) {
|
||||
qCDebug(hoverLog) << "Checking for diagnostic at" << pos;
|
||||
setPriority(Priority_Diagnostic);
|
||||
m_cursorPosition = pos;
|
||||
|
@@ -73,6 +73,8 @@ void BaseHoverHandler::contextHelpId(TextEditorWidget *widget,
|
||||
int pos,
|
||||
const Core::IContext::HelpIdCallback &callback)
|
||||
{
|
||||
m_isContextHelpRequest = true;
|
||||
|
||||
// If the tooltip is visible and there is a help match, this match is used to update
|
||||
// the help id. Otherwise, let the identification process happen.
|
||||
if (!Utils::ToolTip::isVisible() || !lastHelpItemIdentified().isValid()) {
|
||||
@@ -83,6 +85,8 @@ void BaseHoverHandler::contextHelpId(TextEditorWidget *widget,
|
||||
} else {
|
||||
propagateHelpId(widget, callback);
|
||||
}
|
||||
|
||||
m_isContextHelpRequest = false;
|
||||
}
|
||||
|
||||
void BaseHoverHandler::setToolTip(const QString &tooltip)
|
||||
@@ -105,6 +109,11 @@ const HelpItem &BaseHoverHandler::lastHelpItemIdentified() const
|
||||
return m_lastHelpItemIdentified;
|
||||
}
|
||||
|
||||
bool BaseHoverHandler::isContextHelpRequest() const
|
||||
{
|
||||
return m_isContextHelpRequest;
|
||||
}
|
||||
|
||||
void BaseHoverHandler::propagateHelpId(TextEditorWidget *widget,
|
||||
const Core::IContext::HelpIdCallback &callback)
|
||||
{
|
||||
|
@@ -71,6 +71,8 @@ protected:
|
||||
void setLastHelpItemIdentified(const HelpItem &help);
|
||||
const HelpItem &lastHelpItemIdentified() const;
|
||||
|
||||
bool isContextHelpRequest() const;
|
||||
|
||||
void propagateHelpId(TextEditorWidget *widget, const Core::IContext::HelpIdCallback &callback);
|
||||
|
||||
// identifyMatch() is required to report a priority by using the "report" callback.
|
||||
@@ -87,6 +89,7 @@ private:
|
||||
QString m_toolTip;
|
||||
HelpItem m_lastHelpItemIdentified;
|
||||
int m_priority = -1;
|
||||
bool m_isContextHelpRequest = false;
|
||||
};
|
||||
|
||||
} // namespace TextEditor
|
||||
|
Reference in New Issue
Block a user