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

Method update

kdevplatform/language/duchain/navigation/abstractnavigationwidget.cpp:169–245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

167}
168
169void AbstractNavigationWidget::update()
170{
171 Q_D(AbstractNavigationWidget);
172
173 setUpdatesEnabled(false);
174 Q_ASSERT(d->m_context);
175
176 QString html;
177 {
178 DUChainReadLocker lock;
179 html = d->m_context->html();
180 }
181
182 if (!html.isEmpty()) {
183 int scrollPos = d->m_browser->verticalScrollBar()->value();
184
185 if (!(d->m_hints & EmbeddableWidget)) {
186 // TODO: Only show that the first time, or the first few times this context is shown?
187 html += QStringLiteral("<p><small>");
188 if (d->m_context->linkCount() > 0) {
189 html +=
190 i18n("(Hold <em>Alt</em> to show. Navigate via arrow keys, activate by pressing <em>Enter</em>)");
191 } else {
192 html += i18n("(Hold <em>Alt</em> to show this tooltip)");
193 }
194 html += QStringLiteral("</small></p>");
195 }
196
197 d->m_browser->setHtml(html);
198
199 WidgetColorizer::convertDocumentToDarkTheme(d->m_browser->document());
200
201 d->m_currentText = html;
202
203 d->m_idealTextSize = QSize();
204
205 QSize hint = sizeHint();
206 if (hint.height() >= d->m_idealTextSize.height()) {
207 d->m_browser->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
208 } else {
209 d->m_browser->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
210 }
211
212 d->m_browser->verticalScrollBar()->setValue(scrollPos);
213 d->m_browser->scrollToAnchor(QStringLiteral("currentPosition"));
214 d->m_browser->show();
215 } else {
216 d->m_browser->hide();
217 }
218
219 if (d->m_currentWidget) {
220 layout()->removeWidget(d->m_currentWidget);
221 d->m_currentWidget->setParent(nullptr);
222 }
223
224 d->m_currentWidget = d->m_context->widget();
225
226 d->m_browser->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

Callers

nothing calls this directly

Calls 15

sizeHintFunction · 0.85
linkCountMethod · 0.80
setHtmlMethod · 0.80
showMethod · 0.80
removeWidgetMethod · 0.80
metaObjectMethod · 0.80
htmlMethod · 0.45
isEmptyMethod · 0.45
valueMethod · 0.45
documentMethod · 0.45
setValueMethod · 0.45
setParentMethod · 0.45

Tested by

no test coverage detected