From a84db251c4dca09e1a7d8d66822b43a7bd3accd7 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 8 May 2009 23:19:37 +0000 Subject: [PATCH] Instead of directly closing the find bar with Esc, check whether a search is running from it. In case it is, then cancel it, otherwise just close the find bar. This make it possible to cancel a running search in the find bar without waiting for it to find some match and stop. svn path=/trunk/KDE/kdegraphics/okular/; revision=965461 --- part.cpp | 6 ++++-- ui/findbar.cpp | 14 ++++++++++++++ ui/findbar.h | 1 + 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/part.cpp b/part.cpp index 501113a0b..4b1d9c13a 100644 --- a/part.cpp +++ b/part.cpp @@ -1255,8 +1255,10 @@ void Part::slotShowFindBar() void Part::slotHideFindBar() { - m_findBar->hide(); - m_pageView->setFocus(); + if ( m_findBar->maybeHide() ) + { + m_pageView->setFocus(); + } } //BEGIN go to page dialog diff --git a/ui/findbar.cpp b/ui/findbar.cpp index 6f841d629..c70d5e796 100644 --- a/ui/findbar.cpp +++ b/ui/findbar.cpp @@ -106,6 +106,20 @@ void FindBar::focusAndSetCursor() m_search->lineEdit()->setFocus(); } +bool FindBar::maybeHide() +{ + if ( m_search->lineEdit()->isSearchRunning() ) + { + m_search->lineEdit()->stopSearch(); + return false; + } + else + { + hide(); + return true; + } +} + void FindBar::findNext() { m_search->lineEdit()->setSearchType( Okular::Document::NextMatch ); diff --git a/ui/findbar.h b/ui/findbar.h index 4047ab8d0..b63b1ba33 100644 --- a/ui/findbar.h +++ b/ui/findbar.h @@ -32,6 +32,7 @@ class FindBar Qt::CaseSensitivity caseSensitivity() const; void focusAndSetCursor(); + bool maybeHide(); public slots: void findNext();