diff options
| author | Sergio Ahumada <sergio.ahumada@nokia.com> | 2011-10-03 19:14:27 (GMT) |
|---|---|---|
| committer | Sergio Ahumada <sergio.ahumada@nokia.com> | 2011-10-03 19:14:27 (GMT) |
| commit | 7acc1316fa4dd32a81bdf185656cb97d6f3fbf11 (patch) | |
| tree | e332d1362eef0b26778314bd34496390d5cecbfa /doc/src | |
| parent | 9e88a2f1468b9a4f500b878f514db7f7a1f5eadc (diff) | |
| parent | 06c23ac8a6d03af3b9674c8c7850560a0973b2fb (diff) | |
| download | Qt-7acc1316fa4dd32a81bdf185656cb97d6f3fbf11.zip Qt-7acc1316fa4dd32a81bdf185656cb97d6f3fbf11.tar.gz Qt-7acc1316fa4dd32a81bdf185656cb97d6f3fbf11.tar.bz2 | |
Merge remote-tracking branch 'upstream/4.8'
Diffstat (limited to 'doc/src')
23 files changed, 469 insertions, 106 deletions
diff --git a/doc/src/classes/phonon-api.qdoc b/doc/src/classes/phonon-api.qdoc index 95e20dd..d1b26f6 100644 --- a/doc/src/classes/phonon-api.qdoc +++ b/doc/src/classes/phonon-api.qdoc @@ -5131,6 +5131,30 @@ */ /*! + \class Phonon::GlobalConfigPrivate + \inmodule Phonon + \internal +*/ + +/*! + \class Phonon::AudioDataOutputPrivate + \inmodule Phonon + \internal +*/ + +/*! + \class Phonon::AudioDataOutputInterface + \inmodule Phonon + \internal +*/ + +/*! + \class Phonon::SwiftSlider + \inmodule Phonon + \internal +*/ + +/*! \fn Phonon::GlobalConfigPrivate::GlobalConfigPrivate() \internal */ diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc index 41b04e8..e93e539 100644 --- a/doc/src/declarative/anchor-layout.qdoc +++ b/doc/src/declarative/anchor-layout.qdoc @@ -53,7 +53,12 @@ Rectangle { id: rect1; ... } Rectangle { id: rect2; anchors.left: rect1.right; ... } \endcode -In this case, the left edge of \e rect2 is bound to the right edge of \e rect1, producing the following: +Each Item has two properties for each anchor line: one to bind from and one to bind to. The properties to bind +from are contained in the \l{Item::}{anchors} attached property (seen as \c {anchors.left} above). +The properties to bind to are normal properties (seen as \c {rect1.right} above). +This way, each item can have several bindings to the same anchor line. Note that the properties to bind to are +not visible in the documentation for Item. +So in the example above, the left edge of \e rect2 is bound to the right edge of \e rect1, producing the following: \image edge1.png diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc index 80d83a4..efca620 100644 --- a/doc/src/declarative/modules.qdoc +++ b/doc/src/declarative/modules.qdoc @@ -407,7 +407,7 @@ In case you have to create a qmltypes file manually or need to adjust an existing one, this is the file format: \qml -import QtQuick.tooling 1.0 +import QtQuick.tooling 1.1 // There always is a single Module object that contains all // Component objects. @@ -454,6 +454,8 @@ Module { isPointer: true // defaults to false: whether the type actually is a QDeclarativeListProperty<type> isList: true + // defaults to 0: the minor version that introduced this property + revision: 1 } Property { name: "loops"; type: "int" } Property { name: "name"; type: "string" } @@ -471,7 +473,7 @@ Module { // declarations also support the isReadonly, isPointer and isList // attributes which mean the same as for Property Method { name: "restart" } - Signal { name: "started" } + Signal { name: "started"; revision: 2 } Signal { name: "runningChanged" Parameter { type: "bool" } diff --git a/doc/src/declarative/network.qdoc b/doc/src/declarative/network.qdoc index cb83542..0ebf8ae 100644 --- a/doc/src/declarative/network.qdoc +++ b/doc/src/declarative/network.qdoc @@ -134,10 +134,9 @@ One of the URL schemes built into Qt is the "qrc" scheme. This allows content to the executable using \l{The Qt Resource System}. Using this, an executable can reference QML content that is compiled into the executable: -\code - QDeclarativeView *canvas = new QDeclarativeView; - canvas->setUrl(QUrl("qrc:/dial.qml")); -\endcode +\quotefromfile snippets/declarative/qtbinding/resources/main.cpp +\skipto view +\printuntil setSource The content itself can then use relative URLs, and so be transparently unaware that the content is compiled into the executable. diff --git a/doc/src/declarative/qdeclarativestates.qdoc b/doc/src/declarative/qdeclarativestates.qdoc index 55f38c3..9857894 100644 --- a/doc/src/declarative/qdeclarativestates.qdoc +++ b/doc/src/declarative/qdeclarativestates.qdoc @@ -133,4 +133,26 @@ The \l {declarative/animation/states}{States and Transitions example} demonstrates how to declare a basic set of states and apply animated transitions between them. +\l{Using QML Behaviors with States} explains a common problem when using Behaviors +to animate state changes. + +\section1 State Fast Forwarding + +In order for Transition to correctly animate state changes, it is sometimes necessary +for the engine to fast forward and rewind a state (that is, internally set and unset the state) +before it is finally applied. The process is as follows: + +\list 1 +\o The state is fast forwarded to determine the complete set of end values. +\o The state is rewound. +\o The state is fully applied, with transitions. +\endlist + +In some cases this may cause unintended behavior. For example, a state that changes +a view's \i model or a Loader's \i sourceComponent will set these properties +multiple times (to apply, rewind, and then reapply), which can be relatively expensive. + +State fast forwarding should be considered an implementation detail, +and may change in later versions. + */ diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 0d99287..e342728 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -511,12 +511,16 @@ the \l {Extending QML Functionalities using C++} reference documentation for more information. -\section2 Using Enumeration Values as Signal Parameters +\section2 Using Enumeration Values as Signal and Method Parameters C++ signals may pass enumeration values as signal parameters to QML, providing that the enumeration and the signal are declared within the same class, or that the enumeration value is one of those declared in the \l {Qt}{Qt Namespace}. +Likewise, invokable C++ methods parameters may be enumeration values providing that the enumeration and +the method are declared within the same class, or that the enumeration value is one of those declared in the +\l {Qt}{Qt Namespace}. + Additionally, if a C++ signal with an enum parameter should be connectable to a QML function using the \l{QML Signal and Handler Event System#Connecting Signals to Methods and Signals}{connect()} function, the enum type must be registered using qRegisterMetaType(). diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc index a13e2b8..ecb9ec6 100644 --- a/doc/src/deployment/deployment.qdoc +++ b/doc/src/deployment/deployment.qdoc @@ -102,15 +102,16 @@ of the libraries used by the application. Using static linking, however, the Qt run-time is compiled into the executable. - In general, you should deploy all plugins that your build of Qt uses, - excluding only those that you have identified as being unnecessary - for your application and its users. + In general, you should \l{Deploying Plugins}{deploy all plugins} + that your build of Qt uses, excluding only those that you have + identified as being unnecessary for your application and its users. For instance, you may need to deploy plugins for JPEG support and SQL drivers, but you should also deploy plugins that your users may require, including those for accessibility. - For more information about plugins, see the - \l{plugins-howto.html}{How to Create Qt Plugins} documentation. + For more information about plugins, see + \l{plugins-howto.html}{How to Create Qt Plugins} and + \l{Deploying Plugins}. When deploying an application using the shared library approach you must ensure that the Qt libraries will use the correct path to @@ -501,7 +502,8 @@ The \l{How to Create Qt Plugins} document outlines the issues you need to pay attention to when building and deploying plugins for - Qt applications. + Qt applications. More information about deployment can be found in + \l{Deploying Plugins}. */ /*! diff --git a/doc/src/deployment/qt-conf.qdoc b/doc/src/deployment/qt-conf.qdoc index 2f68f3d..5204cc6 100644 --- a/doc/src/deployment/qt-conf.qdoc +++ b/doc/src/deployment/qt-conf.qdoc @@ -48,7 +48,7 @@ \o \c :/qt/etc/qt.conf using the resource system - \o on Mac OS X, in the Resource directory inside the appliction + \o on Mac OS X, in the Resource directory inside the application bundle, for example \c assistant.app/Contents/Resources/qt.conf \o in the directory containing the application executable, i.e. diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc index 184a881..0f85469 100644 --- a/doc/src/development/qmake-manual.qdoc +++ b/doc/src/development/qmake-manual.qdoc @@ -1184,6 +1184,10 @@ Any rules you define will be added after automatically generated rules in each section. + \note Content specified using \c BLD_INF_RULES is inserted as-is into the \c bld.inf + file, so any rules that specify host side paths may not work correctly when doing + a shadow build. + \target CONFIG \section1 CONFIG @@ -1521,6 +1525,10 @@ override languages statement, you must override also package-header statement and all other statements which are language specific. + \note Custom deployments specified using \c pkg_postrules are inserted + as-is into the \c PKG file, so any rules that specify host side paths may not + work correctly when doing a shadow build. + On the Symbian platform, three separate PKG files are generated: \list @@ -1911,6 +1919,10 @@ \c TARGET.EPOCSTACKSIZE. Doing so could result in duplicate statements in the MMP file. + \note Content specified using \c MMP_RULES is inserted as-is into the \c MMP + file, so any rules that specify host side paths may not work correctly when doing + a shadow build. + \target MOC_DIR \section1 MOC_DIR @@ -3116,6 +3128,23 @@ platform application shell. In addition it will make the application to be launched in background. + From S60 version 5.4 onwards, you can specify \c graphics_memory value using \c RSS_RULES + to specify the graphics memory quota for the application. The value is in kilobytes and + defaults to 24576 (i.e. 24MB) for applications that link against QtGui. The default for all + other applications is zero. + + The graphics memory quota tells the operating system how much graphics memory the + application is likely to need so that it can free up enough graphics memory prior to + application launch. If the value is too small, it can cause random slowdowns later when + the memory is freed on on-demand basis. On the other hand, too large values can delay + the application launch unnecessarily. + + For example: + + \snippet doc/src/snippets/code/doc_src_qmake-manual.pro 159 + + This example sets the graphics memory quota to 12MB. + For detailed list of possible \c APP_REGISTRATION_INFO statements, please refer to the Symbian platform help. @@ -3234,6 +3263,29 @@ \snippet doc/src/snippets/code/doc_src_qmake-manual.pro 150 + \section2 Ordered Targets and Visual Studio Solution Files + + The \c ordered option is not supported for Visual Studio. The following list describes how + you can get around without it--dependencies are generated automatically if: + + \list + \o 1a) There is a Lib/DLL project of which TARGET (the .lib is used and not the .dll) + is used on the link line of another project in your solution (you can modify the link + line with LIBS). + + \o 1b) There is an Exe project of which TARGET is used in a custom + build-step of another project in your solution. + + \o 2) You don't use paths in the TARGET variable (use DESTDIR/DLLDESTDIR for that), + e.g, TARGET=$(SOME_VARIABLE)/myLib, won't work. + + \o 3) If you have a special location for your libs, you specify the -Lmy/library/path and + LIBS += mylib, instead of just using LIBS += my/library/path/mylib + + \o 4) The leaf projects are created before you generate the solution file. (You can use the + recursive flag for qmake to do this, like "qmake -tp vc -r [yourproject.pro]" + \endlist + \target SYMBIAN_VERSION \section1 SYMBIAN_VERSION diff --git a/doc/src/examples/addressbook.qdoc b/doc/src/examples/addressbook.qdoc index 114c22b..f19582d 100644 --- a/doc/src/examples/addressbook.qdoc +++ b/doc/src/examples/addressbook.qdoc @@ -29,7 +29,7 @@ \example itemviews/addressbook \title Address Book Example - The address book example shows how to use proxy models to display + \brief The address book example shows how to use proxy models to display different views onto data from a single model. \image addressbook-example.png Screenshot of the Address Book example diff --git a/doc/src/examples/codeeditor.qdoc b/doc/src/examples/codeeditor.qdoc index 435f650..1718d52 100644 --- a/doc/src/examples/codeeditor.qdoc +++ b/doc/src/examples/codeeditor.qdoc @@ -194,4 +194,30 @@ with QSyntaxHighlighter" article in Qt Quarterly 31 implements this. You find it here: \l{http://doc.qt.nokia.com/qq/}. + The line number area is now painted every time the cursor blinks + (because we connect \l{QPlainTextEdit::}{updateRequest()} to + \c updateLineNumberArea()). We can avoid this by introducing a new + member variable to CodeEditor that keeps track of when the update + request comes from a cursor blink (in which case we do not + repaint). The code below requires the \c m_countCache variable, + which is a QPair<int, int> initialized with \c -1 for both + \l{QPair::}{first} and \l{QPair::}{second}. + + \code + void CodeEditor::updateLineNumberArea(const QRect &rect, int dy) + { + if (dy) { + lineNumberArea->scroll(0, dy); + } else if (m_countCache.first != blockCount() + || m_countCache.second != textCursor().block().lineCount()) { + lineNumberArea->update(0, rect.y(), lineNumberArea->width(), rect.height()); + m_countCache.first = blockCount(); + m_countCache.second = textCursor().block().lineCount(); + } + + if (rect.contains(viewport()->rect())) + updateLineNumberAreaWidth(0); + } + \endcode */ + diff --git a/doc/src/examples/stardelegate.qdoc b/doc/src/examples/stardelegate.qdoc index 3b009d5..ed3ae7e 100644 --- a/doc/src/examples/stardelegate.qdoc +++ b/doc/src/examples/stardelegate.qdoc @@ -42,12 +42,12 @@ editing takes place. Delegates are subclasses of QAbstractItemDelegate. Qt provides - QItemDelegate, which inherits QAbstractItemDelegate and handles - the most common data types (notably \c int and QString). If we - need to support custom data types, or want to customize the + QStyledItemDelegate, which inherits QAbstractItemDelegate and + handles the most common data types (notably \c int and QString). + If we need to support custom data types, or want to customize the rendering or the editing for existing data types, we can subclass - QAbstractItemDelegate or QItemDelegate. See \l{Delegate Classes} - for more information about delegates, and \l{Model/View + QAbstractItemDelegate or QStyledItemDelegate. See \l{Delegate + Classes} for more information about delegates, and \l{Model/View Programming} if you need a high-level introduction to Qt's model/view architecture (including delegates). @@ -62,9 +62,9 @@ expressed as stars, such as "2 out of 5 stars" or "5 out of 6 stars". - \o \c StarDelegate inherits QItemDelegate and provides support + \o \c StarDelegate inherits QStyledItemDelegate and provides support for \c StarRating (in addition to the data types already - handled by QItemDelegate). + handled by QStyledItemDelegate). \o \c StarEditor inherits QWidget and is used by \c StarDelegate to let the user edit a star rating using the mouse. @@ -80,20 +80,20 @@ \snippet examples/itemviews/stardelegate/stardelegate.h 0 All public functions are reimplemented virtual functions from - QItemDelegate to provide custom rendering and editing. + QStyledItemDelegate to provide custom rendering and editing. \section1 StarDelegate Class Implementation - The \l{QAbstractItemDelegate::}{paint()} function is - reimplemented from QItemDelegate and is called whenever the view - needs to repaint an item: + The \l{QAbstractItemDelegate::}{paint()} function is reimplemented + from QStyledItemDelegate and is called whenever the view needs to + repaint an item: \snippet examples/itemviews/stardelegate/stardelegate.cpp 0 The function is invoked once for each item, represented by a QModelIndex object from the model. If the data stored in the item is a \c StarRating, we paint it ourselves; otherwise, we let - QItemDelegate paint it for us. This ensures that the \c + QStyledItemDelegate paint it for us. This ensures that the \c StarDelegate can handle the most common data types. In the case where the item is a \c StarRating, we draw the diff --git a/doc/src/getting-started/gettingstartedqt.qdoc b/doc/src/getting-started/gettingstartedqt.qdoc index eda5ee1..d37e8e0 100644 --- a/doc/src/getting-started/gettingstartedqt.qdoc +++ b/doc/src/getting-started/gettingstartedqt.qdoc @@ -38,6 +38,12 @@ documentation, and find the information you need for the application you are developing. + The code for this tutorial is available in \c + {examples/tutorials/gettingStarted/gsQt} under your Qt + installation. If you are using the Qt SDK, you will find it in + \c{Examples/4.7/tutorials/gettingStarted/gsQt} (change \c{4.7} if + you are using a later Qt version). + \section1 Hello Notepad In this first example, we simply create and show a text edit in a @@ -139,28 +145,28 @@ Let us take a look at the code. \code - 1 #include <QtGui> - 2 - 3 int main(int argv, char **args) - 4 { - 5 QApplication app(argv, args); - 6 - 7 QTextEdit textEdit; - 8 QPushButton quitButton("Quit"); - 9 -10 QObject::connect(&quitButton, SIGNAL(clicked()), qApp, SLOT(quit())); -11 -12 QVBoxLayout layout; -13 layout.addWidget(&textEdit); -14 layout.addWidget(&quitButton); -15 -16 QWidget window; -17 window.setLayout(&layout); -18 -19 window.show(); -20 -21 return app.exec(); -22 } + 1 #include <QtGui> + 2 + 3 int main(int argv, char **args) + 4 { + 5 QApplication app(argv, args); + 6 + 7 QTextEdit *textEdit = new QTextEdit; + 8 QPushButton *quitButton = new QPushButton("&Quit"); + 9 +10 QObject::connect(quitButton, SIGNAL(clicked()), qApp, SLOT(quit())); +11 +12 QVBoxLayout *layout = new QVBoxLayout; +13 layout->addWidget(textEdit); +14 layout->addWidget(quitButton); +15 +16 QWidget window; +17 window.setLayout(layout); +18 +19 window.show(); +20 +21 return app.exec(); +22 } \endcode Line 1 includes QtGui, which contains all of Qt's GUI classes. @@ -278,9 +284,25 @@ visible strings. This function is necessary when you want to provide your application in more than one language (e.g. English and Chinese). We will not go into details here, but you can follow - the \c {Qt Linguist} link from the learn more table. We will not - look at the implementation of \c quit() slot and the \c main() - function, but you can check out the source code if you want to. + the \c {Qt Linguist} link from the learn more table. + + Here is the \c quit() slot: + + \code +75 void Notepad::quit() +76 { +77 QMessageBox messageBox; +78 messageBox.setWindowTitle(tr("Notepad")); +79 messageBox.setText(tr("Do you really want to quit?")); +80 messageBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); +81 messageBox.setDefaultButton(QMessageBox::No); +82 if (messageBox.exec() == QMessageBox::Yes) +83 qApp->quit(); +84 } + \endcode + + We use the QMessageBox class to display a dialog that asks the + user whether he/she really wants to quit. \section2 Learn More diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc index 36d63f5..2936d60 100644 --- a/doc/src/getting-started/installation.qdoc +++ b/doc/src/getting-started/installation.qdoc @@ -510,7 +510,10 @@ in the \l{Qt for the Symbian platform Requirements} document. \section1 Step 1: Install Qt - Run \c{qt-symbian-opensource-%VERSION%.exe} and follow the instructions. + Download the \c {Qt libraries 4.x for Windows} package (for \c minGW or \c {VS 2008}) + from the \l {http://qt.nokia.com/downloads#qt-lib}{downloads} page. + + Run the downloaded package and follow the instructions. \note Qt must be installed on the same drive as the Symbian SDK you are using, and the install path must not contain any spaces. @@ -652,23 +655,39 @@ Binary Package} document. Congratulations, Qt is now ready to use. \section1 Step 7: Installing Qt Libraries on the Device + + To run a Qt application on a device, it must have Qt libraries installed. + + Symbian devices have a pre-installed Qt as follows: + \list + \o Symbian Anna devices have the pre-installed Qt, Qt Mobility, and Qt Webkit. + \o Symbian Belle and later devices have the pre-installed Qt on the device firmware. + \endlist + + \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian} + {Nokia Smart Installer for Symbian} deploys the required Qt libraries to supported S60 + and Symbian devices if the libraries are not pre-installed. + + Nokia Developer site's \l {http://www.developer.nokia.com/Devices/Device_specifications/?filter1=qt} + {Device specifications} provide information on which devices have a + pre-installed Qt and the used Qt version. + + To create your own Qt installation package, do as follows: + + \snippet doc/src/snippets/code/doc_src_installation.qdoc 29 + + The Qt libraries are built with "All -Tcb" capability, so they can support + all types of applications. If you don't have a suitable certificate, you can + patch the binaries in either of the following ways: + + \list + \o If you have no certificate, build a self-signed Qt: + \snippet doc/src/snippets/code/doc_src_installation.qdoc 34 - To run the demo on a real device, you first have to install - the Qt libraries on the device: - -\snippet doc/src/snippets/code/doc_src_installation.qdoc 29 - - The Qt libraries are built with "All -Tcb" capability, so that - they can support all types of application. - If you don't have a suitable certificate, it is possible to patch - the binaries as follows: - - If you have no certificate, build a self signed Qt: -\snippet doc/src/snippets/code/doc_src_installation.qdoc 34 - - If you have a symbian-signed developer certificate, specify the + \o If you have a symbian-signed developer certificate, specify the capabilities you can sign for, for example: -\snippet doc/src/snippets/code/doc_src_installation.qdoc 35 + \snippet doc/src/snippets/code/doc_src_installation.qdoc 35 + \endlist \section1 Running Qt demos @@ -1315,7 +1334,12 @@ We hope you will enjoy using Qt. \brief Setting up the Symbian platform environment for Qt. \previouspage General Qt Requirements - Qt for the Symbian platform requires the following software installed on your development PC: + \l {http://qt.nokia.com/downloads}{Qt SDK} provides all the necessary tools + and libraries for developing Qt applications. However, if you want to build + Qt itself for Symbian, follow the instructions below. + + Qt for the Symbian platform requires the following software installed on + your development PC: \list \o \l{http://www.forum.nokia.com/Library/Tools_and_downloads/Other/Carbide.c++/}{Carbide.c++ v2.3.0 or higher recommended}. \list diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index af418e0..9680aa2 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -38,7 +38,9 @@ \list \o \l{Qt Features Overview} \o \l{How to Learn Qt} - \o \l{Introduction to Qt Quick} + \o \l{Introduction to Qt Quick}{Qt Quick} + \o \l{Qt Whitepaper}{Qt C++ Framework} + \o \l{Introduction to Qt Quick}{Qt Quick} \o \l{external: Qt Mobility Manual}{Qt Mobility} \o \l{Qt WebKit} \endlist diff --git a/doc/src/platforms/platform-notes-rtos.qdoc b/doc/src/platforms/platform-notes-rtos.qdoc index 0b1265b..dd72016 100644 --- a/doc/src/platforms/platform-notes-rtos.qdoc +++ b/doc/src/platforms/platform-notes-rtos.qdoc @@ -313,7 +313,7 @@ ARM INTEGRITY target: \code - ./configure --hostprefix=$PWD -embedded integrity -xplatform unsupported/qws/integrity-arm-cxarm -static -qt-kbd-integrity -qt-mouse-integrity -no-mouse-linuxtp -no-mouse-pc -no-kbd-tty -qt-gfx-integrityfb -no-qt3support -no-gfx-linuxfb -no-glib -no-openssl -no-largefile -little-endian -arch integrity -prefix / -opensource -no-feature-QWS_MULTIPROCESS -no-feature-SHAREDMEMORY -no-feature-PROCESS -no-feature-SYSTEMSEMAPHORE -no-feature-PRINTER -no-feature-QWS_QPF2 -no-scripttools + ./configure --hostprefix=$PWD -embedded integrity -xplatform unsupported/qws/integrity-arm-cxarm -static -qt-kbd-integrity -qt-mouse-integrity -no-mouse-linuxtp -no-mouse-pc -no-kbd-tty -qt-gfx-integrityfb -no-qt3support -no-gfx-linuxfb -no-glib -no-openssl -no-largefile -little-endian -arch integrity -prefix / -opensource -no-feature-QWS_MULTIPROCESS -no-feature-SHAREDMEMORY -no-feature-PROCESS -no-feature-SYSTEMSEMAPHORE -no-feature-PRINTER -no-feature-QWS_QPF2 -no-libtiff -no-exceptions -no-scripttools \endcode \list @@ -326,6 +326,7 @@ \o \c{-no-qt3support} - required since the Qt3 support classes are not supported on INTEGRITY \o \c{-no-exceptions} - reduces the size of the library by disabling exception support \o \c{-no-openssl} - disable support for OpenSSL + \o \c(-no-libtiff} - disable support for libTIFF \o \c{-no-glib} - disable support for unavailable Glib \o \c{-no-largefile} - disable support for large (> 2TB) files \o \c{-no-scripttools} - disable support for QtScript tools @@ -346,7 +347,13 @@ of INTEGRITY_DIR and INTEGRITY_BSP in unsupported/qws/integrity-arm-cxarm/qmake.conf. If you do not do this, you will have to modify the resulting generated projects.gpj - \o GIF support is currently not enabled. + \o Compilation of native preprocessing tools (moc, rcc, uic) is not automatic. From + a Linux shell or a MingWin shell, you can run the following command to compile these tools : + \code + cd src/tools/bootstrap && make && cd ../rcc && make && cd ../moc && make && cd ../uic && make && cd ../../.. + \endcode + + \o GIF and TIFF support are currently not enabled. \o Default .int files are generated. You may want to modify the amount of heap assigned to each example by modifying the HeapSize declaration in the specific example .int file. diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc index 175cf1c..e1e8c44 100644 --- a/doc/src/platforms/platform-notes.qdoc +++ b/doc/src/platforms/platform-notes.qdoc @@ -685,9 +685,7 @@ \ingroup platform-specific \brief Information about the state of support for the Symbian platform. - As with any port, the maturity for Qt for Symbian has not yet reached the - same level as other established Qt ports. This page documents the current - notes for the Symbian port. + This page documents the current notes for the Symbian port. \section1 Source Compatibility @@ -698,18 +696,39 @@ \section1 Binary Compatibility - As with every supported platform, we will strive to maintain - application behavior and binary compatibility throughout the lifetime of - the Qt 4.x series. However, due to the fact that Symbian support is newly - added in 4.6.0, there is a slight possibility that minor corrections to the - application binary interface (ABI) might be required in 4.6.1, in order to - ensure compatibility going forward. Any such change will be clearly - documented in the release notes for 4.6.1. + 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 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). \section1 Supported Devices - See the list of supported devices at - http://wiki.forum.nokia.com/index.php/Nokia_Smart_Installer_for_Symbian#Supported_Devices + \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian#Supported_Devices}{Nokia Smart Installer for Symbian} + documentation lists supported devices. + + 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. + \endlist + + Symbian devices have a pre-installed Qt support as follows: + \list + \o Symbian Anna: Qt 4.7.3 in C: drive. + \o Symbian Belle: Qt 4.7.4 in device firmware (ROM). + \endlist + \section1 Supported Functionality @@ -729,17 +748,30 @@ \endtable The following technologies have limited support: + \table \header \o Technology \o Note \row \o QtSql - \o The only driver supported is SQLite. + \o The supported drivers are SQLite and QSYMSQL. \row \o QtMultimedia - \o Although the module itself is supported, no backend for Symbian - is currently available. However, there is a backend available - for Phonon. + \o For support details see \l {Multimedia and Phonon Support} section. \endtable + + It is not recommended to use the following Qt widgets: + \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 QMdiSubWindow + \o QDockWidget + \o QPrintPreviewWidget + \endlist \section1 Compiler Notes @@ -774,7 +806,7 @@ \row \o QtCore \o \c PowerMgmt if QProcess::kill(...) or QProcess::terminate(...) is called. \row \o QtCore - \o \c AllFiles when \l{http://developer.symbian.org/wiki/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.} + \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 @@ -796,28 +828,34 @@ For more information see the documentation of the individual Qt classes. If a class does not mention Symbian capabilities, it requires none. + \target Multimedia and Phonon Support \section1 Multimedia and Phonon Support - Qt provides a backend for Qt's Phonon module, which supports - video and sound playback through Symbian's Multimedia Framework, MMF. + Qt provides a high-level API for multimedia functionality with + (\l{http://doc.qt.nokia.com/qtmobility/multimedia.html}). + + Qt also provides a backend for Qt's Phonon module, which supports video and + sound playback through Symbian's Multimedia Framework, MMF. Note that Phonon + support is not being extended, and that Qt's multimedia module will + take over for Phonon at a later stage. - In this release the support is experimental. Video playback may have - flickering issues, and support for effects and playback queueing is - incomplete. + In this release the support is experimental. Video playback may show + artifacts when the video is moved or resized (for instance during + orientation flips). This problem is present on S60 5th Edition and earlier + versions, and on Symbian^3 systems. 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. - In addition, there exists a backend for the Helix framework. However, due - to it not shipping with Qt, its availability depends on the Symbian - platform in use. If available, it is loaded in preference over the MMF - plugin. If the Helix plugin fails to load, the MMF plugin, if present on - the device, will be loaded instead. + 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. \section1 Hardware Accelerated Rendering - The default graphics system on Symbian^3 is OpenVG, which uses OpenVG + 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. @@ -834,7 +872,7 @@ \section1 QtOpenGL Support in Symbian - Qt 4.7 introduces the \l {QtOpenGL} module to Symbian^3. QtOpenGL is + Qt 4.7 introduces the \l {QtOpenGL} module. QtOpenGL is supported on devices which support OpenGL ES 2.0. Symbian platforms prior to Symbian^3 are not supported. diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc index 9b1eea2..e5d4a16 100644 --- a/doc/src/platforms/symbian-introduction.qdoc +++ b/doc/src/platforms/symbian-introduction.qdoc @@ -74,6 +74,8 @@ Platform security capabilities are added via the \l{qmake-variable-reference.html#target-capability}{TARGET.CAPABILITY} qmake variable. + + \sa {platform-notes-symbian.html#required-capabilities}{Required Capabilities} */ /*! diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc index c993575..f67ff83 100644 --- a/doc/src/qt-webpages.qdoc +++ b/doc/src/qt-webpages.qdoc @@ -221,7 +221,7 @@ \title Forums on Qt Developer Network */ /*! - \externalpage http://developer.qt.nokia.com/wikis + \externalpage http://developer.qt.nokia.com/wiki \title Wiki on Qt Developer Network */ /*! diff --git a/doc/src/snippets/code/doc_src_qmake-manual.pro b/doc/src/snippets/code/doc_src_qmake-manual.pro index ee35b77..042ca0e 100644 --- a/doc/src/snippets/code/doc_src_qmake-manual.pro +++ b/doc/src/snippets/code/doc_src_qmake-manual.pro @@ -1023,3 +1023,7 @@ packagesExist(sqlite3 QtNetwork QtDeclarative) { // Use the fancy UI, as we have extra packages available #endif #! [158] + +#! [159] +RSS_RULES += "graphics_memory=12288;" +#! [159] diff --git a/doc/src/snippets/code/src_corelib_io_qsettings.cpp b/doc/src/snippets/code/src_corelib_io_qsettings.cpp index 5abb0e3..269aa44 100644 --- a/doc/src/snippets/code/src_corelib_io_qsettings.cpp +++ b/doc/src/snippets/code/src_corelib_io_qsettings.cpp @@ -314,3 +314,24 @@ int main(int argc, char *argv[]) ... } //! [29] + +//! [30] +QSettings settings(QApplication::applicationDirPath() + "/MySoft.conf"); +//! [30] + +//! [31] +#include <QSettings> +#include <QDesktopServices> +int main(int argc, char *argv[]) +{ +#ifdef Q_OS_SYMBIAN + // Use QDesktopServices:storageLocation as QApplication is not yet created + QSettings::setPath( + QSettings::NativeFormat, QSettings::UserScope, + QDesktopServices::storageLocation(QDesktopServices::DataLocation) + "/settings"); +#endif + QApplication app(argc, argv); + + ... +} +//! [31] diff --git a/doc/src/sql-programming/sql-driver.qdoc b/doc/src/sql-programming/sql-driver.qdoc index 40c7c6a..ed60e7f 100644 --- a/doc/src/sql-programming/sql-driver.qdoc +++ b/doc/src/sql-programming/sql-driver.qdoc @@ -60,6 +60,7 @@ \row \o \link #QPSQL QPSQL\endlink \o PostgreSQL (versions 7.3 and above) \row \o \link #QSQLITE2 QSQLITE2\endlink \o SQLite version 2 \row \o \link #QSQLITE QSQLITE\endlink \o SQLite version 3 + \row \o \link #QSYMSQL QSYMSQL\endlink \o SQLite version 3 for Symbian SQL Database \row \o \link #QTDS QTDS\endlink \o Sybase Adaptive Server \note obsolete from Qt 4.7 \endtable @@ -665,6 +666,106 @@ ship your own database plugin with your own SQLite library as illustrated above. Some versions of SQLite can be forced to write a specific file format by setting the \c{SQLITE_DEFAULT_FILE_FORMAT} define when building SQLite. + + \target QSYMSQL + \section2 QSYMSQL for SQLite (Version 3 and Above) with Symbian SQL Database + + \section3 General Information about QSYMSQL + + QSYMSQL driver enables clients to access the native Symbian database engine (“Symbian SQL”) + through the QtSQL API. + + The main difference to QSQLITE is that, with Symbian SQL database client can specify a + set of access control policies when creating a new database. It uses Symbian SQL security policy + definitions within open() call (security policy is defined with in the connection options parameters). + + Symbian RSqlSecurityPolicy class is a container for the security policies for a shared SQL database. + + The container can contain: + security policies that apply to the database. + security policies that apply to individual database objects, i.e. database tables. + + For the database, you use RSqlSecurityPolicy::SetDbPolicy() to apply a separate security policy to: + the database schema. + read activity on the database. + write activity on the database. + + For database tables, you use RSqlSecurityPolicy::SetPolicy() to apply a separate security policy to: + write activity on each named database table. + read activity on each named database table. + + More information about Symbian SQL and RSqlSecurityPolicy class reference about policy definitions, + can be found from Forum Nokia Library: http://library.developer.nokia.com/. + + +Example of setting Security Policy: + + Connection options hold definition for security policies and all parameters that does not contain "POLICY_" will be + passed to RSqlDatabase. Policy will be filled according to parsed values. + + Value in database wide parameters starts by definition which can be vendorId or secureId. These come directly from TSecurityPolicy class in Symbian. + + POLICY_DB_DEFAULT + Default security policy which will be used for the database and all database objects. POLICY_DB_DEFAULT must be + defined before any other policy definitions can be used. + POLICY_DB_READ + Read database security policy. An application with read database security policy can read from database. + POLICY_DB_WRITE: + Write database security policy. An application with write database security policy can write to database. + POLICY_DB_SCHEMA: + Schema database security policy. An application with schema database security policy can modify + the database schema, write to database, read from database. + + Format: + POLICY_DB_DEFAULT=cap1,cap2,cap3,cap4,cap5,cap6,cap7 (Up to 7 capabilities) + POLICY_DB_READ=cap1,cap2,cap3,cap4,cap5,cap6,cap7 (Up to 7 capabilities) + POLICY_DB_WRITE=vendorid,cap1,cap2,cap3 (Vendor ID and up to 3 capabilities) + POLICY_DB_SCHEMA=secureid,cap1,cap2,cap3 (Secure ID and up to 3 capabilities) + + Table policies does not support schema policy as database level does. + + Table specific parameters would be as: + POLICY_TABLE_WRITE=tablename,cap1,cap2,cap3,cap4,cap5,cap6,cap7 + POLICY_TABLE_READ=tablename,cap1,cap2,cap3,cap4,cap5,cap6,cap7 + + Vendor Id and Secure id format: + vid[0x12345678] (Hex) + sid[0x12345678] (Hex) + + Examples: + Setting default policy: + QSqlDatabase database = QSqlDatabase::addDatabase("QSYMSQL", "MyConnection"); + database.setConnectOptions("POLICY_DB_DEFAULT=ReadDeviceData"); + database.setDatabaseName("[12345678]myDatabase"); + bool ok = database.open(); + + Setting POLICY_DB_WRITE: + QSqlDatabase database = QSqlDatabase::addDatabase("QSYMSQL", "MyConnection"); + database.setConnectOptions("POLICY_DB_DEFAULT=None; POLICY_DB_WRITE=sid[0x12345678], WriteDeviceData"); + database.setDatabaseName("[12345678]myDatabase"); + bool ok = database.open(); + + FOREIGN KEY: + Enabling foreign key support from underlying SQLite + add: "foreign_keys = ON" to your connection options string. This will be passes to SQLite. + + Foreign key Example: + QSqlDatabase database = QSqlDatabase::addDatabase("QSYMSQL", "MyConnection"); + database.setDatabaseName("[12345678]myDatabase"); + database.setConnectOptions("foreign_keys = ON"); + bool ok = database.open(); + + \section3 How to Build the QSYMSQL Plugin + + Building QSYMSQL requires Symbian SDK. + + The build sequence is similar to the QSQLITE plugin with installing the plugin in the standard location. + + Build sequence: + + >cd sf\mw\qt\src\plugins\sqldrivers\symsql\ + >qmake + >sbs -c winscw_udeb|armv5_urel \target QIBASE \section2 QIBASE for Borland InterBase diff --git a/doc/src/template/style/offline.css b/doc/src/template/style/offline.css index 44abb3c..d33d8e7 100644 --- a/doc/src/template/style/offline.css +++ b/doc/src/template/style/offline.css @@ -74,8 +74,7 @@ body { - margin-left: 0.5em; - margin-right: 0.5em; + margin: 0px; font-family: sans-serif; line-height: normal } @@ -238,7 +237,9 @@ .header .content { - margin-bottom: 0.5em + margin-left: 5px; + margin-top: 5px; + margin-bottom: 0.5em; } .header .breadcrumb @@ -413,6 +414,11 @@ .flowList dd a{ } + .mainContent + { + padding-left:5px; + } + .content .flowList p{ padding:0px; } |
