MCPcopy Create free account
hub / github.com/KDE/kdevelop / html

Method html

kdevplatform/language/duchain/navigation/problemnavigationcontext.cpp:104–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

102}
103
104void ProblemNavigationContext::html(IProblem::Ptr problem)
105{
106 modifyHtml() += QStringLiteral("<table><tr>");
107
108 modifyHtml() += QStringLiteral("<td valign=\"middle\">%1</td>")
109 .arg(htmlImg(IProblem::iconForSeverity(problem->severity()), QStyle::PM_LargeIconSize));
110
111 // BEGIN: right column
112 modifyHtml() += QStringLiteral("<td>");
113
114 modifyHtml() += i18n("Problem in <i>%1</i>", problem->sourceString());
115 modifyHtml() += QStringLiteral("<br/>");
116
117 if (m_flags & ShowLocation) {
118 modifyHtml() += labelHighlight(i18n("Location: "));
119 makeLink(QStringLiteral("%1 :%2")
120 .arg(problem->finalLocation().document.toUrl().fileName())
121 .arg(problem->finalLocation().start().line() + 1),
122 QString(),
123 NavigationAction(problem->finalLocation().document.toUrl(), problem->finalLocation().start())
124 );
125
126 modifyHtml() += QStringLiteral("<br/>");
127 }
128
129 QString description = escapedHtml(problem->description());
130 QString explanation = escapedHtml(problem->explanation());
131
132 modifyHtml() += description;
133
134 // Add only non-empty explanation which differs from the problem description.
135 // Skip this if we have more than one problem.
136 if (m_problems.size() == 1 && !explanation.isEmpty() && explanation != description)
137 modifyHtml() += QLatin1String("<p><i style=\"white-space:pre-wrap\">") + explanation +
138 QLatin1String("</i></p>");
139
140 modifyHtml() += QStringLiteral("</td>");
141 // END: right column
142
143 modifyHtml() += QStringLiteral("</tr></table>");
144
145 const auto diagnostics = problem->diagnostics();
146 if (!diagnostics.isEmpty()) {
147 DUChainReadLocker lock;
148 for (auto diagnostic : diagnostics) {
149 modifyHtml() += QStringLiteral("<p>");
150 modifyHtml() += labelHighlight(QStringLiteral("%1: ").arg(diagnostic->severityString()));
151 modifyHtml() += escapedHtml(diagnostic->description());
152
153 const DocumentRange range = diagnostic->finalLocation();
154 Declaration* declaration = DUChainUtils::itemUnderCursor(range.document.toUrl(), range.start()).declaration;
155 if (declaration) {
156 modifyHtml() += i18n("<br>See: ");
157 makeLink(declaration->toString(), DeclarationPointer(declaration),
158 NavigationAction::NavigateDeclaration);
159 modifyHtml() += i18n(" in ");
160 const auto url = declaration->url().toUrl();
161 makeLink(QStringLiteral("%1 :%2")

Callers

nothing calls this directly

Calls 15

modifyHtmlFunction · 0.85
htmlImgFunction · 0.85
NavigationActionClass · 0.85
KEY_INVOKE_ACTIONFunction · 0.85
toHtmlEscapedMethod · 0.80
QStringClass · 0.50
clearFunction · 0.50
severityMethod · 0.45
sourceStringMethod · 0.45
fileNameMethod · 0.45
toUrlMethod · 0.45

Tested by

no test coverage detected