| /*! |
| \module QtWebKit |
| \title QtWebKit Module |
| \contentspage Qt's Modules |
| \previouspage QtSvg |
| \nextpage QtXml |
| \ingroup architecture |
| \ingroup modules |
| \brief An introduction to the QtWebKit module. |
| |
| \keyword Browser |
| \keyword Web Browser |
| |
| \since 4.4 |
| |
| 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. 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. |
| |
| The QtWebKit module is part of the \l{Qt Full Framework Edition}, and the |
| \l{Open Source Versions of Qt}. |
| |
| \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/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. |
| |
| Topics: |
| |
| \tableofcontents |
| |
| \section1 Configuring the Build Process |
| |
| Applications that use QtWebKit's classes need to be configured to be built |
| against the QtWebKit module. The following declaration in a \c qmake |
| project file ensures that an application is compiled and linked |
| appropriately: |
| |
| \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 0 |
| |
| This line is necessary because only the QtCore and QtGui modules are used |
| in the default build process. |
| |
| To include the definitions of the module's classes, use the following |
| directive: |
| |
| \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 1 |
| |
| \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 acts as a view onto Web pages, each of which is represented by an |
| instance of the QWebPage class. 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. It includes the |
| bridge to the JavaScript window object and can be painted using QPainter. |
| Each QWebPage has one QWebFrame object as its main frame. |
| |
| Individual 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 |
| |
| Since WebKit supports the Netscape Plugin API, Qt applications can display |
| Web pages that embed common plugins, as long as the user has the appropriate |
| binary files for those plugins installed and the \l{QWebSettings::PluginsEnabled} |
| attribute is set for the application. |
| |
| The following locations are searched for plugins: |
| |
| \table |
| \header \o Linux/Unix \o Windows |
| \row \o{1,3} |
| \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 |
| |
| \o |
| \list |
| \o The user's \c{Application Data\Mozilla\plugins} directory |
| \o Standard system locations of plugins for Quicktime, Flash, etc. |
| \endlist |
| |
| \row |
| \raw HTML |
| <th class="qt-style">Mac OS X</th> |
| \endraw |
| \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 Lesser General Public License (LGPL). |
| |
| Developers using the Open Source Edition can choose to redistribute |
| the module under the appropriate version of the GNU LGPL; version 2.1 |
| for applications and libraries licensed under the GNU GPL version 2, |
| or version 3 for applications and libraries licensed under the GNU |
| GPL version 2. |
| |
| \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 |
| */ |