Mercurial > octave
changeset 27092:d1fe5bd5e005
wrap while searching in doc browser
* documentation.cc (documentation): update signal connections to new
find slots;
(find_backward): just call the common find function with backward flag;
(find): common find function with boolean parameter indicating a backward
search, wrapping if no more occurrances of the search string is found;
(find_forward): renamed into find and extended
(find_forward_from_anchor): use movePosition for moving cursor to text begin
* documentation.h: new common method find instead of find_forward
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Sat, 18 May 2019 13:18:00 +0200 |
parents | dcc3a8065ccd |
children | 6e18f0ce268c |
files | libgui/src/documentation.cc libgui/src/documentation.h |
diffstat | 2 files changed, 25 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/documentation.cc Sat May 18 12:17:57 2019 +0200 +++ b/libgui/src/documentation.cc Sat May 18 13:18:00 2019 +0200 @@ -133,7 +133,7 @@ QLabel *find_label = new QLabel (tr ("Find:"), find_footer); m_find_line_edit = new QLineEdit (find_footer); connect (m_find_line_edit, SIGNAL (returnPressed (void)), - this, SLOT(find_forward (void))); + this, SLOT(find (void))); connect (m_find_line_edit, SIGNAL (textEdited (const QString&)), this, SLOT(find_forward_from_anchor (const QString&))); QToolButton *forward_button = new QToolButton (find_footer); @@ -141,7 +141,7 @@ forward_button->setToolTip (tr ("Search forward")); forward_button->setIcon (resource_manager::icon ("go-down")); connect (forward_button, SIGNAL (pressed (void)), - this, SLOT(find_forward (void))); + this, SLOT(find (void))); QToolButton *backward_button = new QToolButton (find_footer); backward_button->setText (tr ("Search backward")); backward_button->setToolTip (tr ("Search backward")); @@ -166,7 +166,7 @@ m_findnext_shortcut->setContext (Qt::WidgetWithChildrenShortcut); connect (m_findnext_shortcut, SIGNAL (activated (void)), - this, SLOT(find_forward (void))); + this, SLOT(find (void))); m_findprev_shortcut->setContext (Qt::WidgetWithChildrenShortcut); connect (m_findprev_shortcut, SIGNAL (activated (void)), this, SLOT(find_backward (void))); @@ -687,21 +687,32 @@ m_filter->setCurrentIndex (0); } - void documentation::find_forward (void) + void documentation::find_backward (void) + { + find (true); + } + + void documentation::find (bool backward) { if (! m_help_engine) return; - m_doc_browser->find (m_find_line_edit->text ()); - record_anchor_position (); - } + QTextDocument::FindFlags find_flags = 0; + if (backward) + find_flags = QTextDocument::FindBackward; - void documentation::find_backward (void) - { - if (! m_help_engine) - return; + if (! m_doc_browser->find (m_find_line_edit->text (), find_flags)) + { + // Nothing was found, restart search from the begin or end of text + QTextCursor textcur = m_doc_browser->textCursor (); + if (backward) + textcur.movePosition (QTextCursor::End); + else + textcur.movePosition (QTextCursor::Start); + m_doc_browser->setTextCursor (textcur); + m_doc_browser->find (m_find_line_edit->text (), find_flags); + } - m_doc_browser->find (m_find_line_edit->text (), QTextDocument::FindBackward); record_anchor_position (); } @@ -718,7 +729,7 @@ if (! m_doc_browser->find (text)) { // Nothing was found, restart search from the beginning - textcur.setPosition (0); + textcur.movePosition (QTextCursor::Start); m_doc_browser->setTextCursor (textcur); m_doc_browser->find (text); }
--- a/libgui/src/documentation.h Sat May 18 12:17:57 2019 +0200 +++ b/libgui/src/documentation.h Sat May 18 13:18:00 2019 +0200 @@ -115,7 +115,7 @@ void global_search_finished (int hits); void filter_update (const QString& expression); void filter_update_history (void); - void find_forward (void); + void find (bool backward = false); void find_backward (void); void find_forward_from_anchor (const QString& text); void record_anchor_position (void);