diff --git a/src/plugins/cpaster/protocol.cpp b/src/plugins/cpaster/protocol.cpp index 8d9e1fd61a9..bc07a8fed94 100644 --- a/src/plugins/cpaster/protocol.cpp +++ b/src/plugins/cpaster/protocol.cpp @@ -92,6 +92,7 @@ Protocol::ContentType Protocol::contentType(const QString &mt) return C; if (mt == QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE) || mt == QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE) + || mt == QLatin1String(CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE) || mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)) return Cpp; if (mt == QLatin1String(QmlJSTools::Constants::QML_MIMETYPE) diff --git a/src/plugins/cppeditor/CppEditor.mimetypes.xml b/src/plugins/cppeditor/CppEditor.mimetypes.xml index 11600c9cba2..37eeb170a5d 100644 --- a/src/plugins/cppeditor/CppEditor.mimetypes.xml +++ b/src/plugins/cppeditor/CppEditor.mimetypes.xml @@ -63,10 +63,13 @@ Objective-C source code - - - + + + + Objective-C++ source code + + diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 2a375ac26f7..50f6a2722cb 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -701,7 +701,8 @@ CppModelManagerInterface *CPPEditorWidget::modelManager() const void CPPEditorWidget::setMimeType(const QString &mt) { BaseTextEditorWidget::setMimeType(mt); - setObjCEnabled(mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)); + setObjCEnabled(mt == QLatin1String(CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE) + || mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)); } void CPPEditorWidget::setObjCEnabled(bool onoff) diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp index 355ae975dd2..97b5d979a12 100644 --- a/src/plugins/cpptools/cppcompletionassist.cpp +++ b/src/plugins/cpptools/cppcompletionassist.cpp @@ -1193,7 +1193,8 @@ bool CppCompletionAssistProcessor::objcKeywordsWanted() const const Core::MimeDatabase *mdb = Core::ICore::mimeDatabase(); const QString mt = mdb->findByFile(fileName).type(); - return mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE); + return mt == QLatin1String(CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE) + || mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE); } int CppCompletionAssistProcessor::startCompletionInternal(const QString fileName, diff --git a/src/plugins/cpptools/cppprojectfile.cpp b/src/plugins/cpptools/cppprojectfile.cpp index a7e62a2905b..fc223bf2c49 100644 --- a/src/plugins/cpptools/cppprojectfile.cpp +++ b/src/plugins/cpptools/cppprojectfile.cpp @@ -64,6 +64,8 @@ ProjectFile::Kind ProjectFile::classify(const QString &file) return CXXSource; if (mt == QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)) return CXXHeader; + if (mt == QLatin1String(CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE)) + return ObjCSource; if (mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)) return ObjCXXSource; return Unclassified; @@ -107,6 +109,7 @@ ProjectFileAdder::ProjectFileAdder(QList &files) addMapping(CppTools::Constants::C_HEADER_MIMETYPE, ProjectFile::CHeader); addMapping(CppTools::Constants::CPP_SOURCE_MIMETYPE, ProjectFile::CXXSource); addMapping(CppTools::Constants::CPP_HEADER_MIMETYPE, ProjectFile::CXXHeader); + addMapping(CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE, ProjectFile::ObjCSource); addMapping(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE, ProjectFile::ObjCXXSource); } diff --git a/src/plugins/cpptools/cpptoolsconstants.h b/src/plugins/cpptools/cpptoolsconstants.h index 746936d6006..7a4e21652da 100644 --- a/src/plugins/cpptools/cpptoolsconstants.h +++ b/src/plugins/cpptools/cpptoolsconstants.h @@ -43,7 +43,8 @@ const char TASK_SEARCH[] = "CppTools.Task.Search"; const char C_SOURCE_MIMETYPE[] = "text/x-csrc"; const char C_HEADER_MIMETYPE[] = "text/x-chdr"; const char CPP_SOURCE_MIMETYPE[] = "text/x-c++src"; -const char OBJECTIVE_CPP_SOURCE_MIMETYPE[] = "text/x-objcsrc"; +const char OBJECTIVE_C_SOURCE_MIMETYPE[] = "text/x-objcsrc"; +const char OBJECTIVE_CPP_SOURCE_MIMETYPE[] = "text/x-objc++src"; const char CPP_HEADER_MIMETYPE[] = "text/x-c++hdr"; // QSettings keys for use by the "New Class" wizards. diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index 343ff6c95fd..fbdabd69f57 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -201,6 +201,7 @@ static QStringList matchingCandidateSuffixes(ProjectFile::Kind kind) case ProjectFile::ObjCXXHeader: return md->findByType(QLatin1String(Constants::C_SOURCE_MIMETYPE)).suffixes() + md->findByType(QLatin1String(Constants::CPP_SOURCE_MIMETYPE)).suffixes() + + md->findByType(QLatin1String(Constants::OBJECTIVE_C_SOURCE_MIMETYPE)).suffixes() + md->findByType(QLatin1String(Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)).suffixes(); case ProjectFile::CSource: case ProjectFile::ObjCSource: diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 67dae42f819..3ea6828eb10 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -588,7 +588,9 @@ void Qt4Project::updateCppCodeModel() ProjectFile::CXXSource)); foreach (const QString &file, pro->variableValue(ObjCSourceVar)) { allFiles << file; - part->files << ProjectFile(file, ProjectFile::ObjCSource); + // Although the enum constant is called ObjCSourceVar, it actually is ObjC++ source + // code, as qmake does not handle C (and ObjC). + part->files << ProjectFile(file, ProjectFile::ObjCXXSource); } foreach (const QString &file, pro->variableValue(ObjCHeaderVar)) { allFiles << file;