@aha_1980
No subprojects. No sessions. Choosing C++ from the Parse Contect drop down does nothing.
From what I can tell the reason that this is badly broken is that the GUI only lets you choose between C and C++ to resolve "parse contexts". Looking at the source "ProjectPart" has the following fields, and it is totally opaque from the GUI as to why a file has more than one of these ProjectParts
public:
ProjectExplorer::Project *project = nullptr;
QString displayName;
QString projectFile;
int projectFileLine = -1;
int projectFileColumn = -1;
QString callGroupId;
// Versions, features and extensions
::Utils::Language language = ::Utils::Language::Cxx;
::Utils::LanguageVersion languageVersion = ::Utils::LanguageVersion::LatestCxx;
::Utils::LanguageExtensions languageExtensions = ::Utils::LanguageExtension::None;
CPlusPlus::LanguageFeatures languageFeatures;
::Utils::QtVersion qtVersion = ::Utils::QtVersion::Unknown;
// Files
ProjectFiles files;
QStringList includedFiles;
QStringList precompiledHeaders;
ProjectExplorer::HeaderPaths headerPaths;
QString projectConfigFile; // Generic Project Manager only
// Macros
ProjectExplorer::Macros projectMacros;
ProjectExplorer::Macros toolChainMacros;
// Build system
QString buildSystemTarget;
ProjectExplorer::BuildTargetType buildTargetType = ProjectExplorer::BuildTargetType::Unknown;
bool selectedForBuilding = true;
// ToolChain
Utils::Id toolchainType;
bool isMsvc2015Toolchain = false;
QString toolChainTargetTriple;
ToolChainWordWidth toolChainWordWidth = WordWidth32Bit;
::Utils::FilePath toolChainInstallDir;
::Utils::WarningFlags warningFlags = ::Utils::WarningFlags::Default;
// Misc
QStringList extraCodeModelFlags;
QStringList compilerFlags;