summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/basefilefind.cpp
diff options
context:
space:
mode:
authorcon <qtc-committer@nokia.com>2010-07-19 14:46:53 +0200
committercon <qtc-committer@nokia.com>2010-07-23 16:34:22 +0200
commit2bda8675e509c5547a0057e50d9024b49054cf78 (patch)
tree00bbd4f434f501e59d9d056db535ffe859a65849 /src/plugins/texteditor/basefilefind.cpp
parent80d85e28874d1d37e5a16dc0825a6d3c0167fa61 (diff)
downloadqt-creator-2bda8675e509c5547a0057e50d9024b49054cf78.tar.gz
C++ symbols find filter for advanced find.
Required refactoring of the search result window to show real trees of search results. The backend is the backend from the Locator filter, which is a bit outdated now.
Diffstat (limited to 'src/plugins/texteditor/basefilefind.cpp')
-rw-r--r--src/plugins/texteditor/basefilefind.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp
index 9006e11a73..7360ade771 100644
--- a/src/plugins/texteditor/basefilefind.cpp
+++ b/src/plugins/texteditor/basefilefind.cpp
@@ -153,15 +153,16 @@ void BaseFileFind::displayResult(int index) {
QList<Find::SearchResultItem> items; // this conversion is stupid...
foreach (const Utils::FileSearchResult &result, results) {
Find::SearchResultItem item;
- item.fileName = result.fileName;
+ item.path = QStringList() << QDir::toNativeSeparators(result.fileName);
item.lineNumber = result.lineNumber;
- item.lineText = result.matchingLine;
- item.searchTermLength = result.matchLength;
- item.searchTermStart = result.matchStart;
+ item.text = result.matchingLine;
+ item.textMarkLength = result.matchLength;
+ item.textMarkPos = result.matchStart;
+ item.useTextEditorFont = true;
item.userData = result.regexpCapturedTexts;
items << item;
}
- m_resultWindow->addResults(items);
+ m_resultWindow->addResults(items, Find::SearchResultWindow::AddOrdered);
if (m_resultLabel)
m_resultLabel->setText(tr("%1 found").arg(m_resultWindow->numberOfResults()));
}
@@ -250,7 +251,11 @@ void BaseFileFind::updateComboEntries(QComboBox *combo, bool onTop)
void BaseFileFind::openEditor(const Find::SearchResultItem &item)
{
- TextEditor::BaseTextEditor::openEditorAt(item.fileName, item.lineNumber, item.searchTermStart);
+ if (item.path.size() > 0) {
+ TextEditor::BaseTextEditor::openEditorAt(item.path.first(), item.lineNumber, item.textMarkPos);
+ } else {
+ Core::EditorManager::instance()->openEditor(item.text);
+ }
}
// #pragma mark Static methods
@@ -263,7 +268,7 @@ static void applyChanges(QTextDocument *doc, const QString &text, const QList<Fi
const int blockNumber = item.lineNumber - 1;
QTextCursor tc(doc->findBlockByNumber(blockNumber));
- const int cursorPosition = tc.position() + item.searchTermStart;
+ const int cursorPosition = tc.position() + item.textMarkPos;
int cursorIndex = 0;
for (; cursorIndex < changes.size(); ++cursorIndex) {
@@ -277,7 +282,7 @@ static void applyChanges(QTextDocument *doc, const QString &text, const QList<Fi
continue; // skip this change.
tc.setPosition(cursorPosition);
- tc.setPosition(tc.position() + item.searchTermLength,
+ tc.setPosition(tc.position() + item.textMarkLength,
QTextCursor::KeepAnchor);
QString substitutionText;
if (item.userData.canConvert<QStringList>() && !item.userData.toStringList().isEmpty())
@@ -302,7 +307,7 @@ QStringList BaseFileFind::replaceAll(const QString &text,
QHash<QString, QList<Find::SearchResultItem> > changes;
foreach (const Find::SearchResultItem &item, items)
- changes[item.fileName].append(item);
+ changes[item.path.first()].append(item);
Core::EditorManager *editorManager = Core::EditorManager::instance();