Qt: Fix slow options page

For remote devices, reading and parsing all the information
of a qt version, can take a long time. This patch delays the read
until the user actually opens the details widget.

Change-Id: I7bd34d05acc8d01f17609996e84630f958091b3a
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-08-09 13:41:06 +02:00
parent 7630801293
commit 8ac37d3df4

View File

@@ -436,7 +436,15 @@ void QtOptionsPageWidget::toolChainsUpdated()
void QtOptionsPageWidget::setInfoWidgetVisibility() void QtOptionsPageWidget::setInfoWidgetVisibility()
{ {
m_versionInfoWidget->setVisible(m_infoWidget->state() == DetailsWidget::Collapsed); bool isExpanded = m_infoWidget->state() == DetailsWidget::Expanded;
if (isExpanded && m_infoBrowser->toPlainText().isEmpty()) {
QtVersionItem *item = currentItem();
const QtVersion *version = item ? item->version() : nullptr;
if (version)
m_infoBrowser->setHtml(version->toHtml(true));
}
m_versionInfoWidget->setVisible(!isExpanded);
m_infoWidget->setVisible(true); m_infoWidget->setVisible(true);
} }
@@ -755,11 +763,10 @@ void QtOptionsPageWidget::updateDescriptionLabel()
if (item) if (item)
item->setIcon(info.icon); item->setIcon(info.icon);
m_infoBrowser->clear();
if (version) { if (version) {
m_infoBrowser->setHtml(version->toHtml(true));
setInfoWidgetVisibility(); setInfoWidgetVisibility();
} else { } else {
m_infoBrowser->clear();
m_versionInfoWidget->setVisible(false); m_versionInfoWidget->setVisible(false);
m_infoWidget->setVisible(false); m_infoWidget->setVisible(false);
} }