ProjectExplorer: Keep "Run" entry in top-level project node visible

Enable/disable instead of show/hide, for more stable UI.

Fixes: QTCREATORBUG-29042
Change-Id: Ie2c37b3cb127f9dffaf42570f11b2cca6accd3fd
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Christian Kandeler
2023-04-25 14:56:46 +02:00
parent 3a70cb2870
commit 963ae0a192

View File

@@ -3409,7 +3409,7 @@ void ProjectExplorerPluginPrivate::updateContextMenuActions(Node *currentNode)
m_removeFileAction->setVisible(true); m_removeFileAction->setVisible(true);
m_duplicateFileAction->setVisible(false); m_duplicateFileAction->setVisible(false);
m_deleteFileAction->setVisible(true); m_deleteFileAction->setVisible(true);
m_runActionContextMenu->setVisible(false); m_runActionContextMenu->setEnabled(false);
m_defaultRunConfiguration.clear(); m_defaultRunConfiguration.clear();
m_diffFileAction->setVisible(DiffService::instance()); m_diffFileAction->setVisible(DiffService::instance());
@@ -3438,7 +3438,7 @@ void ProjectExplorerPluginPrivate::updateContextMenuActions(Node *currentNode)
if (pn && project) { if (pn && project) {
if (pn == project->rootProjectNode()) { if (pn == project->rootProjectNode()) {
m_runActionContextMenu->setVisible(true); m_runActionContextMenu->setEnabled(true);
} else { } else {
QList<RunConfiguration *> runConfigs; QList<RunConfiguration *> runConfigs;
if (Target *t = project->activeTarget()) { if (Target *t = project->activeTarget()) {
@@ -3449,7 +3449,7 @@ void ProjectExplorerPluginPrivate::updateContextMenuActions(Node *currentNode)
} }
} }
if (runConfigs.count() == 1) { if (runConfigs.count() == 1) {
m_runActionContextMenu->setVisible(true); m_runActionContextMenu->setEnabled(true);
m_defaultRunConfiguration = runConfigs.first(); m_defaultRunConfiguration = runConfigs.first();
} else if (runConfigs.count() > 1) { } else if (runConfigs.count() > 1) {
runMenu->menu()->menuAction()->setVisible(true); runMenu->menu()->menuAction()->setVisible(true);