diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-11-22 21:34:44 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-11-22 21:34:44 (GMT) |
commit | 526eda58dae96dca2c5aebcb48b007f09bd7ecac (patch) | |
tree | 2262444830c9b20cf88c568f98b916aef1acb1ff /doc | |
parent | 5f2090f0f2280c32d06fbc5188ccb799d7b1a489 (diff) | |
parent | 0f4a61a33942744b1609c2b375d28765a215e39f (diff) | |
download | Qt-526eda58dae96dca2c5aebcb48b007f09bd7ecac.zip Qt-526eda58dae96dca2c5aebcb48b007f09bd7ecac.tar.gz Qt-526eda58dae96dca2c5aebcb48b007f09bd7ecac.tar.bz2 |
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-doc-staging into master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-doc-staging: (72 commits)
Add note to declarative calculator example
Help: Add \depends to all declarative examples & demos
Declarative Examples: Fall back to local qmlapplicationviewer.
Fix qdoc output for <dependency> tag.
Change installation location of examples.
Add Symbian platform notes.
Fix "make install" for declarative examples
Add C++11 support and QThreadLocalStorage changes to docs.
Update the license in the qmlapplicationviewer.
Examples: Add Copright headers, Remove stray file.
Compile fix.
Fix use of qmlapplicationviewer.
Doc: Create relative pathes in Manifest files.
Doc: Copy manifest files to the places where Creator expects them.
qdoc3: qdoc supports \depends in 4.8
qdoc3: qdoc supports \depends in 4.8
Update qrc files.
Update qmlapplicationviewer template,
cppextensions/qgraphicslayout example corrections
demos/declarative/snake example corrections
...
Diffstat (limited to 'doc')
-rw-r--r-- | doc/doc.pri | 15 | ||||
-rw-r--r-- | doc/src/examples/qml-calculator.qdoc | 2 | ||||
-rw-r--r-- | doc/src/examples/qml-examples.qdoc | 141 | ||||
-rw-r--r-- | doc/src/examples/qml-flickr.qdoc | 2 | ||||
-rw-r--r-- | doc/src/examples/qml-folderlistmodel.qdoc | 1 | ||||
-rw-r--r-- | doc/src/examples/qml-photoviewer.qdoc | 2 | ||||
-rw-r--r-- | doc/src/examples/qml-rssnews.qdoc | 2 | ||||
-rw-r--r-- | doc/src/examples/qml-samegame.qdoc | 2 | ||||
-rw-r--r-- | doc/src/examples/qml-twitter.qdoc | 2 | ||||
-rw-r--r-- | doc/src/examples/qml-webbrowser.qdoc | 2 | ||||
-rw-r--r-- | doc/src/platforms/platform-notes.qdoc | 368 | ||||
-rw-r--r-- | doc/src/platforms/supported-platforms.qdoc | 96 | ||||
-rw-r--r-- | doc/src/qt4-intro.qdoc | 8 |
13 files changed, 632 insertions, 11 deletions
diff --git a/doc/doc.pri b/doc/doc.pri index 9d67386..38d3d16 100644 --- a/doc/doc.pri +++ b/doc/doc.pri @@ -17,6 +17,9 @@ COPYWEBKITGUIDE = $$QT_SOURCE_TREE/examples/webkit/webkit-guide COPYWEBKITTARGA = $$QT_BUILD_TREE/doc-build/html-qt COPYWEBKITTARGB = $$QT_BUILD_TREE/doc/html +EXAMPLESMANIFEST = $$QT_BUILD_TREE/doc/html/examples-manifest.xml +DEMOSMANIFEST = $$QT_BUILD_TREE/doc/html/demos-manifest.xml + $$unixstyle { QDOC = cd $$QT_SOURCE_TREE/tools/qdoc3/test && QT_BUILD_TREE=$$QT_BUILD_TREE QT_SOURCE_TREE=$$QT_SOURCE_TREE $$QT_BUILD_TREE/bin/qdoc3 $$DOCS_GENERATION_DEFINES } else { @@ -31,6 +34,8 @@ QT_DOCUMENTATION = ($$QDOC qt-api-only.qdocconf assistant.qdocconf designer.qdoc linguist.qdocconf qmake.qdocconf qdeclarative.qdocconf) && \ (cd $$QT_BUILD_TREE && \ $$QMAKE_COPY_DIR $$COPYWEBKITGUIDE $$COPYWEBKITTARGA && \ + $$QMAKE_COPY $$EXAMPLESMANIFEST $$QT_BUILD_TREE/examples && \ + $$QMAKE_COPY $$DEMOSMANIFEST $$QT_BUILD_TREE/demos && \ $$GENERATOR doc-build/html-qt/qt.qhp -o doc/qch/qt.qch && \ $$GENERATOR doc-build/html-assistant/assistant.qhp -o doc/qch/assistant.qch && \ $$GENERATOR doc-build/html-designer/designer.qhp -o doc/qch/designer.qch && \ @@ -74,6 +79,14 @@ htmldocs.files = $$QT_BUILD_TREE/doc/html htmldocs.path = $$[QT_INSTALL_DOCS] htmldocs.CONFIG += no_check_exist directory +examplesmanifest.files = $$EXAMPLESMANIFEST +examplesmanifest.path = $$[QT_INSTALL_EXAMPLES] +examplesmanifest.CONFIG += no_check_exist directory + +demosmanifest.files = $$DEMOSMANIFEST +demosmanifest.path = $$[QT_INSTALL_DEMOS] +demosmanifest.CONFIG += no_check_exist directory + qchdocs.files= $$QT_BUILD_TREE/doc/qch qchdocs.path = $$[QT_INSTALL_DOCS] qchdocs.CONFIG += no_check_exist directory @@ -85,4 +98,4 @@ sub-qdoc3.depends = sub-corelib sub-xml sub-qdoc3.commands += (cd tools/qdoc3 && $(MAKE)) QMAKE_EXTRA_TARGETS += sub-qdoc3 adp_docs qch_docs docs docs_zh_CN docs_ja_JP -INSTALLS += htmldocs qchdocs docimages +INSTALLS += htmldocs qchdocs docimages examplesmanifest demosmanifest diff --git a/doc/src/examples/qml-calculator.qdoc b/doc/src/examples/qml-calculator.qdoc index 2e2cdc8..edc87e2 100644 --- a/doc/src/examples/qml-calculator.qdoc +++ b/doc/src/examples/qml-calculator.qdoc @@ -31,5 +31,7 @@ \brief The Qt Quick Calculator demo shows how to write a simple calculator application in QML and JavaScript. + \depends helper/qmlapplicationviewer + \image qml-calculator-example.png */ diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc index bde2ed7..52fa2e4 100644 --- a/doc/src/examples/qml-examples.qdoc +++ b/doc/src/examples/qml-examples.qdoc @@ -31,6 +31,8 @@ \brief This example shows how to create and combine \l{QML Animation}{animations} in QML. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-coloranim-example.png @@ -44,6 +46,8 @@ \brief This example shows how to create and combine \l{QML Animation}{animations} in QML. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-propertyanim-example.png @@ -58,6 +62,8 @@ \brief This example shows how to use QML behaviors. + \depends helper/qmlapplicationviewer + \image qml-behaviors-example.png */ @@ -67,6 +73,8 @@ \brief This example shows the different easing modes available for \l{QML Animation}{animations}. + \depends helper/qmlapplicationviewer + \image qml-easing-example.png */ @@ -76,6 +84,8 @@ \brief These examples show how to use \l{States}{states} and \l{Transitions}{transitions}. + \depends helper/qmlapplicationviewer + The \c states.qml example shows how an item can change between states, and \c transitions.qml shows how these state changes can be animated. @@ -100,6 +110,8 @@ \brief These examples show how to use the BorderImage element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-borderimage-example.png @@ -113,6 +125,8 @@ \brief This example shows how to use the BorderImage element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-borderimage-shadows-example.png @@ -127,6 +141,8 @@ \brief This example shows how to use the \l Image element and its \l{Image::fillMode}{fillModes}. + \depends helper/qmlapplicationviewer + \image qml-image-example.png */ @@ -248,6 +264,8 @@ \brief This example shows how to enable text translation in QML. + \depends helper/qmlapplicationviewer + \image qml-i18n-example.png \section1 Introduction @@ -286,12 +304,16 @@ \title Right-to-left User Interfaces: Text Alignment Example \example declarative/righttoleft/textalignment - This example shows how the horizontal alignment of \l Text, + \brief This example shows how the horizontal alignment of \l Text, \l TextInput and \l TextEdit is affected by the reading direction - of the text and by the layout mirrroring. Click on the gray buttons + of the text and by the layout mirrroring. + + Click on the gray buttons shown at the bottom of the example to toggle between different horizontal alignment options. + \depends helper/qmlapplicationviewer + \sa {QML Right-to-left User Interfaces} */ @@ -299,11 +321,15 @@ \title Right-to-left User Interfaces: Layout Direction Example \example declarative/righttoleft/layoutdirection - This example shows how to control the horizontal layout direction of + \ brief This example shows how to control the horizontal layout direction of \l Row, \l Grid and \l Flow positioners, and \l ListView and \l GridView - model views. Click on the gray buttons shown at the bottom of the example + model views. + + Click on the gray buttons shown at the bottom of the example to toggle the layout direction of the shown elements. + \depends helper/qmlapplicationviewer + \image qml-righttoleft-layoutdirection-example.png \sa {QML Right-to-left User Interfaces} @@ -314,10 +340,13 @@ \title Right-to-left User Interfaces: Layout Mirroring Example \example declarative/righttoleft/layoutmirroring - This example shows how to mirror the application layouts - using \l LayoutMirroring attached property. Click on the grey button - shown at the bottom of the example to enable or disable the - layout mirroring. + \brief This example shows how to mirror the application layouts + using \l LayoutMirroring attached property. + + Click on the grey button shown at the bottom of the example to + enable or disable the layout mirroring. + + \depends helper/qmlapplicationviewer \image qml-righttoleft-layoutmirroring-example.png @@ -331,6 +360,8 @@ \brief This example shows how to use positioner elements such as \l Row, \l Column, \l Grid and \l Flow. + \depends helper/qmlapplicationviewer + \image qml-positioners-example.png */ @@ -340,6 +371,8 @@ \brief This example shows how to handle keyboard input and focus in QML. + \depends helper/qmlapplicationviewer + \image qml-focus-example.png */ @@ -349,6 +382,8 @@ \brief This example shows how to use a QAbstractItemModel subclass as a model in QML. + \depends helper/qmlapplicationviewer + \image qml-abstractitemmodel-example.png */ @@ -358,6 +393,8 @@ \brief This example shows how to use the GridView element. + \depends helper/qmlapplicationviewer + \image qml-gridview-example.png */ @@ -369,6 +406,8 @@ and removed from a ListModel, and how these list modifications can be animated. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-listview-dynamiclist-example.png @@ -383,6 +422,9 @@ \brief This example shows how to create a dynamic delegate, which expands when selected. + \depends helper/qmlapplicationviewer + + \table \row \o \image qml-listview-expandingdelegates-example.png @@ -397,6 +439,8 @@ \brief This example shows how to highlight one item inside a ListView element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-listview-highlight-example.png @@ -411,6 +455,8 @@ \brief This example shows how to highlight ranges within a ListView element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-listview-highlightranges-example.png @@ -424,6 +470,8 @@ \brief This example shows how to use the ListView element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-listview-sections-example.png @@ -438,6 +486,8 @@ \brief This example shows how to use the PathView element. + \depends helper/qmlapplicationviewer + \image qml-pathview-example.png */ @@ -447,6 +497,8 @@ \brief This example shows how to use a QList<QObject*> as a model in QML. + \depends helper/qmlapplicationviewer + \image qml-objectlistmodel-example.png */ @@ -456,6 +508,8 @@ \brief This example shows how to use the \l Package element. + \depends helper/qmlapplicationviewer + \image qml-package-example.png */ @@ -465,6 +519,8 @@ \brief This example shows how to combine and switch between views. + \depends helper/qmlapplicationviewer + \image qml-parallax-example.png */ @@ -474,6 +530,8 @@ \brief This example shows how to use a QStringList as a model in QML. + \depends helper/qmlapplicationviewer + \image qml-stringlistmodel-example.png */ @@ -483,6 +541,8 @@ \brief This example shows how to use the VisualItemModel element. + \depends helper/qmlapplicationviewer + \image qml-visualitemmodel-example.png */ @@ -492,6 +552,8 @@ \brief These examples show how to use the WebView element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-webview-alert-example.png @@ -505,6 +567,8 @@ \brief These examples show how to use the WebView element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-webview-autosize-example.png @@ -518,6 +582,8 @@ \brief These examples show how to use the WebView element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-webview-googlemaps-example.png @@ -531,6 +597,8 @@ \brief These examples show how to use the WebView element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-webview-inlinehtml-example.png @@ -544,6 +612,8 @@ \brief These examples show how to use the WebView element. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-webview-newwindows-example.png @@ -558,6 +628,8 @@ \example declarative/screenorientation \brief This example shows how to implement screen orientation support for your application. + + \depends helper/qmlapplicationviewer */ /*! @@ -565,6 +637,8 @@ \example declarative/sqllocalstorage \brief This example shows how to use the SQL Local Storage API in QML. + + \depends helper/qmlapplicationviewer */ /*! @@ -573,6 +647,8 @@ \brief These examples show how to discover available fonts from QML. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-fonts-availableFonts-example.png @@ -586,6 +662,8 @@ \brief These example shows how to manipulate text in various ways. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-fonts-banner-example.png @@ -599,6 +677,8 @@ \brief These examples shows how to display a text with multiple fonts. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-fonts-fonts-example.png @@ -612,6 +692,8 @@ \brief This example shows how to manipulate text in various ways. + \depends helper/qmlapplicationviewer + \table \row \o \image qml-fonts-hello-example.png @@ -627,6 +709,8 @@ \brief This example shows how text selection, copy and paste operations can be implemented on top of the TextEdit element. + \depends helper/qmlapplicationviewer + \image qml-textselection-example.png */ @@ -636,6 +720,8 @@ \brief This example shows how to use a ListModel from multiple threads using WorkerScript. + + \depends helper/qmlapplicationviewer */ /*! @@ -643,6 +729,8 @@ \example declarative/threading/workerscript \brief This example shows how to use the WorkerScript element for threading in QML. + + \depends helper/qmlapplicationviewer */ /*! @@ -650,6 +738,8 @@ \example declarative/toys/clocks \brief This example displays a set of clocks with different times for different cities. + + \depends helper/qmlapplicationviewer Each clock is created by combining \l Image elements with \l Rotation transforms and \l SpringAnimation behaviors. @@ -665,6 +755,8 @@ through a combination of elements like \l ListModel, \l Repeater and \l TextEdit together with rotation and scaling transforms, animation and mouse interaction. + \depends helper/qmlapplicationviewer + \image qml-corkboards-example.png */ @@ -676,6 +768,8 @@ how to use QML's \l{Dynamic Object Creation} support to dynamically create and destroy objects. + \depends helper/qmlapplicationviewer + \image qml-dynamicscene-example.png */ @@ -685,6 +779,8 @@ \brief This example presents a simple implementation of Tic Tac Toe. + \depends helper/qmlapplicationviewer + \image qml-tic-tac-toe-example.png */ @@ -695,6 +791,8 @@ \brief This example shows how to use animation components such as \l SpringAnimation, \l SequentialAnimation and \l PropertyAction to create a game of TV tennis. + \depends helper/qmlapplicationviewer + \image qml-tvtennis-example.png */ @@ -703,6 +801,8 @@ \example declarative/touchinteraction/gestures \brief This example shows how to use the GestureArea element. + \depends helper/qmlapplicationviewer + */ /*! @@ -712,6 +812,8 @@ \brief This example shows how to use the MouseArea element to access information about mouse input. + \depends helper/qmlapplicationviewer + \image qml-mousearea-example.png */ @@ -723,6 +825,8 @@ \l Image elements with \l Rotation transforms and \l SpringAnimation behaviors to produce an interactive speedometer-type dial. + \depends helper/qmlapplicationviewer + \image qml-dialcontrol-example.png */ @@ -730,9 +834,12 @@ /*! \title UI Components: Flipable Example \example declarative/ui-components/flipable + \depends helper/qmlapplicationviewer \brief This example shows how to use the \l Flipable element. + \depends helper/qmlapplicationviewer + \image qml-flipable-example.png */ @@ -742,6 +849,8 @@ \brief This example shows how to create a progress bar. + \depends helper/qmlapplicationviewer + \image qml-progressbar-example.png */ @@ -753,6 +862,8 @@ using the \l {Flickable::visibleArea.xPosition}{Flickable::visibleArea} properties. + \depends helper/qmlapplicationviewer + \image qml-scrollbar-example.png */ @@ -763,6 +874,8 @@ \brief This example shows how to combine TextInput, FocusScope and BorderImage elements to display multiple text input fields. + \depends helper/qmlapplicationviewer + \image qml-searchbox-example.png */ @@ -772,6 +885,8 @@ \brief This example shows how to create a slide switch control. + \depends helper/qmlapplicationviewer + \image qml-slideswitch-example.png */ @@ -781,6 +896,8 @@ \brief This example shows how to create a spinner-type component using the PathView element. + \depends helper/qmlapplicationviewer + \image qml-spinner-example.png */ @@ -793,6 +910,8 @@ \l {Introduction to the QML Language#Default Properties}{default properties} can be used to collect and assemble the child items declared within an \l Item. + \depends helper/qmlapplicationviewer + \image qml-tabwidget-example.png */ @@ -802,6 +921,8 @@ \brief This example shows how to use the \l XmlHttpRequest API in QML. + \depends helper/qmlapplicationviewer + \image qml-xmlhttprequest-example.png */ @@ -809,7 +930,9 @@ \title Labs: Shader Effects \example declarative/shadereffects - This example shows how to create visual effects by using OpenGL shading language together with QML using \l ShaderEffectItem and \l ShaderEffectSource APIs. + \brief This example shows how to create visual effects by using OpenGL shading language together with QML using \l ShaderEffectItem and \l ShaderEffectSource APIs. + + \depends helper/qmlapplicationviewer \image qml-shadereffects-example.png */ diff --git a/doc/src/examples/qml-flickr.qdoc b/doc/src/examples/qml-flickr.qdoc index 65e8e0d..6f59451 100644 --- a/doc/src/examples/qml-flickr.qdoc +++ b/doc/src/examples/qml-flickr.qdoc @@ -31,5 +31,7 @@ \brief The Qt Quick Flickr Mobile demo shows how to write a mobile Flickr browser application in QML. + \depends helper/qmlapplicationviewer + \image qml-flickr-demo.png */ diff --git a/doc/src/examples/qml-folderlistmodel.qdoc b/doc/src/examples/qml-folderlistmodel.qdoc index 609be27..2d73db8 100644 --- a/doc/src/examples/qml-folderlistmodel.qdoc +++ b/doc/src/examples/qml-folderlistmodel.qdoc @@ -31,6 +31,7 @@ \example src/imports/folderlistmodel \brief The FolderListModel plugin example shows how to make a C++ model available to QML. +\depends helper/qmlapplicationviewer It presents a simple file list for a single folder (directory) and allows the presented diff --git a/doc/src/examples/qml-photoviewer.qdoc b/doc/src/examples/qml-photoviewer.qdoc index 40b6372..65b3774 100644 --- a/doc/src/examples/qml-photoviewer.qdoc +++ b/doc/src/examples/qml-photoviewer.qdoc @@ -31,5 +31,7 @@ \brief The Qt Quick Photo Viewer demo shows how to write a Flickr photo viewer application in QML. + \depends helper/qmlapplicationviewer + \image qml-photoviewer-demo.png */ diff --git a/doc/src/examples/qml-rssnews.qdoc b/doc/src/examples/qml-rssnews.qdoc index 76df4e3..8b2691f 100644 --- a/doc/src/examples/qml-rssnews.qdoc +++ b/doc/src/examples/qml-rssnews.qdoc @@ -31,5 +31,7 @@ \brief The Qt Quick RSS News demo shows how to write a RSS news reader in QML. + \depends helper/qmlapplicationviewer + \image qml-rssnews-demo.png */ diff --git a/doc/src/examples/qml-samegame.qdoc b/doc/src/examples/qml-samegame.qdoc index 8b67a49..8c4c75b 100644 --- a/doc/src/examples/qml-samegame.qdoc +++ b/doc/src/examples/qml-samegame.qdoc @@ -32,5 +32,7 @@ \brief The Qt Quick Same Game demo shows how to write a 'Same Game' game in QML, using Javascript for all the game logic. + \depends helper/qmlapplicationviewer + \image qml-samegame-demo.png */ diff --git a/doc/src/examples/qml-twitter.qdoc b/doc/src/examples/qml-twitter.qdoc index 3334370..50495e9 100644 --- a/doc/src/examples/qml-twitter.qdoc +++ b/doc/src/examples/qml-twitter.qdoc @@ -32,5 +32,7 @@ \brief The Qt Quick Twitter Mobile demo shows how to write a mobile Twitter search client in QML. Use it to see what people think about Qt Quick! + \depends helper/qmlapplicationviewer + \image qml-twitter-demo.png */ diff --git a/doc/src/examples/qml-webbrowser.qdoc b/doc/src/examples/qml-webbrowser.qdoc index bdead7f..a130dd7 100644 --- a/doc/src/examples/qml-webbrowser.qdoc +++ b/doc/src/examples/qml-webbrowser.qdoc @@ -33,6 +33,8 @@ WebView element with other components including scroll bars, \l Flickable views and TextInput fields. + \depends helper/qmlapplicationviewer + \image qml-webbrowser-demo.png */ diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc new file mode 100644 index 0000000..0022704 --- /dev/null +++ b/doc/src/platforms/platform-notes.qdoc @@ -0,0 +1,368 @@ +/**************************************************************************** +** +** Copyright (C) 2011 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:FDL$ +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms +** and conditions contained in a signed written agreement between you +** and Nokia. +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \group platform-specific + \title Platform-Specific Documentation + \brief Documents describing platform-specific features of Qt. + + These documents describe platform-specific features provided by Qt, and + discuss issues related to particular platforms and environments. + + \generatelist{related} +*/ + +/*! + \page platform-notes.html + \ingroup platform-specific + \title Platform and Compiler Notes + \brief Information about the platforms on which Qt can be used. + + This page contains information about the platforms Qt is currently known + to run on, with links to platform-specific notes, including any known bugs + or incompatibilities. + + Information about the combinations of platforms and compilers + supported by Qt can be found on the \l{Supported Platforms} page. + + \list + \o \l{Platform and Compiler Notes - Symbian} + \tableofcontents{1 Platform and Compiler Notes - Symbian} + \endlist + +*/ + +/*! + \page platform-notes-symbian.html + \title Platform and Compiler Notes - Symbian + \contentspage Platform and Compiler Notes + \ingroup platform-specific + \brief Information about the state of support for the Symbian platform. + + This page describes implementation details regarding the Qt for Symbian port. To get + started with application development for Symbian devices, read the \l + {http://doc.qt.nokia.com/qtcreator/creator-developing-symbian.html} + {Connecting Symbian Devices} document. + + \section1 Source Compatibility + + Qt for Symbian provides the same level of source compatibility guarantee as + given for other platforms. That is, a program which compiles against a given + version of Qt for Symbian will also compile against all future versions of the + same major release. + + \section1 Binary Compatibility + + As with every supported platform, Qt strives to maintain application + behavior and binary compatibility throughout the lifetime of the Qt 4.x + major version and on the \l {Supported Devices}{Symbian devices that support Qt}. + Symbian support in Qt SDK and Ovi Store were introduced with Qt 4.6. Each Qt + release contains bug fixes that might change the API behavior and thereby + affect application compatibility. + + In addition, Symbian devices have different input methods, such as different + keyboard styles or touch input, screen sizes, memory, and CPU and GPU + capabilities. Therefore, you must test applications on specific target + devices to ensure compatibility. In order to build applications that are + supported also on earlier devices, select the target in Qt SDK carefully. + Generally, an earlier target (such as S60 5th Edition) is supported on a + larger number of devices than a later target (such as Symbian Belle). + + \target Supported Devices + \section1 Supported Devices + + The \l {http://developer.qt.nokia.com/wiki/support_for_Symbian}{Support for Symbian} document + details the Qt support on different Symbian devices. + + The \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian#Supported_Devices} + {Nokia Smart Installer for Symbian} document lists how Qt is supported on + different Symbian devices through Smart Installer. + + Qt versions are supported by Symbian devices as follows: + \list + \o Qt 4.6 is supported by S60 3rd Edition feature pack 1 and newer devices + through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}. + \o Qt 4.7.3 is supported by S60 5th Edition and newer devices + through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}. + \endlist + + Symbian devices have a pre-installed Qt support as follows: + \list + \o Symbian Anna: Qt 4.7.3 in C: drive. Note that Qt 4.7.4 is supported in Symbian Anna + through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}. + \o Symbian Belle: Qt 4.7.4 in device firmware (ROM). + \endlist + + + \section1 Functionality Support + + The following technologies and classes are not supported: + \list + \o QtConcurrent + \o QtDBus + \o \l {http://doc.qt.nokia.com/4.8/printing.html}{Printing support} + \o Qt3Support + \endlist + + The following technologies have limited support: + + + \table + \header \o Module + \o Note + \row \o QtSql + \o The supported drivers are SQLite and QSYMSQL. + \row \o QtMultimedia + \o For support details see \l {Multimedia Support} section. + \row \o QtGui + \o QtGui's widgets are deprecated (i.e. they are available but not + recommended to use) in the Symbian port. It is recommended to use \l + {http://doc.qt.nokia.com/qt-components-symbian-1.1/symbian-components-functional.html} + {Qt Quick Components for Symbian} instead, because they provide + better look and feel on Symbian devices. + + Moreover, the following classes of QtGui \bold {should not + be used} in a Symbian application: + + \list + \o QFileDialog with the \c DontUseNativeDialog option + \o QColorDialog with the \c DontUseNativeDialog option + \o QFontDialog + \o QWizard + \o QCalendarWidget + \o QDateTimeEdit + \o QMdiArea + \o QDockWidget + \o QMdiSubWindow + \o QPrintPreviewWidget + \endlist + + QScrollArea: The scrolling and focus handling of QScrollArea's all + scrollable widgets, for example QListView, differs from native Avkon + list widgets' one. Native Avkon scrollable components support + touch-gesture-based scrolling by dragging and flicking the UI + component but this functionality is not implemented in Qt widgets. + Scrolling by dragging and flicking works also in Qt Quick Components + that implements the \l + {http://www.developer.nokia.com/Resources/Library/Symbian_Design_Guidelines/} + {Symbian design guidelines}. + + \endtable + + \section1 Compiler Notes + + For the application development the necessary compiler toolchain is included in \l + {http://qt.nokia.com/downloads}{Qt SDK}. For instructions compiling Qt + itself see the \l + {http://doc.qt.nokia.com/stable/install-symbian.html} + {Installing Qt for the Symbian platform} document. + + \section1 Known Issues + + Known issues can be found by visiting the + \l{http://qt.gitorious.org/qt/pages/QtKnownIssues}{wiki page} with an + up-to-date list of known issues, and the list of bugs can be found by + \l{http://bugreports.qt.nokia.com/browse/QTBUG/component/19171}{browsing} the + S60 component in Qt's public task tracker, located at + \l{http://bugreports.qt.nokia.com/}{http://bugreports.qt.nokia.com/}. + + For information about mixing exceptions with Symbian leaves, see + \l{Exception Safety with Symbian}. + + \section1 Required Capabilities + + The Qt libraries are typically signed with \c{All -TCB} capabilites but + that does not mean your Qt application needs to be signed with the same + capabilities to function properly. The capabilities your application needs + to function properly depends on which parts of Qt you use. + In a Qt application Symbian capabilities are defined in the + \l {http://doc.qt.nokia.com/4.8/qmake-variable-reference.html#target-capability} + {TARGET.CAPABILITY} qmake variable in the project file. + Here is an overview for which capabilities may be needed when using different modules: + + \table + \header \o Module + \o Required Symbian Capability + \row \o QtCore + \o \c PowerMgmt if QProcess::kill(...) or QProcess::terminate(...) is called. + \row \o QtCore + \o \c AllFiles when \l{http://wiki.forum.nokia.com/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.} + \row \o QtDeclarative + \o \c NetworkServices is automatically added for this module if no capabilities are explicitly specified. + \row \o QtNetwork + \o \c NetworkServices is automatically added for this module if no capabilities are explicitly specified. + \row \o QtNetwork + \o \c ReadUserData is required to include all the phone's SSL certificates in the system's default CA certificate list + (for example those added by the user or stored in the SIM card), + without this capability only the CA certs built into the phone are used. + \row \o QtMultimedia + \o \c UserEnvironment if QAudioInput is used. + \row \o QtWebKit + \o \c NetworkServices is automatically added for this module if no capabilities are explicitly specified. + \endtable + + \note Some modules rely on other modules. E.g. QtWebkit and QtDeclarative + depend on QtNetwork and therefore any application that + depends on these modules is also likely to need \c NetworkServices capability. + + For more information see the documentation of the individual Qt classes. If + a class does not mention Symbian capabilities, it requires none. + + \target Multimedia Support + \section1 Multimedia Support + + Qt Mobility provides a high-level API for multimedia functionality with + \l{http://doc.qt.nokia.com/qtmobility/multimedia.html}{QtMultimediaKit}. + In addition, Qt provides the low-level \l {QtMultimedia}{QtMultimedia} + module that is internally used by the QtMultimediaKit. For more information + on developing multimedia applications for Symbian devices, see + \l {http://www.developer.nokia.com/info/sw.nokia.com/id/4abf12e7-72d8-45ef-b1a2-46184abe18ba/Guide_for_Qt_Multimedia_Developers.html} + {Guide for Qt Multimedia Developers}. + + Moreover, there is a third multimedia-related module called Phonon. Qt + provides two backends for the Phonon module in Symbian: \i MMF and \i Helix. + + Note that Phonon is a legacy module and the QtMultimediaKit module is + replacing Phonon in Qt 5. Although Phonon is supported in Symbian for + backwards compatibility and there is no plan to remove Phonon from Symbian + any new applications should use QtMultimediaKit in Symbian using Qt 4.7 + bundle. The QtMultimediaKit feature set is comparable to that in Phonon. + + The following applies to Phonon: + \list + \o MMF Phonon backend supports video and sound playback through Symbian's + Multimedia Framework, MMF. Phonon's video playback may show artifacts when + the video is moved or resized (for instance, during device orientation + changes from portrait to landscape and vice versa). This problem is present + on S60 5th Edition and earlier versions, as well as in Symbian Anna devices. + \o The audio and video formats that Phonon supports depends on what support + the platform provides for MMF. The emulator is known to have limited + codec support. + \o In addition, there exists a backend for the Helix framework. However, since + it is not shipped with Qt, its availability depends on the Symbian platform + in use. If the MFF plugin fails to load, the Helix plugin, if present on the + device, will be loaded instead. + \endlist + + \section1 Hardware Accelerated Rendering + + The default graphics system on Symbian Anna is OpenVG, which uses OpenVG + hardware to accelerate \l QPainter functions. There are a few exceptions, + where Qt will use software rendering fallback. + + Devices like the N8 and C7 only have 32Mb of GPU memory and limited support + for EGL surface transparency. These devices can be identified by querying + the\c GL_RENDERER or \c VG_RENDERER string which evaluates to \c {VideoCore III}. + On these devices, Qt will use software rendering in cases listed below. + + \list + \o Translucent windows + \o Dialogs + \o Popups + \endlist + + \section1 OpenGL Support in Symbian + + Qt 4.7 introduces the \l {QtOpenGL} module. QtOpenGL is + supported on devices which support OpenGL ES 2.0. Symbian platforms prior + to Symbian Anna (and Symbian^3) are not supported. + + \l QGLWidget usage as a \l QGraphicsView viewport is not recommended on + Symbian. The OpenVG graphics system is not able to manage OpenGL graphics + resources. Also, a QGLWidget object is not able to release its GPU resources + when the application goes to the background. If OpenGL functionality is + needed, \l { http://doc.qt.nokia.com/4.7-snapshot/qapplication.html#setGraphicsSystem} + {OpenGL graphics system} usage is recommended. If an application + decides to use QGLWidget, then it is the application's responsibility to + destroy and release QGLWidget and related OpenGL resources when the + application goes to the background. Otherwise, the \l{Graphics Out Of Memory monitor} + may decide to kill the application as it consumes GPU resources while in the + background. + + \note \l QGLBuffer, \l QGLFramebufferObject, \l QGLPixelBuffer, \l + QGLShader, and \l QGLShaderProgram are direct GPU resources and it is the + application's responsibility to manage them. + + \section1 UI Performance in S60 3rd and 5th Edition Devices + + Qt uses the QPainter class to perform low-level painting on widgets and + other paint devices. QPainter provides functions to draw complex shapes, + aligned text and pixmaps. It can also do vector path clipping, coordinate + transformations and Porter-Duff composition. If the underlying graphics + architecture does not support all of these operations then Qt uses the + raster graphics system for rendering. + + In Symbian Anna (and Symbian^3) Qt uses hardware accelerated graphics as explained above. + This is enabled by \l + {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html} + {ScreenPlay Graphics Architecture} in these devices. + + Most of the Symbian S60 3rd and 5th Edition devices have a + graphics architecture that does not have native support for all functions + provided by QPainter. In these \l + {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html} + {non-ScreenPlay} devices Qt uses the raster + graphics system by default that has a performance penalty compared + to native Symbian rendering. + + In order to be able to perform all functions provided by QPainter, the + raster graphics system needs to have pixel level framebuffer access. To + make this possible in non-ScreenPlay devices Qt has to create an + additional offscreen buffer that is the target for all Qt rendering + operations. Qt renders the widget tree to the offscreen buffer and the + offscreen buffer is blitted to the framebuffer via Symbian Window Server. + + The following table shows the rendering stacks of native Symbian and Qt in + \l {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html} + {non-ScreenPlay devices}. + + \table + \header \o Symbian + \o Qt + \row \o \image symbian-rendering-stack-non-screenplay.png + \o \image symbian-qt-rendering-stack-non-screenplay.png + \endtable + + The following diagrams show a simplified sequence of drawing a pixmap in + a non-ScreenPlay device. + + \table + \header \o Symbian + \row \o \image symbian-draw-pixmap-sequence.png + \endtable + + \table + \header \o Qt + \row \o \image symbian-qt-draw-pixmap-sequence.png + \endtable + + When compared to a native Symbian application, Qt does an additional blit + to the offscreen buffer before drawing to the framebuffer. That is the + performance penalty which needs to be paid to get all functionality + provided by QPainter in non-ScreenPlay architecture. +*/ + diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc index 55ba94b..f69bddb 100644 --- a/doc/src/platforms/supported-platforms.qdoc +++ b/doc/src/platforms/supported-platforms.qdoc @@ -355,6 +355,93 @@ */ /*! + \page symbian-support.html + \title Support for Symbian + \brief Platform support for Symbian. + \ingroup platform-specific + \ingroup platform-details + + \section1 Qt on Symbian + + Qt provides support for the Symbian platform with integration + to the S60 framework. If you are developing apps for the Symbian, + Maemo or MeeGo platforms in most cases, you can use Qt under the + free LGPL licensing option. Qt is cross-platform, and that means + that you can use the code from one single code-base and rebuild + for all \l{Supported Platforms}{supported platforms}. + + \section1 Getting Started on Symbian + + \list + \o \l{Supported Platforms}{Supported platform} + - Details on the Qt support for Symbian. + \o \l{Qt for the Symbian platform Requirements}{Qt for the + Symbian platform Requirements} - Software required to run Qt + on Symbian. + \o \l{Installing Qt for the Symbian platform}{Installing Qt + for the Symbian platform} - Build Qt for Symbian development. + \o \l{Platform and Compiler Notes - Symbian}{Platform Notes - Symbian} + - Platform specific notes. + \o \l{Getting Started Guides}{Getting started} + \o \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian} + - provides a QML component set for the Symbian^3 platform + \endlist + + \section1 Key Features for Symbian Development + + On top of all the tools and the API and class libraries that Qt + offers, Qt provides you with added functionality for an optimized + Symbian development experience. + + \section2 Native Look and Feel + + Qt will detect which theme the phone is running and applies the + style at runtime to your Qt application. The look and feel of your + applications can also be easily customized in a fraction of the + time and lines of code required for traditional UI styling with + Qt Style Sheets. + + The \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian 1.1} + provides a native QML component set. + + \section2 Graphics Features + + Qt for Symbian contains a powerful paint engine that provides + features such as anti, aliasing, gradients, curves and transparency. + It also has animation support with timelines and easing curves. It + is already targeting future device technology by supporting hardware + acceleration using OpenVG. + + \section2 Device Configurations + + Using Qt for Symbian all supported Symbian devices provides automatic + support for swiching between landscape and portrait mode, different + screen resolutions as well as touch screen and key pad input. + + \section2 Cross-Platform Development using Qt Creator + + \l{http://doc.qt.nokia.com/qtcreator-snapshot/index.html}{Qt Creator} is + a complete Cross-platform IDE included in the Qt SDK. The IDE allows + programmers to create, build, debug and run Qt applications accross all + supported platforms. + + \section3 Licensing + + Qt for Symbian is available under the Qt Commercial License, the LGPL + v. 2.1 "LGPL") and the GPL v. 3.0. Symbian currently licenses their + software products under either the Symbian Foundation License or the + Eclipse Public License ("EPL"). While the LGPL and the EPL are not + compatible and may not be combined on a file-by-file basis, they may + be used in a common environment provided that the interaction between + Qt and Symbian is limited to: dynamic linking, inter-process + communication and data exchange. Therefore, most Symbian developers + can use Qt for Symbian under the LGPL. + + Additional \l{Cross-Platform and Platform-Specific Development} + information. + +*/ +/*! \page supported-platforms.html \title Supported Platforms \brief The platforms supported by Nokia for Qt. @@ -373,12 +460,13 @@ \o {2,1} Qt Cross Platform Support \header \o {1,1} Desktop - \o {1,1} Embedded + \o {1,1} Embedded/Mobile \row \o \l{Support for Windows}{Windows} \o \l{Support for Embedded Linux}{Embedded Linux} \row \o \l{Support for Linux/X11}{Linux/X11} + \o \l{Support for Symbian}{Symbian} \row \o \l{Support for Mac OS X}{Mac OS X} \endtable @@ -442,6 +530,12 @@ \o As provided by Ubuntu \row \o Ubuntu Linux 10.04 (32-bit) \o Intel Compiler [version 12] + \row \o Ubuntu Linux 10.04 (64-bit) + \o As provided by Ubuntu + \row \o Microsoft Windows XP SP3 (32-bit) + \o GCC 4.4 (MinGW) + \row \o Microsoft Windows 7 (64-bit) + \o MSVC 2010 SP1 \row \o Apple Mac OS X 10.6 "Snow Leopard" Cocoa (32-bit) \o As provided by Apple \endtable diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index 01103a8..ce1726d 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -558,7 +558,14 @@ Qt 4.8 introduces changes to the Qt API. \list + \o C++11 support: + Qt supports some of the features of the C++11 standard. QList, QVector and + QStringList can be initialized with initializer lists. Most of the tool + classes have a move operator. It is possible to use lambda functions in some + of the QtConcurrent functions. + \o Localization API + Changes to the Localization APIs include improvements to \l QLocale and more support for different language code formats. @@ -579,6 +586,7 @@ \endlist \o IP Multicast API \o Multithreaded HTTP + \o QThreadLocalStorage can now store simple objects in addition to pointers \endlist \section1 New Classes, Functions, Macros, etc. |