From b3d9647582cffe2c193ef5c808b6ef7c32893562 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 18 Jul 2019 07:47:17 +0200 Subject: [PATCH] PE: Do not let user enable a kit that has errors If a kit has errors it still could get enabled by using its context menu on the Project view. Avoid this and its side effects. Change-Id: I2434cd3c540c1f3c287b84258391450693df986a Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/targetsettingspanel.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index 3d22124f9a4..c41d5ca1e4e 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -399,7 +399,7 @@ public: if (role == ContextMenuItemAdderRole) { auto *menu = data.value(); - addToContextMenu(menu); + addToContextMenu(menu, flags(column) & Qt::ItemIsSelectable); return true; } @@ -440,7 +440,7 @@ public: return false; } - void addToContextMenu(QMenu *menu) + void addToContextMenu(QMenu *menu, bool isSelectable) { Kit *kit = KitManager::kit(m_kitId); QTC_ASSERT(kit, return); @@ -448,13 +448,13 @@ public: const QString projectName = m_project->displayName(); QAction *enableAction = menu->addAction(tr("Enable Kit \"%1\" for Project \"%2\"").arg(kitName, projectName)); - enableAction->setEnabled(m_kitId.isValid() && !isEnabled()); + enableAction->setEnabled(isSelectable && m_kitId.isValid() && !isEnabled()); QObject::connect(enableAction, &QAction::triggered, [this, kit] { m_project->addTarget(m_project->createTarget(kit)); }); QAction *disableAction = menu->addAction(tr("Disable Kit \"%1\" for Project \"%2\"").arg(kitName, projectName)); - disableAction->setEnabled(m_kitId.isValid() && isEnabled()); + disableAction->setEnabled(isSelectable && m_kitId.isValid() && isEnabled()); QObject::connect(disableAction, &QAction::triggered, m_project, [this] { Target *t = target(); QTC_ASSERT(t, return);