diff --git a/src/qtgui/rclmain_w.cpp b/src/qtgui/rclmain_w.cpp index 9ca258dc..eb61e5cf 100644 --- a/src/qtgui/rclmain_w.cpp +++ b/src/qtgui/rclmain_w.cpp @@ -223,8 +223,7 @@ void RclMain::init() // A shortcut to get the focus back to the search entry. QKeySequence seq("Ctrl+Shift+s"); QShortcut *sc = new QShortcut(seq, this); - connect(sc, SIGNAL (activated()), - this, SLOT (focusToSearch())); + connect(sc, SIGNAL (activated()), sSearch, SLOT (takeFocus())); connect(&m_watcher, SIGNAL(fileChanged(QString)), this, SLOT(idxStatus())); @@ -466,12 +465,6 @@ void RclMain::viewUrl() } } -void RclMain::focusToSearch() -{ - LOGDEB(("Giving focus to sSearch\n")); - sSearch->queryText->setFocus(Qt::ShortcutFocusReason); -} - void RclMain::setStemLang(QAction *id) { LOGDEB(("RclMain::setStemLang(%p)\n", id)); diff --git a/src/qtgui/rclmain_w.h b/src/qtgui/rclmain_w.h index b353d2f8..fbf1d2fc 100644 --- a/src/qtgui/rclmain_w.h +++ b/src/qtgui/rclmain_w.h @@ -142,7 +142,6 @@ public slots: virtual void catgFilter(int); virtual void initDbOpen(); virtual void toggleFullScreen(); - virtual void focusToSearch(); virtual void on_actionSortByDateAsc_toggled(bool on); virtual void on_actionSortByDateDesc_toggled(bool on); virtual void on_actionShowResultsAsTable_toggled(bool on); diff --git a/src/qtgui/ssearch_w.cpp b/src/qtgui/ssearch_w.cpp index 3f07fff2..b7fe85ef 100644 --- a/src/qtgui/ssearch_w.cpp +++ b/src/qtgui/ssearch_w.cpp @@ -81,6 +81,15 @@ void SSearch::init() m_keystroke = false; } +void SSearch::takeFocus() +{ + LOGDEB2(("SSearch: take focus\n")); + queryText->setFocus(Qt::ShortcutFocusReason); + // If the focus was already in the search entry, the text is not selected. + // Do it for consistency + queryText->lineEdit()->selectAll(); +} + void SSearch::timerDone() { QString qs = queryText->currentText(); diff --git a/src/qtgui/ssearch_w.h b/src/qtgui/ssearch_w.h index e8b6e14f..689263fe 100644 --- a/src/qtgui/ssearch_w.h +++ b/src/qtgui/ssearch_w.h @@ -58,6 +58,8 @@ public slots: virtual void completionTermChosen(const QString& text); virtual void wrapupCompletion(); virtual void timerDone(); + virtual void takeFocus(); + signals: void startSearch(RefCntr, bool); void clearSearch();