forked from qt-creator/qt-creator
Clang: Clean up diagnostic widget
* Use a single QLabel - No need for all the QLabels we used. Also, a single QLabel enables selecting and copying all the diagnostics, which is handy when displayed in the info bar. * Avoid call to Utils::ToolTip::hideImmediately() if the location is clicked from the info bar. * Simplify code and API Change-Id: Ib991364e4d6f40ef02dada8ebbb90fe6ff8ae1a1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -263,8 +263,12 @@ void ClangEditorDocumentProcessor::addDiagnosticToolTipToLayout(uint line,
|
||||
uint column,
|
||||
QLayout *target) const
|
||||
{
|
||||
foreach (const auto &diagnostic, m_diagnosticManager.diagnosticsAt(line, column))
|
||||
addToolTipToLayout(diagnostic, target);
|
||||
using Internal::ClangDiagnosticWidget;
|
||||
|
||||
const QVector<ClangBackEnd::DiagnosticContainer> diagnostics
|
||||
= m_diagnosticManager.diagnosticsAt(line, column);
|
||||
|
||||
target->addWidget(ClangDiagnosticWidget::create(diagnostics, ClangDiagnosticWidget::ToolTip));
|
||||
}
|
||||
|
||||
void ClangEditorDocumentProcessor::editorDocumentTimerRestarted()
|
||||
@@ -342,16 +346,6 @@ void ClangEditorDocumentProcessor::requestDocumentAnnotations(const QString &pro
|
||||
m_ipcCommunicator.requestDocumentAnnotations(fileContainer);
|
||||
}
|
||||
|
||||
static Internal::DisplayHints displayHintsForInfoBar()
|
||||
{
|
||||
Internal::DisplayHints displayHints;
|
||||
displayHints.showMainDiagnosticHeader = false;
|
||||
displayHints.showFileNameInMainDiagnostic = true;
|
||||
displayHints.enableClickableFixits = false; // Tool chain headers might be changed, so disable.
|
||||
|
||||
return displayHints;
|
||||
}
|
||||
|
||||
CppTools::BaseEditorDocumentProcessor::HeaderErrorDiagnosticWidgetCreator
|
||||
ClangEditorDocumentProcessor::creatorForHeaderErrorDiagnosticWidget(
|
||||
const ClangBackEnd::DiagnosticContainer &firstHeaderErrorDiagnostic)
|
||||
@@ -365,7 +359,8 @@ ClangEditorDocumentProcessor::creatorForHeaderErrorDiagnosticWidget(
|
||||
vbox->setContentsMargins(10, 0, 0, 2);
|
||||
vbox->setSpacing(2);
|
||||
|
||||
addToolTipToLayout(firstHeaderErrorDiagnostic, vbox, displayHintsForInfoBar());
|
||||
vbox->addWidget(ClangDiagnosticWidget::create({firstHeaderErrorDiagnostic},
|
||||
ClangDiagnosticWidget::InfoBar));
|
||||
|
||||
auto widget = new QWidget;
|
||||
widget->setLayout(vbox);
|
||||
|
||||
Reference in New Issue
Block a user