LeechCraft  %{LEECHCRAFT_VERSION}
Modular cross-platform feature rich live environment.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
LeechCraft::Util::FindNotification Class Referenceabstract

A horizontal bar with typical widgets for text search. More...

#include "findnotification.h"

+ Inheritance diagram for LeechCraft::Util::FindNotification:
+ Collaboration diagram for LeechCraft::Util::FindNotification:

Public Types

enum  FindFlag {
  FindNoFlags = 0x0,
  FindCaseSensitively = 0x1,
  FindBackwards = 0x2,
  FindWrapsAround = 0x4
}
 

Public Slots

void findNext ()
 Search for the next occurrence of the current search. More...
 
void findPrevious ()
 Search for the previous occurrence of the current search. More...
 
void clear ()
 Clears the text in the find field. More...
 

Public Member Functions

 FindNotification (ICoreProxy_ptr proxy, QWidget *near)
 Creates the search widget in parent layout of near. More...
 
 ~FindNotification ()
 
void SetEscCloses (bool close)
 Sets whether Esc closes the widget. More...
 
void SetText (const QString &text)
 Sets the text in the find field. More...
 
QString GetText () const
 Returns the currently entered text in the find field. More...
 
void SetSuccessful (bool successful)
 Updates the widget to show whether the search has been successful. More...
 
FindFlags GetFlags () const
 Returns the current find flags except the direction. More...
 
- Public Member Functions inherited from LeechCraft::Util::PageNotification
 PageNotification (QWidget *parent)
 Creates the widget embedding into the parent layout of the parent widget. More...
 

Protected Member Functions

virtual void handleNext (const QString &text, FindFlags flags)=0
 Called each time the user requests a search. More...
 

Detailed Description

A horizontal bar with typical widgets for text search.

This widget provides typical features for text searching: a text input field, checkboxes for selecting find mode and buttons for searching and closing the notification, as well as convenience slots findNext() and findPrevious().

The widget will automatically be embedded into the layout of the parent widget of near after the near widget (which is passed to the constructor).

This class is typically used as following:

  1. It's subclassed, and an implementation of handleNext() function is provided, which deals with the search process. For example, a WebKit-based browser calls QWebPage::findText(). The implementation may also call SetSuccessful() to indicate whether anything has been found.
  2. An object of the subclass is created as a child of some page containing searchable text, like a web page or a text document.
  3. It's hidden after that to not disturb the user until he explicitly wishes to search for text.
  4. A QAction is created to trigger showing this notification, and its triggered() signal is connected to this class' show() and setFocus() slots (latter is needed so that user can start typing his search query immediately).
  5. Optionally a couple of QShortCuts or QActions can be created and connected to findNext() and findPrevious() slots to support shortcuts for the corresponding actions.

The FindNotificationWk class provides some utilities to aid integrating this class with a QWebPage.

See also
FindNotificationWk

Definition at line 83 of file findnotification.h.

Constructor & Destructor Documentation

LeechCraft::Util::FindNotification::FindNotification ( ICoreProxy_ptr  proxy,
QWidget *  near 
)

Creates the search widget in parent layout of near.

Embedding is done only if possible — that is, if parent's layout is QVBoxLayout. Otherwise one should place this widget where needed himself.

Parameters
[in]proxyThe core proxy to be used by this find notification.
[in]nearThe widget near which to embed.

Definition at line 39 of file findnotification.cpp.

LeechCraft::Util::FindNotification::~FindNotification ( )

Definition at line 53 of file findnotification.cpp.

Member Function Documentation

void LeechCraft::Util::FindNotification::clear ( )
slot

Clears the text in the find field.

This is equivalent to SetText ({}).

Definition at line 125 of file findnotification.cpp.

References SetText().

+ Here is the call graph for this function:

void LeechCraft::Util::FindNotification::findNext ( )
slot

Search for the next occurrence of the current search.

Definition at line 107 of file findnotification.cpp.

References GetFlags(), GetText(), and handleNext().

+ Here is the call graph for this function:

void LeechCraft::Util::FindNotification::findPrevious ( )
slot

Search for the previous occurrence of the current search.

Definition at line 116 of file findnotification.cpp.

References FindBackwards, GetFlags(), GetText(), and handleNext().

+ Here is the call graph for this function:

auto LeechCraft::Util::FindNotification::GetFlags ( ) const

Returns the current find flags except the direction.

Please note that the direction flag (FindBackwards) never appears in the return result.

Returns
The find flags corresponding to the user choices.

Definition at line 97 of file findnotification.cpp.

References FindCaseSensitively, and FindWrapsAround.

Referenced by findNext(), and findPrevious().

+ Here is the caller graph for this function:

QString LeechCraft::Util::FindNotification::GetText ( ) const

Returns the currently entered text in the find field.

Returns
Currently entered text in the find field.

Definition at line 68 of file findnotification.cpp.

Referenced by findNext(), and findPrevious().

+ Here is the caller graph for this function:

virtual void LeechCraft::Util::FindNotification::handleNext ( const QString &  text,
FindFlags  flags 
)
protectedpure virtual

Called each time the user requests a search.

Reimplement this function to perform the actual search.

Parameters
[in]textThe text to search for.
[in]flagsThe flags to search with.

Implemented in LeechCraft::Util::FindNotificationWk.

Referenced by findNext(), and findPrevious().

+ Here is the caller graph for this function:

void LeechCraft::Util::FindNotification::SetEscCloses ( bool  close)

Sets whether Esc closes the widget.

Parameters
[in]closeWhether pressing Esc button closes the widget.

Definition at line 58 of file findnotification.cpp.

void LeechCraft::Util::FindNotification::SetSuccessful ( bool  successful)

Updates the widget to show whether the search has been successful.

Parameters
[in]successfulWhether the search has been successful.

Definition at line 73 of file findnotification.cpp.

Referenced by LeechCraft::Util::FindNotificationWk::handleNext().

+ Here is the caller graph for this function:

void LeechCraft::Util::FindNotification::SetText ( const QString &  text)

Sets the text in the find field.

Parameters
[in]textThe text to set in find field.

Definition at line 63 of file findnotification.cpp.

Referenced by clear().

+ Here is the caller graph for this function:


The documentation for this class was generated from the following files: