ProjectExplorer: Prevent spurious soft asserts in target panel

When a kit is being removed, various signals are being emitted in
unspecified order, so there is a transient state where the target model
has to expect the kit not being present.

Fixes: QTCREATORBUG-27742
Change-Id: I2df5db780a7fcf614397e525451f3f8bcbae8b84
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2022-06-23 12:41:19 +02:00
parent 818451fa9e
commit 44aea533f8

View File

@@ -289,7 +289,8 @@ public:
case Qt::DecorationRole: {
const Kit *k = KitManager::kit(m_kitId);
QTC_ASSERT(k, return QVariant());
if (!k)
break;
if (m_kitErrorsForProject)
return kitIconWithOverlay(*k, IconOverlay::Error);
if (!isEnabled())
@@ -317,7 +318,8 @@ public:
case Qt::ToolTipRole: {
Kit *k = KitManager::kit(m_kitId);
QTC_ASSERT(k, return QVariant());
if (!k)
break;
const QString extraText = [this]() {
if (m_kitErrorsForProject)
return QString("<h3>" + tr("Kit is unsuited for project") + "</h3>");