From e1b0ba2473abd61263482349cfcc16ebef55af11 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 20 Jul 2022 10:36:44 +0200 Subject: [PATCH] QmlProject: Disable or hide qmlproject related actions Generate CMake Build files is only relevant for .qmlprojects and should only be enabled for those. Export as latest Project Format is only relevant for QDS and should be hidden in Qt Creator. Task-number: QTCREATORBUG-27935 Change-Id: Iac6ca6927443a92dfb501f76c855fd641aaf10da Reviewed-by: Thomas Hartmann --- .../qmlprojectmanager/cmakegen/generatecmakelists.cpp | 11 +++++++---- src/plugins/qmlprojectmanager/qmlprojectplugin.cpp | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp b/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp index 5dde651ded2..613b6b03b4b 100644 --- a/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp +++ b/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp @@ -90,11 +90,14 @@ void generateMenuEntry(QObject *parent) Core::Command *cmd = Core::ActionManager::registerAction(action, "QmlProject.CreateCMakeLists"); menu->addAction(cmd, Core::Constants::G_FILE_EXPORT); - action->setEnabled(ProjectExplorer::SessionManager::startupProject() != nullptr); + action->setEnabled(false); QObject::connect(ProjectExplorer::SessionManager::instance(), - &ProjectExplorer::SessionManager::startupProjectChanged, [action]() { - action->setEnabled(ProjectExplorer::SessionManager::startupProject() != nullptr); - }); + &ProjectExplorer::SessionManager::startupProjectChanged, + [action]() { + auto qmlProject = qobject_cast( + ProjectExplorer::SessionManager::startupProject()); + action->setEnabled(qmlProject != nullptr); + }); } void onGenerateCmakeLists() diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp index e06f0016db9..ee4cf88ddc7 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp @@ -379,7 +379,8 @@ bool QmlProjectPlugin::initialize(const QStringList &, QString *errorMessage) } GenerateCmake::generateMenuEntry(this); - GenerateCmake::CmakeProjectConverter::generateMenuEntry(this); + if (QmlProject::isQtDesignStudio()) + GenerateCmake::CmakeProjectConverter::generateMenuEntry(this); return true; }