diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-08-24 10:55:48 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-08-30 12:03:34 +0200 |
commit | 94a00259ac112fd5c6e0148fb3b02598d700698b (patch) | |
tree | 3e6ad7540a35e1ac1321f9ff382fb2c8476f3876 /src/plugins/cpptools/cppmodelmanager.cpp | |
parent | 2c7729eeac3a4093ebabfec97e1b0a9b0bb1632f (diff) | |
download | qt-creator-94a00259ac112fd5c6e0148fb3b02598d700698b.tar.gz |
C++/QmlJS: Warnings if C++ based QML type detection fails.
Change-Id: I1e206e09c4068cc541978ee148f9ed8c4138c249
Reviewed-on: http://codereview.qt.nokia.com/3579
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 79c96c1478..9a3fca3935 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -1060,7 +1060,9 @@ void CppModelManager::onDocumentUpdated(Document::Ptr doc) } #else QSet<int> lines; - foreach (const Document::DiagnosticMessage &m, doc->diagnosticMessages()) { + QList<Document::DiagnosticMessage> messages = doc->diagnosticMessages(); + messages += extraDiagnostics(doc->fileName()); + foreach (const Document::DiagnosticMessage &m, messages) { if (m.fileName() != fileName) continue; else if (lines.contains(m.line())) @@ -1289,5 +1291,34 @@ void CppModelManager::finishedRefreshingSourceFiles(const QStringList &files) emit sourceFilesRefreshed(files); } + +void CppModelManager::setExtraDiagnostics(const QString &fileName, int kind, + const QList<Document::DiagnosticMessage> &diagnostics) +{ + { + QMutexLocker locker(&protectExtraDiagnostics); + m_extraDiagnostics[fileName].insert(kind, diagnostics); + } + Document::Ptr doc; + { + QMutexLocker locker(&protectSnapshot); + doc = m_snapshot.document(fileName); + } + if (doc) + emit documentUpdated(doc); +} + +QList<Document::DiagnosticMessage> CppModelManager::extraDiagnostics(const QString &fileName, int kind) const +{ + QMutexLocker locker(&protectExtraDiagnostics); + if (kind == -1) { + QList<Document::DiagnosticMessage> messages; + foreach (const QList<Document::DiagnosticMessage> &list, m_extraDiagnostics.value(fileName)) + messages += list; + return messages; + } + return m_extraDiagnostics.value(fileName).value(kind); +} + #endif |