changeset 26318:e1b849489e73 stable

improve displaying search result in documentation browser (bug #55228) * documentation.cc (global_search): get first quoted string or the first string from the search query for the full text search within the displayed help text
author Torsten <mttl@mailbox.org>
date Sat, 29 Dec 2018 13:12:21 +0100
parents 522a70bb738f
children 4764e9c0face
files libgui/src/documentation.cc
diffstat 1 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/documentation.cc	Fri Dec 28 21:59:41 2018 -0800
+++ b/libgui/src/documentation.cc	Sat Dec 29 13:12:21 2018 +0100
@@ -388,19 +388,28 @@
 
   void documentation::global_search (void)
   {
+
+    QString query_string;
 #if defined (HAVE_QHELPSEARCHQUERYWIDGET_SEARCHINPUT)
     QString queries
       = m_help_engine->searchEngine ()->queryWidget ()->searchInput ();
-    m_query_string = queries.split (" ").first ();
+    query_string = queries;
 #else
+    // FIXME: drop this part when support for Qt4 is dropped
     QList<QHelpSearchQuery> queries
       = m_help_engine->searchEngine ()->queryWidget ()->query ();
     if (queries.count ())
-      m_query_string = queries.first ().wordList.first ();
+      query_string = queries.first ().wordList.join (" ");
     else
-      m_query_string = "";
+      query_string = "";
 #endif
 
+    // Get quoted search strings first, then take first string as fall back
+    QRegExp rx ("\"([^\"]*)\"");
+    if (rx.indexIn (query_string, 0) != -1)
+      m_query_string = rx.cap (1);
+    else
+      m_query_string = query_string.split (" ", QString::SkipEmptyParts).first ();
 
     m_help_engine->searchEngine ()->search (queries);
   }