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