diff options
-rw-r--r-- | doc/src/diagrams/webkit-domtraversal.png | bin | 0 -> 108725 bytes | |||
-rw-r--r-- | doc/src/external-resources.qdoc | 5 | ||||
-rw-r--r-- | doc/src/getting-started/examples.qdoc | 87 | ||||
-rw-r--r-- | doc/src/images/webkit-domtraversal.png | bin | 0 -> 91304 bytes | |||
-rw-r--r-- | examples/webkit/domtraversal/domtraversal.pro | 11 | ||||
-rw-r--r-- | examples/webkit/domtraversal/main.cpp | 52 | ||||
-rw-r--r-- | examples/webkit/domtraversal/window.cpp | 90 | ||||
-rw-r--r-- | examples/webkit/domtraversal/window.h | 71 | ||||
-rw-r--r-- | examples/webkit/domtraversal/window.ui | 89 | ||||
-rw-r--r-- | examples/webkit/simpleselector/window.cpp | 2 | ||||
-rw-r--r-- | examples/webkit/simpleselector/window.h | 2 | ||||
-rw-r--r-- | examples/webkit/webkit.pro | 3 |
12 files changed, 387 insertions, 25 deletions
diff --git a/doc/src/diagrams/webkit-domtraversal.png b/doc/src/diagrams/webkit-domtraversal.png Binary files differnew file mode 100644 index 0000000..5cd6d1f --- /dev/null +++ b/doc/src/diagrams/webkit-domtraversal.png diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc index 4e1f3b7..f965869 100644 --- a/doc/src/external-resources.qdoc +++ b/doc/src/external-resources.qdoc @@ -412,3 +412,8 @@ \externalpage http://www.directfb.org/docs/DirectFB_Reference_1_4/types.html#DFBSurfaceDescription \title DirectFB - DFBSurfaceDescription */ + +/*! + \externalpage http://www.w3.org/TR/REC-CSS2/selector.html#q1 + \title Standard CSS2 selector +*/ diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index 79cbe89..eec0492 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -336,13 +336,6 @@ features is the archive of the \l {Qt Quarterly}. \endtable - - \omit - In the list below, examples marked with an asterisk (*) are fully - documented. Eventually, all the examples will be fully documented, - but sometimes we include an example before we have time to write - about it. - \endomit */ /*! @@ -388,6 +381,8 @@ \o \l{widgets/wiggly}{Wiggly}\raisedaster \o \l{widgets/windowflags}{Window Flags}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -416,6 +411,8 @@ \o \l{dialogs/tabdialog}{Tab Dialog}\raisedaster \o \l{dialogs/trivialwizard}{Trivial Wizard} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -442,12 +439,14 @@ \o \l{mainwindows/recentfiles}{Recent Files} \o \l{mainwindows/sdi}{SDI} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! \page examples-layouts.html \title Layout Examples - + \previouspage Main Window Examples \contentspage Qt Examples \nextpage Item Views Examples @@ -467,6 +466,8 @@ \o \l{layouts/dynamiclayouts}{Dynamic Layouts} \o \l{layouts/flowlayout}{Flow Layout} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -503,6 +504,8 @@ \o \l{itemviews/spinboxdelegate}{Spin Box Delegate}\raisedaster \o \l{itemviews/stardelegate}{Star Delegate}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -529,6 +532,8 @@ \o \l{graphicsview/portedasteroids}{Ported Asteroids} \o \l{graphicsview/portedcanvas}{Ported Canvas} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -559,6 +564,8 @@ \o \l{painting/svgviewer}{SVG Viewer} \o \l{painting/transformations}{Transformations}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -631,16 +638,18 @@ \o \l{draganddrop/fridgemagnets}{Fridge Magnets}\raisedaster \o \l{draganddrop/puzzle}{Drag and Drop Puzzle} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! \page examples-threadandconcurrent.html \title Threading and Concurrent Programming Examples - + \previouspage Drag and Drop Examples \contentspage Qt Examples \nextpage Tools Examples - + \image thread-examples.png Qt 4 makes it easier than ever to write multithreaded applications. More @@ -669,6 +678,8 @@ \o \l{qtconcurrent/runfunction}{QtConcurrent Run Function} \o \l{qtconcurrent/wordcount}{QtConcurrent Word Count} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -704,6 +715,8 @@ \o \l{tools/treemodelcompleter}{Tree Model Completer}\raisedaster \o \l{tools/undoframework}{Undo Framework}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -736,6 +749,8 @@ \o \l{network/torrent}{Torrent} \o \l{network/googlesuggest}{Google Suggest} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -745,7 +760,7 @@ \previouspage Network Examples \contentspage Qt Examples \nextpage OpenGL Examples - + \image ipc-examples.png \list @@ -784,6 +799,8 @@ \o \l{opengl/samplebuffers}{Sample Buffers} \o \l{opengl/textures}{Textures} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -829,6 +846,8 @@ \o \l{phonon/capabilities}{Capabilities}\raisedaster \o \l{phonon/qmusicplayer}{Music Player}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -855,6 +874,8 @@ \o \l{sql/tablemodel}{Table Model} \o \l{sql/sqlwidgetmapper}{SQL Widget Mapper}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ @@ -890,6 +911,8 @@ \o \l{xmlpatterns/trafficinfo}{Traffic Info}\raisedaster \o \l{xmlpatterns/schema}{XML Schema Validation}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -996,12 +1019,26 @@ from displaying Web pages within a Qt user interface to an implementation of a basic function Web browser. - \list - \o \l{webkit/previewer}{Previewer}\raisedaster - \o \l{webkit/formextractor}{Form Extractor} - \o \l{webkit/googlechat}{Google Chat} - \o \l{webkit/fancybrowser}{Fancy Browser} - \endlist + \table + \header \o Example \o Description + \row \o \l{webkit/domtraversal}{DOM Traversal}\raisedaster + \o Shows how to use QWebElement to inspect the document structure of a Web page. + \row \o \l{webkit/fancybrowser}{Fancy Browser} + \o A more advanced browser example, showing the use of jQuery to perform effects. + \row \o \l{webkit/formextractor}{Form Extractor} + \o How to use JavaScript and C++ together to read page content. + \row \o \l{webkit/googlechat}{Google Chat} + \o A real-world example that shows how an existing Web-based service can be accessed + using QtWebKit. + \row \o \l{webkit/previewer}{Previewer}\raisedaster + \o Shows how to make a simple Web page previewer by using Qt's text input widgets + together with a QWebView widget. + \row \o \l{webkit/simpleselector}{Simple Selector}\raisedaster + \o A basic demonstration, showing how to use QWebElement to select elements in a + Web page. + \endtable + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -1021,6 +1058,8 @@ \list \o \l{help/simpletextviewer}{Simple Text Viewer}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -1060,13 +1099,15 @@ \image animation-examples.png Animation \list - \o \l{animation/animatedtiles}{Animated Tiles} - \o \l{animation/appchooser}{Application Chooser} - \o \l{animation/easing}{Easing Curves} + \o \l{animation/animatedtiles}{Animated Tiles} + \o \l{animation/appchooser}{Application Chooser} + \o \l{animation/easing}{Easing Curves} \o \l{animation/moveblocks}{Move Blocks}\raisedaster - \o \l{animation/states}{States} + \o \l{animation/states}{States} \o \l{animation/stickman}{Stick man}\raisedaster \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -1100,6 +1141,8 @@ \o \l{dbus/pingpong}{Ping Pong} \o \l{dbus/remotecontrolledcar}{Remote Controlled Car} \endlist + + Examples marked with an asterisk (*) are fully documented. */ /*! @@ -1131,7 +1174,7 @@ \previouspage Qt for Embedded Linux Examples \contentspage Qt Examples \nextpage Qt Quarterly - + \image activeqt-examples.png ActiveQt \list diff --git a/doc/src/images/webkit-domtraversal.png b/doc/src/images/webkit-domtraversal.png Binary files differnew file mode 100644 index 0000000..8c7b2bc --- /dev/null +++ b/doc/src/images/webkit-domtraversal.png diff --git a/examples/webkit/domtraversal/domtraversal.pro b/examples/webkit/domtraversal/domtraversal.pro new file mode 100644 index 0000000..dda63ba --- /dev/null +++ b/examples/webkit/domtraversal/domtraversal.pro @@ -0,0 +1,11 @@ +QT += webkit +FORMS = window.ui +HEADERS = window.h +SOURCES = main.cpp \ + window.cpp + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/webkit/domtraversal +sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro +sources.path = $$[QT_INSTALL_EXAMPLES]/webkit/domtraversal +INSTALLS += target sources diff --git a/examples/webkit/domtraversal/main.cpp b/examples/webkit/domtraversal/main.cpp new file mode 100644 index 0000000..c8a1aec --- /dev/null +++ b/examples/webkit/domtraversal/main.cpp @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include <QApplication> +#include "window.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + Window window; + window.show(); + window.setUrl(QUrl("http://qt.nokia.com/")); + return app.exec(); +} diff --git a/examples/webkit/domtraversal/window.cpp b/examples/webkit/domtraversal/window.cpp new file mode 100644 index 0000000..704a6e1 --- /dev/null +++ b/examples/webkit/domtraversal/window.cpp @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include <QtGui> +#include <QtWebKit> + +#include "window.h" + +//! [Window constructor] +Window::Window(QWidget *parent) + : QMainWindow(parent) +{ + setupUi(this); +} +//! [Window constructor] + +//! [set URL] +void Window::setUrl(const QUrl &url) +{ + webView->setUrl(url); +} +//! [set URL] + +//! [begin document inspection] +void Window::on_webView_loadFinished() +{ + treeWidget->clear(); + + QWebFrame *frame = webView->page()->mainFrame(); + QWebElement document = frame->documentElement(); + + examineChildElements(document, treeWidget->invisibleRootItem()); +} +//! [begin document inspection] + +//! [traverse document] +void Window::examineChildElements(const QWebElement &parentElement, + QTreeWidgetItem *parentItem) +{ + QWebElement element = parentElement.firstChild(); + while (!element.isNull()) { + + QTreeWidgetItem *item = new QTreeWidgetItem(); + item->setText(0, element.tagName()); + parentItem->addChild(item); + + examineChildElements(element, item); + + element = element.nextSibling(); + } +} +//! [traverse document] diff --git a/examples/webkit/domtraversal/window.h b/examples/webkit/domtraversal/window.h new file mode 100644 index 0000000..5988df9 --- /dev/null +++ b/examples/webkit/domtraversal/window.h @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#ifndef WINDOW_H +#define WINDOW_H + +#include <QMainWindow> +#include <QUrl> +#include <QWebElement> + +class QTreeWidgetItem; + +//! [Window class definition] +#include "ui_window.h" + +class Window : public QMainWindow, private Ui::Window +{ + Q_OBJECT + +public: + Window(QWidget *parent = 0); + void setUrl(const QUrl &url); + +public slots: + void on_webView_loadFinished(); + +private: + void examineChildElements(const QWebElement &parentElement, + QTreeWidgetItem *parentItem); +}; +//! [Window class definition] + +#endif diff --git a/examples/webkit/domtraversal/window.ui b/examples/webkit/domtraversal/window.ui new file mode 100644 index 0000000..0fce035 --- /dev/null +++ b/examples/webkit/domtraversal/window.ui @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Window</class> + <widget class="QMainWindow" name="Window"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>800</width> + <height>600</height> + </rect> + </property> + <property name="windowTitle"> + <string>Web Element DOM Traversal</string> + </property> + <widget class="QWidget" name="centralwidget"> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <property name="topMargin"> + <number>4</number> + </property> + <property name="bottomMargin"> + <number>4</number> + </property> + <item> + <widget class="QWebView" name="webView"> + <property name="url"> + <url> + <string>http://qt.nokia.com/</string> + </url> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QMenuBar" name="menubar"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>800</width> + <height>27</height> + </rect> + </property> + </widget> + <widget class="QStatusBar" name="statusbar"/> + <widget class="QDockWidget" name="dockWidget"> + <property name="allowedAreas"> + <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set> + </property> + <property name="windowTitle"> + <string>Document Structure</string> + </property> + <attribute name="dockWidgetArea"> + <number>1</number> + </attribute> + <widget class="QWidget" name="dockWidgetContents"> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="margin"> + <number>4</number> + </property> + <item> + <widget class="QTreeWidget" name="treeWidget"> + <attribute name="headerVisible"> + <bool>false</bool> + </attribute> + <attribute name="headerVisible"> + <bool>false</bool> + </attribute> + <column> + <property name="text"> + <string notr="true">1</string> + </property> + </column> + </widget> + </item> + </layout> + </widget> + </widget> + </widget> + <customwidgets> + <customwidget> + <class>QWebView</class> + <extends>QWidget</extends> + <header>QtWebKit/QWebView</header> + </customwidget> + </customwidgets> + <resources/> + <connections/> +</ui> diff --git a/examples/webkit/simpleselector/window.cpp b/examples/webkit/simpleselector/window.cpp index 295ab7f..ad54487 100644 --- a/examples/webkit/simpleselector/window.cpp +++ b/examples/webkit/simpleselector/window.cpp @@ -58,7 +58,7 @@ void Window::on_elementLineEdit_returnPressed() //! [select elements] QWebElement document = frame->documentElement(); - QList<QWebElement> elements = document.findAll(elementLineEdit->text()); + QWebElementCollection elements = document.findAll(elementLineEdit->text()); //! [select elements] foreach (QWebElement element, elements) diff --git a/examples/webkit/simpleselector/window.h b/examples/webkit/simpleselector/window.h index 437d360..9f9344a 100644 --- a/examples/webkit/simpleselector/window.h +++ b/examples/webkit/simpleselector/window.h @@ -44,9 +44,9 @@ #include <QUrl> #include <QWidget> +//! [Window class definition] #include "ui_window.h" -//! [Window class definition] class Window : public QWidget, private Ui::Window { Q_OBJECT diff --git a/examples/webkit/webkit.pro b/examples/webkit/webkit.pro index 47c1443..c985ed5 100644 --- a/examples/webkit/webkit.pro +++ b/examples/webkit/webkit.pro @@ -1,5 +1,6 @@ TEMPLATE = subdirs -SUBDIRS += formextractor \ +SUBDIRS += domtraversal \ + formextractor \ previewer \ fancybrowser \ simpleselector |