| /*! |
| \module QtWebKit |
| \title WebKit in Qt |
| \contentspage All Qt Modules |
| \previouspage QtSvg |
| \nextpage QtXml |
| \ingroup modules |
| \ingroup technology-apis |
| |
| \brief The QtWebKit module provides a web browser engine as well as |
| classes to render and interact with web content. |
| |
| QtWebKit provides a Web browser engine that makes it easy to embed content |
| from the World Wide Web into your Qt application. At the same time Web |
| content can be enhanced with native controls. |
| |
| QtWebKit provides facilities for rendering of HyperText Markup Language |
| (HTML), Extensible HyperText Markup Language (XHTML) and Scalable Vector |
| Graphics (SVG) documents, styled using Cascading Style Sheets (CSS) and |
| scripted with JavaScript. |
| |
| A bridge between the JavaScript execution environment and the Qt object |
| model makes it possible for custom QObjects to be scripted. For detailed |
| documentation see \l{The QtWebkit Bridge}. |
| Integration with the Qt networking module enables Web pages to be transparently loaded |
| from Web servers, the local file system or even the Qt resource system. |
| |
| In addition to providing pure rendering features, HTML documents can be |
| made fully editable to the user through the use of the \c{contenteditable} |
| attribute on HTML elements. |
| |
| QtWebKit is based on the Open Source WebKit engine. More information about |
| WebKit itself can be found on the \l{WebKit Open Source Project} Web site. |
| |
| \section1 Including In Your Project |
| |
| To include the definitions of the module's classes, use the |
| following directive: |
| |
| \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 1 |
| |
| To link against the module, add this line to your \l qmake \c |
| .pro file: |
| |
| \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 0 |
| |
| \section1 Notes |
| |
| \note Building the QtWebKit module with debugging symbols is problematic |
| on many platforms due to the size of the WebKit engine. We recommend |
| building the module only in release mode for embedded platforms. |
| Currently QtWebKit will always be compiled without debugging symbols |
| when using gcc. Take a look at the last lines of |
| \c{src/3rdparty/webkit/Source/WebCore/WebCore.pro} if you need to change this. |
| |
| \note Web site icons, also known as "FavIcons", are currently not supported |
| on Windows. We plan to address this in a future release. |
| |
| \note WebKit has certain minimum requirements that must be met on |
| Embedded Linux systems. See the \l{Qt for Embedded Linux Requirements} |
| document for more information. |
| |
| \section1 Architecture |
| |
| The easiest way to render content is through the QWebView class. As a |
| widget it can be embedded into your forms or a graphics view, and it |
| provides convenience functions for downloading and rendering web sites. |
| |
| \snippet webkitsnippets/simple/main.cpp Using QWebView |
| |
| QWebView is used to view Web pages. An instance of QWebView has one |
| QWebPage. QWebPage provides access to the document structure in a page, |
| describing features such as frames, the navigation history, and the |
| undo/redo stack for editable content. |
| |
| HTML documents can be nested using frames in a frameset. An individual |
| frame in HTML is represented using the QWebFrame class. This class includes the |
| bridge to the JavaScript window object and can be painted using QPainter. |
| Each QWebPage has one QWebFrame object as its main frame, and the main frame |
| may contain many child frames. |
| |
| Individual elements of an HTML document can be accessed via DOM JavaScript |
| interfaces from within a web page. The equivalent of this API in QtWebKit |
| is represented by QWebElement. QWebElement objects are obtained using QWebFrame's |
| \l{QWebFrame::}{findAllElements()} and \l{QWebFrame::}{findFirstElement()} |
| functions with CSS selector queries. |
| |
| Common web browser features, defaults and other settings can be configured |
| through the QWebSettings class. It is possible to provide defaults for all |
| QWebPage instances through the default settings. Individual attributes |
| can be overidden by the page specific settings object. |
| |
| \section1 Netscape Plugin Support |
| |
| \note Netscape plugin support is only available on desktop platforms. |
| |
| Since WebKit supports the Netscape Plugin API, Qt applications can display |
| Web pages that embed common plugins on platforms for which those plugins |
| are available. To enable plugin support, the user must have the appropriate |
| binary files for those plugins installed and the \l{QWebSettings::PluginsEnabled} |
| attribute must be enabled for the application. |
| |
| The following locations are searched for plugins: |
| |
| \table |
| \header \o Linux/Unix (X11) |
| \row \o |
| \list |
| \o \c{.mozilla/plugins} in the user's home directory |
| \o \c{.netscape/plugins} in the user's home directory |
| \o System locations, such as |
| \list |
| \o \c{/usr/lib/browser/plugins} |
| \o \c{/usr/local/lib/mozilla/plugins} |
| \o \c{/usr/lib/firefox/plugins} |
| \o \c{/usr/lib64/browser-plugins} |
| \o \c{/usr/lib/browser-plugins} |
| \o \c{/usr/lib/mozilla/plugins} |
| \o \c{/usr/local/netscape/plugins} |
| \o \c{/opt/mozilla/plugins} |
| \o \c{/opt/mozilla/lib/plugins} |
| \o \c{/opt/netscape/plugins} |
| \o \c{/opt/netscape/communicator/plugins} |
| \o \c{/usr/lib/netscape/plugins} |
| \o \c{/usr/lib/netscape/plugins-libc5} |
| \o \c{/usr/lib/netscape/plugins-libc6} |
| \o \c{/usr/lib64/netscape/plugins} |
| \o \c{/usr/lib64/mozilla/plugins} |
| \endlist |
| \o Locations specified by environment variables: |
| \list |
| \o \c{$MOZILLA_HOME/plugins} |
| \o \c{$MOZ_PLUGIN_PATH} |
| \o \c{$QTWEBKIT_PLUGIN_PATH} |
| \endlist |
| \endlist |
| \endtable |
| |
| \table |
| \header \o Windows |
| \row \o |
| \list |
| \o The user's \c{Application Data\Mozilla\plugins} directory |
| \o Standard system locations of plugins for Quicktime, Flash, etc. |
| \endlist |
| \endtable |
| |
| \table |
| \header \o Mac OS X |
| \row \o |
| \list |
| \o \c{Library/Internet Plug-Ins} in the user's home directory |
| \o The system \c{/Library/Internet Plug-Ins} directory |
| \endlist |
| \endtable |
| |
| |
| \section1 License Information |
| |
| This is a snapshot of the Qt port of WebKit. The exact version information |
| can be found in the \c{src/3rdparty/webkit/VERSION} file supplied with Qt. |
| |
| Qt Commercial Edition licensees that wish to distribute applications that |
| use the QtWebKit module need to be aware of their obligations under the |
| GNU Library General Public License (LGPL). |
| |
| Developers using the Open Source Edition can choose to redistribute |
| the module under the appropriate version of the GNU LGPL. |
| |
| \legalese |
| WebKit is licensed under the GNU Library General Public License. |
| Individual contributor names and copyright dates can be found |
| inline in the code. |
| |
| This library is free software; you can redistribute it and/or |
| modify it under the terms of the GNU Library General Public |
| License as published by the Free Software Foundation; either |
| version 2 of the License, or (at your option) any later version. |
| |
| This library is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Library General Public License for more details. |
| |
| You should have received a copy of the GNU Library General Public License |
| along with this library; see the file COPYING.LIB. If not, write to |
| the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| Boston, MA 02110-1301, USA. |
| \endlegalese |
| */ |
| |