forked from qt-creator/qt-creator
QmlDesigner: Disable exports not supported for MCU
Add helper function getStartupBuildSystem() to avoid code duplication. Task-number: QDS-11544 Change-Id: Id8d752d63171838ac9ea6402ff9f2b179d0d8f53 Reviewed-by: Aleksei German <aleksei.german@qt.io>
This commit is contained in:
@@ -32,6 +32,7 @@
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
#include <projectexplorer/target.h>
|
||||
|
||||
#include "projectexplorer/projectmanager.h"
|
||||
#include "projectitem/qmlprojectitem.h"
|
||||
#include "projectnode/qmlprojectnodes.h"
|
||||
|
||||
@@ -389,6 +390,16 @@ Utils::FilePath QmlBuildSystem::getStartupQmlFileWithFallback() const
|
||||
return {};
|
||||
}
|
||||
|
||||
QmlBuildSystem *QmlBuildSystem::getStartupBuildSystem()
|
||||
{
|
||||
auto project = ProjectExplorer::ProjectManager::startupProject();
|
||||
if (project && project->activeTarget() && project->activeTarget()->buildSystem()) {
|
||||
return qobject_cast<QmlProjectManager::QmlBuildSystem *>(
|
||||
project->activeTarget()->buildSystem());
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Utils::FilePath QmlBuildSystem::mainFilePath() const
|
||||
{
|
||||
const QString fileName = mainFile();
|
||||
|
||||
@@ -102,6 +102,8 @@ public:
|
||||
|
||||
Utils::FilePath getStartupQmlFileWithFallback() const;
|
||||
|
||||
static QmlBuildSystem *getStartupBuildSystem();
|
||||
|
||||
signals:
|
||||
void projectChanged();
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <projectexplorer/projectmanager.h>
|
||||
#include <projectexplorer/target.h>
|
||||
|
||||
#include <qmlprojectmanager/buildsystem/qmlbuildsystem.h>
|
||||
#include <qmlprojectmanager/qmlprojectmanagerconstants.h>
|
||||
|
||||
#include <QAction>
|
||||
@@ -44,9 +45,15 @@ void CmakeProjectConverter::generateMenuEntry(QObject *parent)
|
||||
|
||||
action->setEnabled(isProjectConvertable(ProjectExplorer::ProjectManager::startupProject()));
|
||||
QObject::connect(ProjectExplorer::ProjectManager::instance(),
|
||||
&ProjectExplorer::ProjectManager::startupProjectChanged, [action]() {
|
||||
action->setEnabled(isProjectConvertable(ProjectExplorer::ProjectManager::startupProject()));
|
||||
});
|
||||
&ProjectExplorer::ProjectManager::startupProjectChanged,
|
||||
[action]() {
|
||||
auto currentBuildSystem = QmlBuildSystem::getStartupBuildSystem();
|
||||
bool isMCU = currentBuildSystem ? currentBuildSystem->qtForMCUs() : false;
|
||||
|
||||
action->setEnabled(isMCU
|
||||
&& isProjectConvertable(
|
||||
ProjectExplorer::ProjectManager::startupProject()));
|
||||
});
|
||||
}
|
||||
|
||||
bool CmakeProjectConverter::isProjectConvertable(const ProjectExplorer::Project *project)
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <projectexplorer/projectmanager.h>
|
||||
#include <projectexplorer/target.h>
|
||||
|
||||
#include <qmlprojectmanager/buildsystem/qmlbuildsystem.h>
|
||||
#include <qmlprojectmanager/qmlmainfileaspect.h>
|
||||
#include <qmlprojectmanager/qmlproject.h>
|
||||
#include <qmlprojectmanager/qmlprojectmanagerconstants.h>
|
||||
@@ -85,16 +86,6 @@ enum ProjectDirectoryError {
|
||||
|
||||
const QString MENU_ITEM_GENERATE = Tr::tr("Generate CMake Build Files...");
|
||||
|
||||
const QmlBuildSystem *getBuildSystem()
|
||||
{
|
||||
auto project = ProjectExplorer::ProjectManager::startupProject();
|
||||
if (project && project->activeTarget() && project->activeTarget()->buildSystem()) {
|
||||
return qobject_cast<QmlProjectManager::QmlBuildSystem *>(
|
||||
project->activeTarget()->buildSystem());
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void generateMenuEntry(QObject *parent)
|
||||
{
|
||||
Core::ActionContainer *menu = Core::ActionManager::actionContainer(Core::Constants::M_FILE);
|
||||
@@ -118,7 +109,7 @@ void generateMenuEntry(QObject *parent)
|
||||
QObject::connect(ProjectExplorer::ProjectManager::instance(),
|
||||
&ProjectExplorer::ProjectManager::startupProjectChanged,
|
||||
[action]() {
|
||||
if (auto buildSystem = getBuildSystem())
|
||||
if (auto buildSystem = QmlBuildSystem::getStartupBuildSystem())
|
||||
action->setEnabled(!buildSystem->qtForMCUs());
|
||||
});
|
||||
}
|
||||
@@ -284,7 +275,7 @@ const QString projectEnvironmentVariable(const QString &key)
|
||||
{
|
||||
QString value = {};
|
||||
|
||||
if (auto buildSystem = getBuildSystem()) {
|
||||
if (auto buildSystem = QmlBuildSystem::getStartupBuildSystem()) {
|
||||
auto envItems = buildSystem->environment();
|
||||
auto confEnv = std::find_if(envItems.begin(), envItems.end(), [key](NameValueItem &item) {
|
||||
return item.name == key;
|
||||
@@ -636,7 +627,7 @@ bool CmakeFileGenerator::generateMainCpp(const FilePath &dir)
|
||||
bool envHeaderOk = true;
|
||||
QString environment;
|
||||
|
||||
if (auto buildSystem = getBuildSystem()) {
|
||||
if (auto buildSystem = QmlBuildSystem::getStartupBuildSystem()) {
|
||||
for (EnvironmentItem &envItem : buildSystem->environment()) {
|
||||
QString key = envItem.name;
|
||||
QString value = envItem.value;
|
||||
|
||||
Reference in New Issue
Block a user