diff options
author | Katja Marttila <katja.marttila@qt.io> | 2022-12-22 11:19:29 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2022-12-28 12:27:20 +0200 |
commit | bf27a46ee888d0f09066c4be683f343b9d85a7f9 (patch) | |
tree | 8249b258f46e0062e0b62f595fa754b31f5357cf | |
parent | 5422c0cdfcdbd58182141be78343c1b4863a6198 (diff) |
Optimize tooltip and description setting
Tooltip and description texts were set every time any component data was
updated. Fixed so that the texts are altered only when needed.
Task-number: QTIFW-2805
Change-Id: Ic75a17d4b88d0f3b1658d9ec187284d4604f9f45
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
-rw-r--r-- | src/libs/installer/component.cpp | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/libs/installer/component.cpp b/src/libs/installer/component.cpp index 714f3c70f..914164571 100644 --- a/src/libs/installer/component.cpp +++ b/src/libs/installer/component.cpp @@ -1198,6 +1198,10 @@ void Component::markComponentUnstable(Component::UnstableError error, const QStr setValue(scUnstable, scTrue); QMetaEnum metaEnum = QMetaEnum::fromType<Component::UnstableError>(); emit packageManagerCore()->unstableComponentFound(QLatin1String(metaEnum.valueToKey(error)), errorMessage, this->name()); + + // Update the description and tooltip texts to contain + // information about the unstable error. + updateModelData(scDescription, QString()); } QJSValue Component::callScriptMethod(const QString &methodName, const QJSValueList &arguments) const @@ -1738,24 +1742,26 @@ void Component::updateModelData(const QString &key, const QString &data) setData(humanReadableSize(size), UncompressedSize); } - QString tooltipText; - const QString &updateInfo = d->m_vars.value(scUpdateText); - if (!d->m_core->isUpdater() || updateInfo.isEmpty()) { - tooltipText = QString::fromLatin1("<html><body>%1</body></html>").arg(d->m_vars.value(scDescription)); - } else { - tooltipText = d->m_vars.value(scDescription) + QLatin1String("<br><br>") - + tr("Update Info: ") + updateInfo; - } - if (isUnstable()) { - tooltipText += QLatin1String("<br>") + tr("There was an error loading the selected component. " + if (key == scUpdateText || key == scDescription) { + QString tooltipText; + const QString &updateInfo = d->m_vars.value(scUpdateText); + if (!d->m_core->isUpdater() || updateInfo.isEmpty()) { + tooltipText = QString::fromLatin1("<html><body>%1</body></html>").arg(d->m_vars.value(scDescription)); + } else { + tooltipText = d->m_vars.value(scDescription) + QLatin1String("<br><br>") + + tr("Update Info: ") + updateInfo; + } + if (isUnstable()) { + tooltipText += QLatin1String("<br>") + tr("There was an error loading the selected component. " "This component cannot be installed."); - } - static const QRegularExpression externalLinkRegexp(QLatin1String("{external-link}='(.*?)'")); - static const QLatin1String externalLinkElement(QLatin1String("<a href=\"\\1\">\\1</a>")); - // replace {external-link}='' fields in component description with proper link tags - tooltipText.replace(externalLinkRegexp, externalLinkElement); + } + static const QRegularExpression externalLinkRegexp(QLatin1String("{external-link}='(.*?)'")); + static const QLatin1String externalLinkElement(QLatin1String("<a href=\"\\1\">\\1</a>")); + // replace {external-link}='' fields in component description with proper link tags + tooltipText.replace(externalLinkRegexp, externalLinkElement); - setData(tooltipText, Qt::ToolTipRole); + setData(tooltipText, Qt::ToolTipRole); + } } /*! |