diff --git a/share/qtcreator/templates/wizards/classes/cpp/file.h b/share/qtcreator/templates/wizards/classes/cpp/file.h index 6f38dc98383..925e1bfb8c2 100644 --- a/share/qtcreator/templates/wizards/classes/cpp/file.h +++ b/share/qtcreator/templates/wizards/classes/cpp/file.h @@ -46,9 +46,17 @@ public: @endif @if %{isQObject} +@if %{QtKeywordsEnabled} signals: +@else +Q_SIGNALS: +@endif +@if %{QtKeywordsEnabled} public slots: +@else +public Q_SLOTS: +@endif @endif @if '%{IncludeQSharedData}' diff --git a/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp b/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp index 14072fd3198..e750dd59ea5 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonsummarypage.cpp @@ -254,6 +254,23 @@ void JsonSummaryPage::updateProjectData(FolderNode *node) m_wizard->setValue(QLatin1String(KEY_SELECTED_PROJECT), QVariant::fromValue(project)); m_wizard->setValue(QLatin1String(KEY_SELECTED_NODE), QVariant::fromValue(node)); m_wizard->setValue(QLatin1String(KEY_IS_SUBPROJECT), node ? true : false); + bool qtKeyWordsEnabled = true; + if (ProjectTree::hasNode(node)) { + const ProjectNode *projectNode = node->asProjectNode(); + if (!projectNode) + projectNode = node->parentProjectNode(); + while (projectNode) { + const QVariant keywordsEnabled = projectNode->data(Constants::QT_KEYWORDS_ENABLED); + if (keywordsEnabled.isValid()) { + qtKeyWordsEnabled = keywordsEnabled.toBool(); + break; + } + if (projectNode->isProduct()) + break; + projectNode = projectNode->parentProjectNode(); + } + } + m_wizard->setValue("QtKeywordsEnabled", qtKeyWordsEnabled); updateFileList(); } diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h index 732b5a05a96..10ce33cb7fa 100644 --- a/src/plugins/projectexplorer/projectexplorerconstants.h +++ b/src/plugins/projectexplorer/projectexplorerconstants.h @@ -144,6 +144,7 @@ const char PREFERRED_PROJECT_NODE[] = "ProjectExplorer.PreferredProjectNode"; const char PREFERRED_PROJECT_NODE_PATH[] = "ProjectExplorer.PreferredProjectPath"; const char PROJECT_POINTER[] = "ProjectExplorer.Project"; const char PROJECT_KIT_IDS[] = "ProjectExplorer.Profile.Ids"; +const char QT_KEYWORDS_ENABLED[] = "ProjectExplorer.QtKeywordsEnabled"; // Build step lists ids: const char BUILDSTEPS_CLEAN[] = "ProjectExplorer.BuildSteps.Clean"; diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 9490aadc4f8..697d610aa7e 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -312,6 +312,13 @@ FolderNode::AddNewInformation QbsGroupNode::addNewInformation(const QStringList return info; } +QVariant QbsGroupNode::data(Core::Id role) const +{ + if (role == ProjectExplorer::Constants::QT_KEYWORDS_ENABLED) + return m_qbsGroupData.properties().getModuleProperty("Qt.core", "enableKeywords"); + return QVariant(); +} + // -------------------------------------------------------------------- // QbsProductNode: // -------------------------------------------------------------------- @@ -433,6 +440,9 @@ QVariant QbsProductNode::data(Core::Id role) const if (role == Android::Constants::AndroidApk) return m_qbsProductData.targetExecutable(); + if (role == ProjectExplorer::Constants::QT_KEYWORDS_ENABLED) + return m_qbsProductData.moduleProperties().getModuleProperty("Qt.core", "enableKeywords"); + return {}; } diff --git a/src/plugins/qbsprojectmanager/qbsnodes.h b/src/plugins/qbsprojectmanager/qbsnodes.h index f01f65a0309..e31fc2b9b90 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.h +++ b/src/plugins/qbsprojectmanager/qbsnodes.h @@ -53,6 +53,7 @@ public: private: AddNewInformation addNewInformation(const QStringList &files, Node *context) const override; + QVariant data(Core::Id role) const override; qbs::GroupData m_qbsGroupData; QString m_productPath; diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 8c8d5d5d7a6..a51c09f0ac2 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -339,6 +339,9 @@ QVariant QmakeProFileNode::data(Core::Id role) const return info.buildDir.toString(); } + if (role == ProjectExplorer::Constants::QT_KEYWORDS_ENABLED) + return !proFile()->variableValue(Variable::Config).contains("no_keywords"); + QTC_CHECK(false); return {}; }