doc/src/examples/simpleselector.qdoc
branchRCL_3
changeset 7 3f74d0d4af4c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/src/examples/simpleselector.qdoc	Thu Apr 08 14:19:33 2010 +0300
@@ -0,0 +1,128 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+    \example webkit/simpleselector
+    \title Simple Selector Example
+
+    The Simple Selector example shows how to use QWebElement to access the
+    Document Object Model (DOM) in a Web page.
+
+    \image webkit-simpleselector.png
+
+    The QWebElement class enables access to the document structure and content in a Web page,
+    as represented by a QWebFrame instance. It can be used for basic traversal of the document
+    structure (see the \l{DOM Traversal Example}), to search for particular elements, and to
+    modify any elements found.
+
+    This example uses a QWebView widget to display a Web page. A QLineEdit widget and QPushButton
+    allow the user to enter a query and highlight the results in the page. These widgets are
+    contained in an instance of the \c Window class, which we described below.
+
+    \section1 Window Class Definition
+
+    The \c Window class describes the example's user interface and this is partially described
+    by the \c window.ui file, created using \l{Qt Designer}:
+
+    \snippet examples/webkit/simpleselector/window.h Window class definition
+
+    We use \l{Using a Designer UI File in Your Application#The Multiple Inheritance Approach}
+    {multiple inheritance} to include the user interface description. We define slots that
+    will automatically respond to signals emitted by certain user interface controls.
+
+    \section1 Window Class Implementation
+
+    Since the layout of the user interface is provided by the \c{window.ui} user interface file,
+    we only need to call the \l{QWidget::}{setupUi()} in the constructor:
+
+    \snippet examples/webkit/simpleselector/window.cpp Window class constructor
+
+    This adds all the controls to the window and sets up connections between their signals
+    and suitably-named slots in the \c Window class. The QLineEdit instance was given a name of
+    \c elementLineEdit in Qt Designer, so the \c{on_elementLineEdit_returnPressed()} slot is
+    automatically connected to its \l{QLineEdit::}{returnPressed()} signal.
+
+    This slot performs the main work of this example. We begin by obtaining a QWebFrame
+    instance for the current page shown in the QWebView widget. Each QWebFrame contains
+    a QWebElement instance that represents the document, and we obtain this in order to
+    examine its contents:
+
+    \snippet examples/webkit/simpleselector/window.cpp return pressed
+
+    Taking the contents of the QLineEdit as the query text, we call the element's
+    \l{QWebElement::}{findAll()} function to obtain a list of elements that match the
+    query.
+
+    For each element obtained, we modify its style by setting its \c style attribute
+    to give it a yellow background color.
+
+    Since we also want the query to be performed when the user clicks the \gui Highlight
+    button, we also implement the \c{on_highlightButton_clicked()} slot to simply call
+    the \c{on_elementLineEdit_returnPressed()} slot when it is invoked:
+
+    \snippet examples/webkit/simpleselector/window.cpp button clicked
+
+    For completeness, we also implement a \c setUrl() function which simply passes on
+    a QUrl instance to the equivalent function in the QWebView widget:
+
+    \snippet examples/webkit/simpleselector/window.cpp set URL
+
+    \section1 Starting the Example
+
+    The main function implementation is simple. We set up the application, create
+    a \c Window instance, set its URL, and show it:
+
+    \snippet examples/webkit/simpleselector/main.cpp main program
+
+    When the application's event loop is run, the WebKit home page will load, and the
+    user can then begin to start running queries against the contents of the page.
+    The highlighting can only be removed by reloading the page. To do this, open a
+    context menu over the page and select the \gui Reload menu item.
+
+    \section1 Further Reading
+
+    The QWebElement documentation contains more information about DOM access for the
+    QtWebKit classes.
+
+    In this example, we take advantage of Qt's
+    \l{Using a Designer UI File in Your Application#Automatic Connections}{auto-connection}
+    feature to avoid explicitly connecting signals to slots.
+*/