From 51d91a6075164f4168c06db3e53fc04e1dd3eb8e Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 25 Nov 2013 15:22:58 +0100 Subject: CppTools: Add revisions to AbstractEditorSupport So far revisions for AbstractEditorSupport were not needed because until recently we only had a single snapshot ("global snapshot"). Now, since editor snapshots are introduced, we need to make sure to update the corresponding documents in these snapshots, too. To do this efficiently, a revision is introduced for AbstractEditorSupport. Task-number: QTCREATORBUG-10894 Change-Id: Ibad1dbbafb7c721d1328959c1e903345fe465326 Reviewed-by: Christian Stenger Reviewed-by: Erik Verbruggen --- src/plugins/cpptools/abstracteditorsupport.cpp | 3 ++- src/plugins/cpptools/abstracteditorsupport.h | 2 ++ src/plugins/cpptools/cppmodelmanager.cpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src/plugins/cpptools') diff --git a/src/plugins/cpptools/abstracteditorsupport.cpp b/src/plugins/cpptools/abstracteditorsupport.cpp index cdbd86f342..ee48c39a33 100644 --- a/src/plugins/cpptools/abstracteditorsupport.cpp +++ b/src/plugins/cpptools/abstracteditorsupport.cpp @@ -38,7 +38,7 @@ namespace CppTools { AbstractEditorSupport::AbstractEditorSupport(CppModelManagerInterface *modelmanager) : - m_modelmanager(modelmanager) + m_modelmanager(modelmanager), m_revision(0) { } @@ -48,6 +48,7 @@ AbstractEditorSupport::~AbstractEditorSupport() void AbstractEditorSupport::updateDocument() { + ++m_revision; m_modelmanager->updateSourceFiles(QStringList(fileName())); } diff --git a/src/plugins/cpptools/abstracteditorsupport.h b/src/plugins/cpptools/abstracteditorsupport.h index e45a50e791..9b5616c690 100644 --- a/src/plugins/cpptools/abstracteditorsupport.h +++ b/src/plugins/cpptools/abstracteditorsupport.h @@ -50,6 +50,7 @@ public: virtual QString fileName() const = 0; void updateDocument(); + unsigned revision() const { return m_revision; } // TODO: find a better place for common utility functions static QString functionAt(const CppModelManagerInterface *mm, @@ -60,6 +61,7 @@ public: private: CppModelManagerInterface *m_modelmanager; + unsigned m_revision; }; } // namespace CppTools diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 4d5e8a1d9d..cbf11126bc 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -550,7 +550,7 @@ CppModelManager::WorkingCopy CppModelManager::buildWorkingCopyList() QSetIterator it(m_extraEditorSupports); while (it.hasNext()) { AbstractEditorSupport *es = it.next(); - workingCopy.insert(es->fileName(), es->contents()); + workingCopy.insert(es->fileName(), es->contents(), es->revision()); } // Add the project configuration file -- cgit v1.2.1 From 4c2daa90ce558c3b4287edc97127471486a411d9 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 29 Nov 2013 11:25:47 +0100 Subject: C++: Fix highlighting for lines with predefined macros This adds definitions for the macros __FILE__, __LINE__, __DATE__ and __TIME__ on demand. As a side effect, this also introduces highlighting for the uses of these macros. Task-number: QTCREATORBUG-8036 Change-Id: Ib7546c7d45d2eecbc50c7883fc684e3497154405 Reviewed-by: Erik Verbruggen Reviewed-by: Eike Ziller Reviewed-by: hjk --- src/plugins/cpptools/cppfindreferences.cpp | 2 ++ src/plugins/cpptools/cpphighlightingsupportinternal.cpp | 3 +++ 2 files changed, 5 insertions(+) (limited to 'src/plugins/cpptools') diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index a1e9625e85..17bc85f97d 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -558,6 +558,8 @@ restart_search: usages.clear(); foreach (const Document::MacroUse &use, doc->macroUses()) { const Macro &useMacro = use.macro(); + if (useMacro.isPredefined()) + continue; if (useMacro.fileName() == macro.fileName()) { // Check if this is a match, but possibly against an outdated document. if (source.isEmpty()) diff --git a/src/plugins/cpptools/cpphighlightingsupportinternal.cpp b/src/plugins/cpptools/cpphighlightingsupportinternal.cpp index 3009d45c16..d2a14170e4 100644 --- a/src/plugins/cpptools/cpphighlightingsupportinternal.cpp +++ b/src/plugins/cpptools/cpphighlightingsupportinternal.cpp @@ -58,6 +58,9 @@ QFuture CppHighlightingSupportInternal::highligh // Get macro definitions foreach (const CPlusPlus::Macro& macro, doc->definedMacros()) { + if (macro.isPredefined()) + continue; // No "real" definition location + int line, column; editor()->convertPosition(macro.offset(), &line, &column); ++column; //Highlighting starts at (column-1) --> compensate here -- cgit v1.2.1 From 95306dbf6517356bc89692094243dd74a5d074c5 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 25 Nov 2013 14:33:05 +0100 Subject: CppTools: Add history completer to path choosers Change-Id: Iaedd5eb2890d19761c342d248e600b50e43be979 Reviewed-by: Tobias Hunger --- src/plugins/cpptools/cppfilesettingspage.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/plugins/cpptools') diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp index 9de31210d8..1571e7ac22 100644 --- a/src/plugins/cpptools/cppfilesettingspage.cpp +++ b/src/plugins/cpptools/cppfilesettingspage.cpp @@ -254,6 +254,7 @@ CppFileSettingsWidget::CppFileSettingsWidget(QWidget *parent) : foreach (const QString &suffix, headerMt.suffixes()) m_ui->headerSuffixComboBox->addItem(suffix); m_ui->licenseTemplatePathChooser->setExpectedKind(Utils::PathChooser::File); + m_ui->licenseTemplatePathChooser->setHistoryCompleter(QLatin1String("Cpp.LicenseTemplate.History")); m_ui->licenseTemplatePathChooser->addButton(tr("Edit..."), this, SLOT(slotEdit())); } -- cgit v1.2.1 From 796fcaf1d288267e93baba3d01927957c684758f Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 2 Dec 2013 15:47:36 +0100 Subject: Revert "C++: Fix highlighting for lines with predefined macros" This takes too much memory. For qtcreator.pro the numbers are as follows: Patch applied: ~ 1600MB (RES) Patch reverted: ~ 510MB (RES) This reverts commit 4c2daa90ce558c3b4287edc97127471486a411d9. Task-number: QTCREATORBUG-10973 Change-Id: I843bd7c1ea4a26a1ec55ddc14c2a34a98d040922 Reviewed-by: hjk Reviewed-by: Robert Loehning Reviewed-by: Eike Ziller Reviewed-by: Orgad Shaneh Reviewed-by: Erik Verbruggen --- src/plugins/cpptools/cppfindreferences.cpp | 2 -- src/plugins/cpptools/cpphighlightingsupportinternal.cpp | 3 --- 2 files changed, 5 deletions(-) (limited to 'src/plugins/cpptools') diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 17bc85f97d..a1e9625e85 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -558,8 +558,6 @@ restart_search: usages.clear(); foreach (const Document::MacroUse &use, doc->macroUses()) { const Macro &useMacro = use.macro(); - if (useMacro.isPredefined()) - continue; if (useMacro.fileName() == macro.fileName()) { // Check if this is a match, but possibly against an outdated document. if (source.isEmpty()) diff --git a/src/plugins/cpptools/cpphighlightingsupportinternal.cpp b/src/plugins/cpptools/cpphighlightingsupportinternal.cpp index d2a14170e4..3009d45c16 100644 --- a/src/plugins/cpptools/cpphighlightingsupportinternal.cpp +++ b/src/plugins/cpptools/cpphighlightingsupportinternal.cpp @@ -58,9 +58,6 @@ QFuture CppHighlightingSupportInternal::highligh // Get macro definitions foreach (const CPlusPlus::Macro& macro, doc->definedMacros()) { - if (macro.isPredefined()) - continue; // No "real" definition location - int line, column; editor()->convertPosition(macro.offset(), &line, &column); ++column; //Highlighting starts at (column-1) --> compensate here -- cgit v1.2.1 From af2900ce724f5bb8be7d7ea19c179e10dcafdcab Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 27 Nov 2013 14:49:48 +0100 Subject: C++: prevent possibly highlighting a document twice Possible when the highlighter does not need semantic info to run, and is started through onDocumentUpdated() and updateDocumentNow(). Change-Id: I720299730213ac196143a273fb60cee8e43111f1 Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/cpptoolseditorsupport.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/plugins/cpptools') diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp index 85c304cad6..fca1a8402f 100644 --- a/src/plugins/cpptools/cpptoolseditorsupport.cpp +++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp @@ -392,10 +392,14 @@ void CppEditorSupport::startHighlighting() m_lastHighlightRevision = revision; emit highlighterStarted(&m_highlighter, m_lastHighlightRevision); } else { + const unsigned revision = currentSource(false).revision; + if (m_lastHighlightRevision == revision) + return; + + m_lastHighlightRevision = revision; static const Document::Ptr dummyDoc; static const Snapshot dummySnapshot; m_highlighter = m_highlightingSupport->highlightingFuture(dummyDoc, dummySnapshot); - m_lastHighlightRevision = editorRevision(); emit highlighterStarted(&m_highlighter, m_lastHighlightRevision); } } -- cgit v1.2.1 From 90b33316e4d3a64a9edf77c3beb7e8bd37fffa91 Mon Sep 17 00:00:00 2001 From: jkobus Date: Wed, 4 Dec 2013 12:01:17 +0100 Subject: Fix tooltips' texts. Change-Id: I9f8681a8d975558e5e8626566df73ac8438c4cef Reviewed-by: Friedemann Kleint Reviewed-by: Leena Miettinen --- src/plugins/cpptools/completionsettingspage.ui | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/plugins/cpptools') diff --git a/src/plugins/cpptools/completionsettingspage.ui b/src/plugins/cpptools/completionsettingspage.ui index e654cf804e..3ff7358375 100644 --- a/src/plugins/cpptools/completionsettingspage.ui +++ b/src/plugins/cpptools/completionsettingspage.ui @@ -107,7 +107,7 @@ - Insert the common prefix of available completion items. + Inserts the common prefix of available completion items. Autocomplete common &prefix @@ -120,7 +120,7 @@ - Automatically insert semicolons and closing brackets, parentheses, curly braces, and quotes when appropriate. + Automatically inserts semicolons and closing brackets, parentheses, curly braces, and quotes when appropriate. &Automatically insert matching characters @@ -151,7 +151,7 @@ - When typing a matching character and there is a text selection, instead of removing the selection, surround it with the corresponding characters. + When typing a matching character and there is a text selection, instead of removing the selection, surrounds it with the corresponding characters. Surround &text selections @@ -205,7 +205,7 @@ - Automatically create a Doxygen comment upon pressing enter after a /**, /*!, //! or /// + Automatically creates a Doxygen comment upon pressing enter after a /**, /*!, //! or /// Enable Doxygen blocks @@ -233,7 +233,7 @@ - Generate a <i>brief</i> command with an initial description for the corresponding declaration + Generates a <i>brief</i> command with an initial description for the corresponding declaration Generate brief description @@ -245,7 +245,7 @@ - Add leading asterisks when continuing Qt (/*!) and Java (/**) style comments on new lines + Adds leading asterisks when continuing Qt (/*!) and Java (/**) style comments on new lines Add leading asterisks -- cgit v1.2.1 From 890f72160c61507b4bf85bdf4502d63a32f762d0 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 9 Dec 2013 16:14:55 +0100 Subject: Rename QString ITextEditorDocument::contents --> plainText To differentiate it from the byte array based IDocument::setContents Change-Id: Icc9600732c2742fb79254a0697870bacce3a59ee Reviewed-by: David Schulz --- src/plugins/cpptools/cpptoolseditorsupport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins/cpptools') diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp index fca1a8402f..c2a3792c93 100644 --- a/src/plugins/cpptools/cpptoolseditorsupport.cpp +++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp @@ -186,7 +186,7 @@ QByteArray CppEditorSupport::contents() const const int editorRev = editorRevision(); if (m_cachedContentsEditorRevision != editorRev && !m_fileIsBeingReloaded) { m_cachedContentsEditorRevision = editorRev; - m_cachedContents = m_textEditor->textDocument()->contents().toUtf8(); + m_cachedContents = m_textEditor->textDocument()->plainText().toUtf8(); } return m_cachedContents; -- cgit v1.2.1 From ea1a92484ac99057b06130a012164bf9788650e9 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 27 Nov 2013 15:17:51 +0100 Subject: C++: split defines into project-defined and toolchain-defined. So we can ignore possibly problematic toolchain-defines, while can still unconditionally apply project-defines. Change-Id: I7cb96f35a963d080011fe888ef71bfc098dd33ef Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/cppmodelmanager.cpp | 38 ++++++++++++++++------- src/plugins/cpptools/cppmodelmanager_test.cpp | 14 ++++----- src/plugins/cpptools/cppmodelmanagerinterface.cpp | 11 ++----- src/plugins/cpptools/cppmodelmanagerinterface.h | 3 +- src/plugins/cpptools/cppsnapshotupdater.cpp | 3 +- 5 files changed, 40 insertions(+), 29 deletions(-) (limited to 'src/plugins/cpptools') diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index cbf11126bc..7fdb9d0af0 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -64,7 +64,8 @@ namespace CppTools { uint qHash(const ProjectPart &p) { - uint h = qHash(p.defines) ^ p.cVersion ^ p.cxxVersion ^ p.cxxExtensions ^ p.qtVersion; + uint h = qHash(p.toolchainDefines) ^ qHash(p.projectDefines) ^ p.cVersion ^ p.cxxVersion + ^ p.cxxExtensions ^ p.qtVersion; foreach (const QString &i, p.includePaths) h ^= qHash(i); @@ -78,7 +79,9 @@ uint qHash(const ProjectPart &p) bool operator==(const ProjectPart &p1, const ProjectPart &p2) { - if (p1.defines != p2.defines) + if (p1.toolchainDefines != p2.toolchainDefines) + return false; + if (p1.projectDefines != p2.projectDefines) return false; if (p1.cVersion != p2.cVersion) return false; @@ -363,6 +366,22 @@ QStringList CppModelManager::internalFrameworkPaths() const return frameworkPaths; } +static void addUnique(const QList &defs, QByteArray *macros, QSet *alreadyIn) +{ + Q_ASSERT(macros); + Q_ASSERT(alreadyIn); + + foreach (const QByteArray &def, defs) { + if (def.trimmed().isEmpty()) + continue; + if (!alreadyIn->contains(def)) { + macros->append(def); + macros->append('\n'); + alreadyIn->insert(def); + } + } +} + QByteArray CppModelManager::internalDefinedMacros() const { QByteArray macros; @@ -372,14 +391,8 @@ QByteArray CppModelManager::internalDefinedMacros() const it.next(); const ProjectInfo pinfo = it.value(); foreach (const ProjectPart::Ptr &part, pinfo.projectParts()) { - const QList defs = part->defines.split('\n'); - foreach (const QByteArray &def, defs) { - if (!alreadyIn.contains(def)) { - macros += def; - macros.append('\n'); - alreadyIn.insert(def); - } - } + addUnique(part->toolchainDefines.split('\n'), ¯os, &alreadyIn); + addUnique(part->projectDefines.split('\n'), ¯os, &alreadyIn); } } return macros; @@ -422,7 +435,8 @@ void CppModelManager::dumpModelManagerConfiguration() qDebug() << "cxxExtensions:" << cxxExtensions; qDebug() << "Qt version:" << part->qtVersion; qDebug() << "precompiled header:" << part->precompiledHeaders; - qDebug() << "defines:" << part->defines; + qDebug() << "toolchain defines:" << part->toolchainDefines; + qDebug() << "project defines:" << part->projectDefines; qDebug() << "includes:" << part->includePaths; qDebug() << "frameworkPaths:" << part->frameworkPaths; qDebug() << "files:" << part->files; @@ -795,7 +809,7 @@ ProjectPart::Ptr CppModelManager::fallbackProjectPart() const { ProjectPart::Ptr part(new ProjectPart); - part->defines = m_definedMacros; + part->projectDefines = m_definedMacros; part->includePaths = m_includePaths; part->frameworkPaths = m_frameworkPaths; part->cVersion = ProjectPart::C11; diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp index a7a6aa222e..3325e1832d 100644 --- a/src/plugins/cpptools/cppmodelmanager_test.cpp +++ b/src/plugins/cpptools/cppmodelmanager_test.cpp @@ -217,7 +217,7 @@ void CppToolsPlugin::test_modelmanager_paths_are_clean() ProjectPart::Ptr part(new ProjectPart); part->cxxVersion = ProjectPart::CXX98; part->qtVersion = ProjectPart::Qt5; - part->defines = QByteArray("#define OH_BEHAVE -1\n"); + part->projectDefines = QByteArray("#define OH_BEHAVE -1\n"); part->includePaths = QStringList() << testDataDir.includeDir(false); part->frameworkPaths = QStringList() << testDataDir.frameworksDir(false); pi.appendProjectPart(part); @@ -251,7 +251,7 @@ void CppToolsPlugin::test_modelmanager_framework_headers() ProjectPart::Ptr part(new ProjectPart); part->cxxVersion = ProjectPart::CXX98; part->qtVersion = ProjectPart::Qt5; - part->defines = QByteArray("#define OH_BEHAVE -1\n"); + part->projectDefines = QByteArray("#define OH_BEHAVE -1\n"); part->includePaths << testDataDir.includeDir(); part->frameworkPaths << testDataDir.frameworksDir(); const QString &source = testDataDir.fileFromSourcesDir( @@ -300,7 +300,7 @@ void CppToolsPlugin::test_modelmanager_refresh_also_includes_of_project_files() ProjectPart::Ptr part(new ProjectPart); part->cxxVersion = ProjectPart::CXX98; part->qtVersion = ProjectPart::Qt5; - part->defines = QByteArray("#define OH_BEHAVE -1\n"); + part->projectDefines = QByteArray("#define OH_BEHAVE -1\n"); part->includePaths = QStringList() << testDataDir.includeDir(false); part->files.append(ProjectFile(testCpp, ProjectFile::CXXSource)); pi.appendProjectPart(part); @@ -320,7 +320,7 @@ void CppToolsPlugin::test_modelmanager_refresh_also_includes_of_project_files() QVERIFY(macrosInHeaderBefore.first().name() == "test_modelmanager_refresh_h"); // Introduce a define that will enable another define once the document is reparsed. - part->defines = QByteArray("#define TEST_DEFINE 1\n"); + part->projectDefines = QByteArray("#define TEST_DEFINE 1\n"); pi.clearProjectParts(); pi.appendProjectPart(part); mm->updateProjectInfo(pi); @@ -377,7 +377,7 @@ void CppToolsPlugin::test_modelmanager_refresh_several_times() ProjectPart::Ptr part(new ProjectPart); // Simulate project configuration change by having different defines each time. defines += "\n#define ANOTHER_DEFINE"; - part->defines = defines; + part->projectDefines = defines; part->cxxVersion = ProjectPart::CXX98; part->qtVersion = ProjectPart::Qt5; part->files.append(ProjectFile(testHeader1, ProjectFile::CXXHeader)); @@ -810,7 +810,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_project() part1->files.append(ProjectFile(header, ProjectFile::CXXHeader)); part1->cxxVersion = ProjectPart::CXX11; part1->qtVersion = ProjectPart::NoQt; - part1->defines = QByteArray("#define SUB1\n"); + part1->projectDefines = QByteArray("#define SUB1\n"); part1->includePaths = QStringList() << testDataDirectory.includeDir(false); ProjectPart::Ptr part2(new ProjectPart); @@ -818,7 +818,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_project() part2->files.append(ProjectFile(header, ProjectFile::CXXHeader)); part2->cxxVersion = ProjectPart::CXX11; part2->qtVersion = ProjectPart::NoQt; - part2->defines = QByteArray("#define SUB2\n"); + part2->projectDefines = QByteArray("#define SUB2\n"); part2->includePaths = QStringList() << testDataDirectory.includeDir(false); ProjectInfo pi = mm->projectInfo(project); diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.cpp b/src/plugins/cpptools/cppmodelmanagerinterface.cpp index 31f1b55e18..3992c44bf5 100644 --- a/src/plugins/cpptools/cppmodelmanagerinterface.cpp +++ b/src/plugins/cpptools/cppmodelmanagerinterface.cpp @@ -161,13 +161,7 @@ void ProjectPart::evaluateToolchain(const ToolChain *tc, else includePaths << header.path(); - const QByteArray macros = tc->predefinedMacros(cxxflags); - if (!macros.isEmpty()) { - if (!defines.isEmpty()) - defines += '\n'; - defines += macros; - defines += '\n'; - } + toolchainDefines = tc->predefinedMacros(cxxflags); } static CppModelManagerInterface *g_instance = 0; @@ -235,5 +229,6 @@ void CppModelManagerInterface::ProjectInfo::appendProjectPart(const ProjectPart: // Update defines if (!m_defines.isEmpty()) m_defines.append('\n'); - m_defines.append(part->defines); + m_defines.append(part->toolchainDefines); + m_defines.append(part->projectDefines); } diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h index 49a9eea066..ce29718b02 100644 --- a/src/plugins/cpptools/cppmodelmanagerinterface.h +++ b/src/plugins/cpptools/cppmodelmanagerinterface.h @@ -106,7 +106,8 @@ public: QString projectFile; ProjectExplorer::Project *project; QList files; - QByteArray defines; + QByteArray projectDefines; + QByteArray toolchainDefines; QStringList includePaths; QStringList frameworkPaths; QStringList precompiledHeaders; diff --git a/src/plugins/cpptools/cppsnapshotupdater.cpp b/src/plugins/cpptools/cppsnapshotupdater.cpp index 0a97a98fdf..fc97875c60 100644 --- a/src/plugins/cpptools/cppsnapshotupdater.cpp +++ b/src/plugins/cpptools/cppsnapshotupdater.cpp @@ -69,7 +69,8 @@ void SnapshotUpdater::update(CppModelManager::WorkingCopy workingCopy) } if (m_projectPart) { - configFile += m_projectPart->defines; + configFile += m_projectPart->toolchainDefines; + configFile += m_projectPart->projectDefines; includePaths = m_projectPart->includePaths; frameworkPaths = m_projectPart->frameworkPaths; if (m_usePrecompiledHeaders) -- cgit v1.2.1