diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-09-29 13:42:47 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-09-29 13:42:47 +0200 |
commit | 86e21bc255fdc883e3094e7abb32764d6ac8678c (patch) | |
tree | 7c58c9c7a4623d09870c393e0e2a7a09ef79fe94 /src | |
parent | 4bc4bd0f5d7cfdfd0fd519d671af02c33fa1c1c4 (diff) | |
download | qt-creator-86e21bc255fdc883e3094e7abb32764d6ac8678c.tar.gz |
Look at the working copy when searching for references.
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/cpptools/cppfindreferences.cpp | 27 | ||||
-rw-r--r-- | src/plugins/cpptools/cppfindreferences.h | 2 | ||||
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager.cpp | 2 |
3 files changed, 23 insertions, 8 deletions
diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 66d9fbcc2f..355f2bf61a 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -322,6 +322,7 @@ CppFindReferences::~CppFindReferences() } static void find_helper(QFutureInterface<Core::Utils::FileSearchResult> &future, + const QMap<QString, QString> wl, Snapshot snapshot, Symbol *symbol) { @@ -339,7 +340,6 @@ static void find_helper(QFutureInterface<Core::Utils::FileSearchResult> &future, future.setProgressRange(0, files.size()); - tm.start(); for (int i = 0; i < files.size(); ++i) { const QString &fn = files.at(i); future.setProgressValueAndText(i, QFileInfo(fn).fileName()); @@ -356,9 +356,20 @@ static void find_helper(QFutureInterface<Core::Utils::FileSearchResult> &future, if (! f.open(QFile::ReadOnly)) continue; - const QString source = QTextStream(&f).readAll(); // ### FIXME - const QByteArray preprocessedCode = snapshot.preprocessedCode(source, fn); - Document::Ptr doc = snapshot.documentFromSource(preprocessedCode, fn); + QByteArray source; + + if (wl.contains(fileName)) + source = snapshot.preprocessedCode(wl.value(fileName), fileName); + else { + QFile file(fileName); + if (! file.open(QFile::ReadOnly)) + continue; + + const QString contents = QTextStream(&file).readAll(); // ### FIXME + source = snapshot.preprocessedCode(contents, fileName); + } + + Document::Ptr doc = snapshot.documentFromSource(source, fileName); doc->tokenize(); Control *control = doc->control(); @@ -369,17 +380,21 @@ static void find_helper(QFutureInterface<Core::Utils::FileSearchResult> &future, process(symbol, id, unit->ast()); } } + future.setProgressValue(files.size()); } -void CppFindReferences::findAll(const Snapshot &snapshot, Symbol *symbol) +void CppFindReferences::findAll(Symbol *symbol) { _resultWindow->clearContents(); _resultWindow->popup(true); + const Snapshot snapshot = _modelManager->snapshot(); + const QMap<QString, QString> wl = _modelManager->buildWorkingCopyList(); + Core::ProgressManager *progressManager = Core::ICore::instance()->progressManager(); - QFuture<Core::Utils::FileSearchResult> result = QtConcurrent::run(&find_helper, snapshot, symbol); + QFuture<Core::Utils::FileSearchResult> result = QtConcurrent::run(&find_helper, wl, snapshot, symbol); m_watcher.setFuture(result); Core::FutureProgress *progress = progressManager->addTask(result, tr("Searching..."), diff --git a/src/plugins/cpptools/cppfindreferences.h b/src/plugins/cpptools/cppfindreferences.h index 65f48d3619..9b5ddfccb4 100644 --- a/src/plugins/cpptools/cppfindreferences.h +++ b/src/plugins/cpptools/cppfindreferences.h @@ -62,7 +62,7 @@ Q_SIGNALS: void changed(); public: - void findAll(const CPlusPlus::Snapshot &snapshot, CPlusPlus::Symbol *symbol); + void findAll(CPlusPlus::Symbol *symbol); private Q_SLOTS: void displayResult(int); diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 6a859d16cc..aa3d9777ee 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -742,7 +742,7 @@ void CppModelManager::removeEditorSupport(AbstractEditorSupport *editorSupport) void CppModelManager::findReferences(CPlusPlus::Symbol *symbol) { if (symbol->identifier()) - m_findReferences->findAll(snapshot(), symbol); + m_findReferences->findAll(symbol); } QMap<QString, QString> CppModelManager::buildWorkingCopyList() |