From e28c1255f24351a16707b7a95bf32a78a5ce72b8 Mon Sep 17 00:00:00 2001 From: con <qtc-committer@nokia.com> Date: Tue, 6 Jan 2009 12:16:36 +0100 Subject: [PATCH] Fixes: - Retain search term in locator when selecting different filter --- src/plugins/quickopen/quickopentoolwindow.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/plugins/quickopen/quickopentoolwindow.cpp b/src/plugins/quickopen/quickopentoolwindow.cpp index 415e347a3ac..b3232147f37 100644 --- a/src/plugins/quickopen/quickopentoolwindow.cpp +++ b/src/plugins/quickopen/quickopentoolwindow.cpp @@ -451,14 +451,25 @@ void QuickOpenToolWindow::show(const QString &text, int selectionStart, int sele void QuickOpenToolWindow::filterSelected() { - const char * const TEXT = "<type here>"; + QString searchText = "<type here>"; QAction *action = qobject_cast<QAction*>(sender()); QTC_ASSERT(action, return); IQuickOpenFilter *filter = action->data().value<IQuickOpenFilter*>(); QTC_ASSERT(filter, return); - show(filter->shortcutString() + " " + TEXT, + QString currentText = m_fileLineEdit->text().trimmed(); + // add shortcut string at front or replace existing shortcut string + if (!currentText.isEmpty()) { + searchText = currentText; + foreach (IQuickOpenFilter *otherfilter, m_quickOpenPlugin->filter()) { + if (currentText.startsWith(otherfilter->shortcutString() + " ")) { + searchText = currentText.mid(otherfilter->shortcutString().length()+1); + break; + } + } + } + show(filter->shortcutString() + " " + searchText, filter->shortcutString().length() + 1, - QString(TEXT).length()); + searchText.length()); updateCompletionList(m_fileLineEdit->text()); m_fileLineEdit->setFocus(); } -- GitLab