summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraxis <qt-info@nokia.com>2009-11-20 07:56:40 (GMT)
committeraxis <qt-info@nokia.com>2009-11-20 07:56:40 (GMT)
commitd9fa92933ff6ff1afad342f7f94e37f810cf8176 (patch)
tree77e2c90877ea528d71755e7322c025c8284636a7
parenta8c8c2274d2d0a708786adbb357013955f99c0af (diff)
parentc7d7fae74f3b8df9e5b07493a36db31f2c499699 (diff)
downloadQt-d9fa92933ff6ff1afad342f7f94e37f810cf8176.zip
Qt-d9fa92933ff6ff1afad342f7f94e37f810cf8176.tar.gz
Qt-d9fa92933ff6ff1afad342f7f94e37f810cf8176.tar.bz2
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-s60-public into 4.6-staging2
-rw-r--r--demos/embedded/fluidlauncher/fluidlauncher.pro42
-rw-r--r--demos/symbianpkgrules.pri2
-rw-r--r--doc/src/deployment/deployment.qdoc102
-rw-r--r--doc/src/getting-started/installation.qdoc73
-rw-r--r--doc/src/getting-started/known-issues.qdoc7
-rw-r--r--doc/src/howtos/exceptionsafety.qdoc2
-rw-r--r--doc/src/platforms/compiler-notes.qdoc5
-rw-r--r--doc/src/platforms/qt-embedded.qdoc9
-rw-r--r--doc/src/platforms/supported-platforms.qdoc4
-rw-r--r--doc/src/platforms/symbian-exceptionsafety.qdoc2
-rw-r--r--doc/src/platforms/symbian-introduction.qdoc (renamed from doc/src/platforms/s60-introduction.qdoc)103
-rw-r--r--doc/src/platforms/winsystem.qdoc4
-rw-r--r--doc/src/qt4-intro.qdoc2
-rw-r--r--doc/src/snippets/code/doc_src_deployment.qdoc41
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc7
-rw-r--r--doc/src/snippets/code/doc_src_symbian-introduction.qdoc (renamed from doc/src/snippets/code/doc_src_s60-introduction.qdoc)0
-rw-r--r--examples/symbianpkgrules.pri2
-rw-r--r--mkspecs/features/symbian/application_icon.prf7
-rw-r--r--src/gui/image/qpixmap_s60.cpp5
-rw-r--r--src/gui/image/qpixmap_s60_p.h2
-rw-r--r--src/gui/kernel/qapplication_s60.cpp2
-rw-r--r--src/gui/widgets/qabstractslider.cpp45
-rw-r--r--src/gui/widgets/qabstractslider_p.h33
-rw-r--r--src/s60installs/bwins/QtCoreu.def11
-rw-r--r--src/s60installs/bwins/QtGuiu.def3
-rw-r--r--src/s60installs/bwins/QtWebKitu.def9
-rw-r--r--src/s60installs/eabi/QtCoreu.def14
-rw-r--r--src/s60installs/eabi/QtGuiu.def2
-rw-r--r--src/s60installs/eabi/QtWebKitu.def9
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp13
30 files changed, 467 insertions, 95 deletions
diff --git a/demos/embedded/fluidlauncher/fluidlauncher.pro b/demos/embedded/fluidlauncher/fluidlauncher.pro
index 30f59c3..b47f6a0 100644
--- a/demos/embedded/fluidlauncher/fluidlauncher.pro
+++ b/demos/embedded/fluidlauncher/fluidlauncher.pro
@@ -59,7 +59,7 @@ symbian {
load(data_caging_paths)
TARGET.UID3 = 0xA000A641
- ICON = ../../../src/s60installs/qt.svg
+ ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg
executables.sources = \
styledemo.exe \
@@ -118,42 +118,66 @@ symbian {
$${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/lightmaps.rsc \
$${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/flightinfo.rsc
-
+
resource.path = $$APP_RESOURCE_DIR
mifs.sources = \
- $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000A641.mif \ #fluidlauncher
- $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/0xA000C611.mif #desktopservices
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/fluidlauncher.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/styledemo.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/deform.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/pathstroke.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/wiggly.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/qftp.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/saxbookmarks.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/desktopservices.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/fridgemagnets.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/softkeys.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/raycasting.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/flickable.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/digiflip.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/lightmaps.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/flightinfo.mif
mifs.path = $$APP_RESOURCE_DIR
- contains(QT_CONFIG, svg) {
- executables.sources += \
+ contains(QT_CONFIG, svg) {
+ executables.sources += \
embeddedsvgviewer.exe \
weatherinfo.exe
-
+
reg_resource.sources += \
$${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/embeddedsvgviewer_reg.rsc \
$${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/weatherinfo_reg.rsc
-
+
resource.sources += \
$${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/embeddedsvgviewer.rsc \
$${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/weatherinfo.rsc
+
+ mifs.sources += \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/embeddedsvgviewer.mif \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/weatherinfo.mif
+
}
contains(QT_CONFIG, webkit) {
executables.sources += anomaly.exe
reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/anomaly_reg.rsc
resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/anomaly.rsc
+ mifs.sources += \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/anomaly.mif
}
contains(QT_CONFIG, phonon) {
executables.sources += qmediaplayer.exe
resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/qmediaplayer.rsc
+ mifs.sources += \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/qmediaplayer.mif
}
contains(QT_CONFIG, script) {
- executables.sources += context2d.exe
+ executables.sources += context2d.exe
reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/context2d_reg.rsc
resource.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/context2d.rsc
+ mifs.sources += \
+ $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/context2d.mif
}
files.sources = $$PWD/screenshots $$PWD/slides
diff --git a/demos/symbianpkgrules.pri b/demos/symbianpkgrules.pri
index 7e6852b..c511836 100644
--- a/demos/symbianpkgrules.pri
+++ b/demos/symbianpkgrules.pri
@@ -11,3 +11,5 @@ vendorinfo = \
" "
default_deployment.pkg_prerules += vendorinfo
+
+isEmpty(ICON):ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg
diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc
index b5b1b9c..ea841f9 100644
--- a/doc/src/deployment/deployment.qdoc
+++ b/doc/src/deployment/deployment.qdoc
@@ -187,6 +187,7 @@
\o \l{Deploying an Application on Windows}{Qt for Windows}
\o \l{Deploying an Application on Mac OS X}{Qt for Mac OS X}
\o \l{Deploying Qt for Embedded Linux Applications}{Qt for Embedded Linux}
+ \o \l{Deploying an Application on the Symbian platform}{Qt for the Symbian platform}
\endlist
\sa Installation {Platform-Specific Documentation}
@@ -1492,8 +1493,101 @@
macdeployqt supports the following options:
\list
- \o -no-plugins: Skip plugin deployment
- \o -dmg : Create a .dmg disk image
- \o -no-strip : Don't run 'strip' on the binaries
- \endlist
+ \o -no-plugins: Skip plugin deployment
+ \o -dmg : Create a .dmg disk image
+ \o -no-strip : Don't run 'strip' on the binaries
+ \endlist
+*/
+
+/*!
+ \page deployment-symbian.html
+ \contentspage Deploying Qt Applications
+
+ \title Deploying an Application on the Symbian platform
+
+ Applications are deployed to Symbian devices in signed \c .sis package files.
+ The \c .sis file content is controlled with \c .pkg files. The \c .pkg file contains a set
+ of instructions used by tools to produce a \c .sis file. \c qmake generates a
+ default \c .pkg file for your project. The \c .pkg file generated by \c qmake is typically
+ fully functional for testing purposes but when planning to deliver your application
+ to end-users some changes are needed. This document describes what changes are
+ typically needed and how to implement them.
+
+ \section1 Static Linking
+
+ Qt for the Symbian platform does currently not support static linking of
+ Qt libraries.
+
+ \section1 Shared Libraries
+
+ When deploying the application using the shared libraries approach we must ensure that the
+ Qt runtime is correctly redistributed along with the application executable,
+ and also that all Qt dependencies are redistributed along with the application.
+
+ We will demonstrate these procedures in terms of deploying the \l {widgets/wiggly}{Wiggly}
+ application that is provided in Qt's examples directory.
+
+ \section2 Building Qt as a Shared Library
+
+ We assume that you already have installed Qt as a shared library,
+ in the \c C:\path\to\Qt directory which is the default when installing Qt for Symbian.
+ For more information on how to build Qt, see the \l {Installation} documentation.
+
+ \section1 Shared Libraries
+
+ After ensuring that Qt is built as a shared library, we can build
+ the \l {widgets/wiggly}{Wiggly} application. First, we
+ must go into the directory that contains the application:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 55
+
+ To prepare the application for deployment we must ensure that the \c .pkg file generated by
+ \c qmake contains the relevant vendor information and embeds the necessary
+ dependencies to the application deployment file (\c .sis). The content of the generated \c .pkg
+ file can be controlled with the Symbian specific \c qmake \l DEPLOYMENT keyword extensions.
+
+ First, we will change the vendor statement to something more meaningful. The application
+ vendor is visible to end-user during the installation.
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 56
+
+ Second we will tell the Symbian application installer that this application supports
+ only S60 5.0 based devices:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 57
+
+ You can find a list of platform and device indentification codes from
+ \l {http://wiki.forum.nokia.com/index.php/S60_Platform_and_device_identification_codes}{Forum Nokia Wiki}.
+ By default \c .pkg file generated by \c qmake adds support for all
+ S60 3rd edition FP1, S60 3rd edition FP2 and S60 5th edition devices.
+
+ As a last step we will embed the Open C, Open C++ and Qt \c .sis files to the Wiggly
+ deployment file:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 58
+
+ By embedding all dependencies to the application deployment file, the
+ end-user does not need to download and install all dependencies separately.
+ The drawback of \c .sis embedding is that the application \c .sis file size becomes
+ big. To address these problems Forum Nokia is planning to release a smart installer
+ which will take care of downloading and installing the necessary dependencies
+ over-the-air. The expected availability of smart installer is 1Q 2010.
+
+ Now we are ready to compile the application and create the application
+ deployment file. Run \c qmake to create Symbian specific makefiles, resources (\.rss)
+ and deployment packaging files (\c .pkg). And do build to create the
+ application binaries and resources.
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 59
+
+ If everything compiled and linked without any errors, we are now ready to create
+ an application installation file:
+
+ \snippet doc/src/snippets/code/doc_src_deployment.qdoc 60
+
+ If all binaries and dependencies were found, we should now have a self-signed
+ \c wiggly_release-gcce.sis ready to be installed on a device. For more information
+ about creating a \c .sis file and installing it to device see also
+ \l {The Symbian platform - Introduction to Qt#Installing your own applications}{here}.
+
*/
diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc
index c8e225c..1a5cd99 100644
--- a/doc/src/getting-started/installation.qdoc
+++ b/doc/src/getting-started/installation.qdoc
@@ -495,12 +495,12 @@ in the \l{Qt for Windows CE Requirements} document.
*/
/*! \page install-Symbian-installer.html
-\title Installing Qt on the Symbian Platform from a Binary Package
-\ingroup qts60
+\title Installing Qt on the Symbian platform from a Binary Package
+\ingroup qtsymbian
\brief How to install Qt on the Symbian platform from a binary package.
-\note Qt for Symbian platform has some requirements that are given in more detail
-in the \l{Qt for Symbian platform Requirements} document.
+\note Qt for the Symbian platform has some requirements that are given in more detail
+in the \l{Qt for the Symbian platform Requirements} document.
\list 1
@@ -517,13 +517,16 @@ in the \l{Qt for Symbian platform Requirements} document.
to try out. An excellent starting point is the "fluidlauncher"
demo. To run the demo on a real device, you first have to install
\c{qt.sis} and \c{fluidlauncher.sis} found in the Qt installation
- directory. Begin by connecting your phone using the USB cable and
- selecting "PC Suite mode". In Windows Explorer right click on the
- \c{.sis} files and select "Install with Nokia Application Installer"
+ directory. Also, check if the device needs additional
+ \l{Qt for the Symbian platform Requirements}{requirements}.
+ Begin by connecting your device via USB cable to a computer that has
+ the \l{http://www.nokia.com/pcsuite}{Nokia PC Suite} installed.
+ On the device, select "PC Suite mode". In Windows Explorer right click
+ on the \c{.sis} files, select "Install with Nokia Application Installer"
and follow the instructions.
To run the demos and examples on the emulator, you need to build them first.
- Open the "Qt for Symbian platform Command Prompt" from the Start menu and type:
+ Open the "Qt for the Symbian platform Command Prompt" from the Start menu and type:
\snippet doc/src/snippets/code/doc_src_installation.qdoc 25
@@ -534,7 +537,7 @@ in the \l{Qt for Symbian platform Requirements} document.
For more information about building and running Qt programs on the
Symbian platform,
- see \l{Symbian platform - Introduction to Qt}.
+ see \l{The Symbian platform - Introduction to Qt}.
We hope you will enjoy using Qt.
@@ -542,25 +545,40 @@ Symbian platform,
*/
/*! \page install-Symbian.html
-\title Installing Qt on the Symbian Platform
+\title Installing Qt on the Symbian platform
\ingroup installation
-\ingroup qts60
+\ingroup qtsymbian
\brief How to install Qt on the Symbian platform.
\note Qt for the Symbian platform has some requirements that are given in more detail
-in the \l{Qt for Symbian Platform Requirements} document.
+in the \l{Qt for the Symbian platform Requirements} document.
\note \bold {This document describes how to install and configure Qt for
the Symbian platform from scratch.
If you are using pre-built binaries, follow the instructions given in the
-\l{Installing Qt on the Symbian Platform from a Binary Package} document.}
+\l{Installing Qt on the Symbian platform from a Binary Package} document.}
\list 1
+ \o Setup the development environment
+
+ Make sure your Symbian development environment is correctly installed and
+ patched as explained in the \l{Qt for the Symbian platform Requirements} document.
+
+ After you have finished the Symbian development environment setup, it is good
+ to verify that environment is functional for example by compiling one
+ of the pure Symbian examples for both emulator and HW. This can be done from
+ command prompt as follows:
+
+ \snippet doc/src/snippets/code/doc_src_installation.qdoc 32
+
+ If all steps pass without errors your Symbian development environment is
+ very likely installed correctly.
+
\o Install Qt
- Uncompress the package into the directory you want Qt installed,
- e.g. \c{C:\Qt\%VERSION%}.
+ Uncompress the \l{http://qt.nokia.com/downloads}{downloaded} source package into the
+ directory you want Qt installed, e.g. \c{C:\Qt\%VERSION%}.
\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.
@@ -589,10 +607,11 @@ If you are using pre-built binaries, follow the instructions given in the
to build the tools using MinGW, and the libraries using abld.
or
\snippet doc/src/snippets/code/doc_src_installation.qdoc 31
- to build the tools using MinGW, and the libraries using sbsv2.
+ to build the tools using MinGW, and the libraries using SBSv2.
- For other options, type \c{configure -help} to get a list of all available
- options.
+ SBSv2 also known as a (\l{http://developer.symbian.org/wiki/index.php/Introduction_to_RAPTOR} {Raptor})
+ is a next-generation Symbian build system. SBSv2 is not officially
+ supported by any of the S60 SDKs currently available from Forum Nokia.
\o Build Qt
@@ -631,7 +650,7 @@ If you are using pre-built binaries, follow the instructions given in the
\snippet doc/src/snippets/code/doc_src_installation.qdoc 27
For more information about building and running Qt programs on the
-Symbian platform, see \l{Symbian platform - Introduction to Qt}.
+ Symbian platform, see \l{The Symbian platform - Introduction to Qt}.
We hope you will enjoy using Qt.
@@ -666,7 +685,7 @@ Symbian platform, see \l{Symbian platform - Introduction to Qt}.
\list
\o \l{Qt for Embedded Linux Requirements}
\o \l{Qt for Mac OS X Requirements}
- \o \l{Qt for Symbian platform Requirements}
+ \o \l{Qt for the Symbian platform Requirements}
\o \l{Qt for Windows CE Requirements}
\o \l{Qt for Windows Requirements}
\o \l{Qt for X11 Requirements}
@@ -951,12 +970,12 @@ Symbian platform, see \l{Symbian platform - Introduction to Qt}.
/*!
\page requirements-symbian.html
- \title Qt for Symbian Platform Requirements
+ \title Qt for the Symbian platform Requirements
\ingroup installation
\brief Setting up the Symbian platform environment for Qt.
\previouspage General Qt Requirements
- Qt for Symbian platform requires the following software installed on your development PC:
+ Qt for the Symbian platform requires the following software installed on your development PC:
\list
\o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/}{Carbide.c++ v2.0.0 or higher}
\list
@@ -969,7 +988,11 @@ Symbian platform, see \l{Symbian platform - Introduction to Qt}.
\o \bold{Note:} According to Symbian, version 5.6.1 build 638 is mandatory. Using later versions may result in unexplained errors.
\endlist
\o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/S60SDK/}{S60 Platform SDK 3rd Edition FP1 or higher}
- \o \l{http://www.forum.nokia.com/main/resources/technologies/openc_cpp/}{Open C/C++ v1.6.0 or higher}.
+ \list
+ \o \bold{Note:} Users of \bold{S60 Platform SDK 3rd Edition FP1} also need special update. The update can be found
+ \l{http://pepper.troll.no/s60prereleases/patches/}{here}.
+ \endlist
+ \o \l{http://www.forum.nokia.com/main/resources/technologies/openc_cpp/}{Open C/C++ v1.6.0 or higher}.
Install this to all Symbian SDKs you plan to use Qt with.
\o Building Qt tools from scratch requires \l{http://www.mingw.org/}{MinGW 3.4.5 or higher}, or another windows compiler.
\list
@@ -987,8 +1010,8 @@ Symbian platform, see \l{Symbian platform - Introduction to Qt}.
\o \c{nokia_plugin\opencpp\s60opencppsis\stdcpp_s60_<version>.sis}
\endlist
- \note Users of \bold{S60 Platform SDK 3rd Edition FP1} also need special updates. The update can be found
- \l{http://pepper.troll.no/s60prereleases/patches/}{here}.
+ We recommend you to take a look of \l{http://developer.symbian.org/wiki/index.php/Qt_Quick_Start}{Symbian Foundation - Qt Quick Start}
+ to get more information about how to setup the development environment.
\sa {Known Issues in %VERSION%}
*/
diff --git a/doc/src/getting-started/known-issues.qdoc b/doc/src/getting-started/known-issues.qdoc
index 5c8888d..3c92257 100644
--- a/doc/src/getting-started/known-issues.qdoc
+++ b/doc/src/getting-started/known-issues.qdoc
@@ -131,4 +131,11 @@
window will cause it to flash. This behavior has been reported to Apple
(bug number 5827676).
\endlist
+
+ \section2 Symbian
+
+ \list
+ \o Check known issues for Symbian at
+ \l{http://qt.gitorious.org/qt/pages/Qt460KnownIssues} {Known Issues Wiki}.
+ \endlist
*/
diff --git a/doc/src/howtos/exceptionsafety.qdoc b/doc/src/howtos/exceptionsafety.qdoc
index fa1427b..2f561a0 100644
--- a/doc/src/howtos/exceptionsafety.qdoc
+++ b/doc/src/howtos/exceptionsafety.qdoc
@@ -147,7 +147,7 @@
\section2 The Symbian platform
The Symbian platform implements its own exception system that differs from the standard
- C++ mechanism. When using Qt for Symbian platform, and especially when writing code to
+ C++ mechanism. When using Qt for the Symbian platform, and especially when writing code to
access Symbian functionality directly, it may be necessary to know about the underlying
implementation and how it interacts with Qt.
diff --git a/doc/src/platforms/compiler-notes.qdoc b/doc/src/platforms/compiler-notes.qdoc
index 4577bf0..e27a9dc 100644
--- a/doc/src/platforms/compiler-notes.qdoc
+++ b/doc/src/platforms/compiler-notes.qdoc
@@ -287,4 +287,9 @@
Make sure you have the
\l{http://www-1.ibm.com/support/search.wss?rs=32&amp;tc=SSEP5D&amp;dc=D400}{latest upgrades}
installed.
+
+ \section2 GCCE (Symbian)
+
+ GCCE cannot be used to compile Qt libaries for the Symbian platform, but GCCE is supported
+ when compiling Qt applications for Symbian platform.
*/
diff --git a/doc/src/platforms/qt-embedded.qdoc b/doc/src/platforms/qt-embedded.qdoc
index b38c94f..afed540 100644
--- a/doc/src/platforms/qt-embedded.qdoc
+++ b/doc/src/platforms/qt-embedded.qdoc
@@ -67,10 +67,9 @@
Applications use the appropriate style for the embedded
environment and use native features, such as menus, to conform
to the native style guidelines.
- \o \l{Symbian Platform - Introduction to Qt}{Qt for the Symbian
- platform} is used to create applications running in existing Symbian
- platform environments. Applications use the appropriate style for the
- embedded environment and use native features, such as menus, to conform
- to the native style guidelines.
+ \o \l{Qt for the Symbian platform} is used to create applications running
+ in existing Symbian platform environments. Applications use the appropriate
+ style for the embedded environment and use native features, such as menus,
+ to conform to the native style guidelines.
\endtable
*/
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index 560ddfe..d1affe2 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -89,8 +89,8 @@
\o gcc (\l{http://www.codesourcery.com/}{Codesourcery version)}
\row \o Windows CE 5.0 (ARMv4i, x86, MIPS)
\o MSVC 2005 WinCE 5.0 Standard (x86, pocket, smart, mipsii)
- \row \o Symbian (S60 3.1, 3.2 and 5.0)
- \o RVCT, GCCE, WINSCW
+ \row \o Symbian (Symbian/S60 3.1, 3.2 and 5.0)
+ \o RVCT 2.2 [build 686 or later], WINSCW 3.2.5 [build 482 or later], GCCE (for applications)
\endtable
\section1 Tier 2 Platforms
diff --git a/doc/src/platforms/symbian-exceptionsafety.qdoc b/doc/src/platforms/symbian-exceptionsafety.qdoc
index 88f4d03..99bd2d8 100644
--- a/doc/src/platforms/symbian-exceptionsafety.qdoc
+++ b/doc/src/platforms/symbian-exceptionsafety.qdoc
@@ -42,7 +42,7 @@
/*!
\page symbianexceptionsafety.html
\title Exception Safety with Symbian
- \ingroup qts60
+ \ingroup qtsymbian
\brief A guide to integrating exception safety in Qt with Symbian.
The following sections describe how Qt code can interoperate with Symbian's
diff --git a/doc/src/platforms/s60-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 0581982..c0c4fb3 100644
--- a/doc/src/platforms/s60-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -40,39 +40,73 @@
****************************************************************************/
/*!
+ \group qtsymbian
+ \title Qt for the Symbian platform
+ \ingroup qt-embedded
+ \brief Documents related to Qt on the Symbian platform
+
+ Qt for Symbian is a C++ framework for GUI and application development
+ for embedded devices running Symbian. Qt for Symbian provides all
+ functionality required to develop rich end-user applications for devices
+ running S60 3.1 and later.
+
+ \table 100%
+ \header \o Getting Started \o Reference \o Development
+ \row
+ \o
+ \list
+ \o \l {Qt for the Symbian platform Requirements}
+ \o \l {Installing Qt on the Symbian platform from a Binary Package}
+ \o \l {Installing Qt on the Symbian platform}
+ \o \l {The Symbian platform - Introduction to Qt}{Introduction to using Qt}
+ \endlist
+ \o
+ \list
+ \o \l {Exception Safety with Symbian}
+ \o \l {Platform Notes - Symbian} {Qt for the Symbian platform - state of support}
+ \o \l {qmake Platform Notes#Symbian platform} {Qt for Symbian extensions for qmake}
+ \endlist
+ \o
+ \list
+ \o \l {Deploying an Application on the Symbian platform}{Deploying Applications}
+ \endlist
+ \endtable
+*/
+
+/*!
\page symbian-with-qt-introduction.html
- \title Symbian Platform - Introduction to Qt
- \brief An introduction to Qt for Symbian platform developers.
+ \title The Symbian platform - Introduction to Qt
+ \brief An introduction to Qt for the Symbian platform developers.
\ingroup howto
- \ingroup qts60
+ \ingroup qtsymbian
\tableofcontents
\section1 Required tools
- See \l{Qt for Symbian Platform Requirements} to see what tools are
- required to use Qt for Symbian platform.
+ See \l{Qt for the Symbian platform Requirements} to see what tools are
+ required to use Qt for the Symbian platform.
\section1 Installing Qt and running demos
Follow the instructions found in \l{Installing Qt on the Symbian platform from a Binary Package}
to learn how to install Qt using a binary package and how to build and run Qt demos.
- Follow the instructions found in \l{Installing Qt on the Symbian Platform} to learn how to install Qt using
+ Follow the instructions found in \l{Installing Qt on the Symbian platform} to learn how to install Qt using
using source package and how to build and run the Qt demos.
\section1 Building your own applications
- If you are new to Qt development, have a look at \l{How to Learn Qt}.
+ If you are new to Qt development, have a look at \l{How to Learn Qt}.
In general, the difference between developing a
Qt application on the Symbian platform compared to any of the other platforms supported
by Qt is not that big.
Once you have created a \c .pro file for your project, generate the
- Carbide specific \c Bld.inf and \c .mmp files this way:
+ Symbian specific \c Bld.inf and \c .mmp files this way:
- \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 0
+ \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 0
For more information on how to use qmake have a look at the \l
{qmake Tutorial}.
@@ -97,56 +131,67 @@
The following lines perform a debug build for the emulator
and deploy all the needed files:
- \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 1
+ \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 1
To work on your project in Carbide, simply import the \c .pro file
by right clicking on the project explorer and executing "Import...".
\section1 Installing your own applications
- To install your own applications on hardware, you need signed \c .sis file.
+ To install your own applications on hardware, you need a signed \c .sis file.
+ (Refer to the \l{http://developer.symbian.org/wiki/index.php/Platform_Security_%28Fundamentals_of_Symbian_C%2B%2B%29#Self-Signed_Applications}
+ {Platform Security Article} for more informations about self-signing.)
The signed \c .sis file can be created with \c make \c sis target. \c sis target
is only supported for executables or projects with \c DEPLOYMENT statements.
By default the \c sis target will create signed \c .sis file for last build
- target. For example, the following sequence will generate the needed makefiles,
- build the project for \c debug-winscw and \c release-armv5, and create
+ target. For example, the following sequence will generate the needed makefiles,
+ build the project for \c debug-winscw and \c release-armv5, and create
self-signed \c .sis file for \c release-armv5 target:
- \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 2
+ \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 2
If you want to use different certificate information or override the default
- target for \c .sis file creation you can use the environment variables as
+ target for \c .sis file creation you can use the environment variables as
shown in the table below:
\table
- \row \o \c QT_SIS_OPTIONS \o Options accepted by \c .sis creation.
- -i, install the package right away using PC suite.
- -c=<file>, read certificate information from a file.
- Execute the \c{createpackage.pl} script without any
- parameters for more information about options.
- By default no otions are given.
+ \row \o \c QT_SIS_OPTIONS \o Options accepted by \c .sis creation. See
+ \l{Supported options for QT_SIS_OPTIONS}{Supported options}
+ below. By default no otions are given.
\row \o \c QT_SIS_TARGET \o Target for which \c .sis file is created.
- Accepted values are build targets listed in
+ Accepted values are build targets listed in
previous table. By default last build target.
\row \o \c QT_SIS_CERTIFICATE \o The certificate file used for signing.
- By default self-signed certificate.
+ By default self-signed certificate.
\row \o \c QT_SIS_KEY \o The certificate's private key file.
- By default key is associated to self-signed certificate.
+ By default key is associated to self-signed certificate.
\row \o \c QT_SIS_PASSPHRASE \o The certificate's private key file's passphrase.
- By default empty.
- \endtable
+ By default empty.
+ \endtable
+
+ The suppported options for \c QT_SIS_OPTIONS:
+
+ \target Supported options for QT_SIS_OPTIONS
+ \table
+ \row \o -i \o Install the package right away using PC suite.
+ \row \o -p \o Only preprocess the template \c .pkg file.
+ \row \o -c=<file> \o Read certificate information from a file.
+ \endtable
+
+ Execute the \c{createpackage.pl} script without any
+ parameters for detailed information about options. By default no otions are given.
For example:
- \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 4
+ \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 4
The environment variables for \c make can also be given as parameters:
- \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 3
+ \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 3
If you want to install the program immediately, make sure that the device
is connected to the computer in "PC Suite" mode, and run \c sis target
with the \c QT_SIS_OPTIONS=-i, like this:
- \snippet doc/src/snippets/code/doc_src_s60-introduction.qdoc 5
+ \snippet doc/src/snippets/code/doc_src_symbian-introduction.qdoc 5
*/
diff --git a/doc/src/platforms/winsystem.qdoc b/doc/src/platforms/winsystem.qdoc
index 72e7da6..2f43a74 100644
--- a/doc/src/platforms/winsystem.qdoc
+++ b/doc/src/platforms/winsystem.qdoc
@@ -102,9 +102,9 @@
When compiling for this platform, the macro \c{Q_WS_WINCE} is defined.
See the \l{Qt for Windows CE} documentation for more information.
- \section1 Qt for Symbian Platform
+ \section1 Qt for the Symbian platform
When compiling for this platform, the macro \c{Q_WS_S60} is defined.
- See the \l{Symbian Platform - Introduction to Qt} documentation for
+ See the \l{The Symbian platform - Introduction to Qt} documentation for
more information.
*/
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index 2a1f8ff..fb1d0e4 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -491,7 +491,7 @@
rich end-user applications for devices running S60 3.1 and
later.
- See the \l{Symbian Platform - Introduction to Qt} for more information.
+ See the \l{The Symbian platform - Introduction to Qt} for more information.
\section1 Animation Framework
diff --git a/doc/src/snippets/code/doc_src_deployment.qdoc b/doc/src/snippets/code/doc_src_deployment.qdoc
index d233ec3..2d6a78f 100644
--- a/doc/src/snippets/code/doc_src_deployment.qdoc
+++ b/doc/src/snippets/code/doc_src_deployment.qdoc
@@ -453,3 +453,44 @@ CONFIG+=x86 ppc
//! [54]
qApp->addLibraryPath("C:/customPath/plugins");
//! [54]
+
+//! [55]
+cd examples\widgets\wiggly
+//! [55]
+
+//! [56]
+vendorinfo = \
+ "%{\"Example Localized Vendor\"}" \
+ ":\"Example Vendor\""
+
+default_deployment.pkg_prerules = vendorinfo
+//! [56]
+
+//! [57]
+supported_platforms = \
+ "; This demo only supports S60 5.0" \
+ "[0x1028315F],0,0,0,{\"S60ProductID\"}"
+
+default_deployment.pkg_prerules += supported_platforms
+//! [57]
+
+//! [58]
+embedded_deployments = \
+ "; Embed Open C dependencies" \
+ "@\"$${EPOCROOT}nokia_plugin/openc/s60opencsis/pips_s60_1_6_SS.sis\",(0x20013851)" \
+ "@\"$${EPOCROOT}nokia_plugin/openc/s60opencsis/openc_ssl_s60_1_6_SS.sis\",(0x200110CB)" \
+ "@\"$${EPOCROOT}nokia_plugin/opencpp/s60opencppsis/STDCPP_s60_1_6_SS.sis\",(0x2000F866)" \
+ "; Embed Qt dependencies" \
+ "@\"$$[QT_INSTALL_PREFIX]/qt_rndsigned.sis\",(0x2001E61C)"
+
+default_deployment.pkg_prerules += embedded_deployments
+//! [58]
+
+//! [59]
+qmake
+make release-gcce
+//! [59]
+
+//! [60]
+make sis
+//! [60] \ No newline at end of file
diff --git a/doc/src/snippets/code/doc_src_installation.qdoc b/doc/src/snippets/code/doc_src_installation.qdoc
index 68765ec..3563a64 100644
--- a/doc/src/snippets/code/doc_src_installation.qdoc
+++ b/doc/src/snippets/code/doc_src_installation.qdoc
@@ -209,3 +209,10 @@ make sis QT_SIS_OPTIONS=-i
cd \Qt\%VERSION%
configure -platform win32-g++ -xplatform symbian-sbsv2
//! [31]
+
+//! [32]
+cd <Your SDK path>\S60CppExamples\Note\group
+bldmake bldfiles
+abld build winscw udeb
+abld build gcce urel
+//! [32]
diff --git a/doc/src/snippets/code/doc_src_s60-introduction.qdoc b/doc/src/snippets/code/doc_src_symbian-introduction.qdoc
index 8949df6..8949df6 100644
--- a/doc/src/snippets/code/doc_src_s60-introduction.qdoc
+++ b/doc/src/snippets/code/doc_src_symbian-introduction.qdoc
diff --git a/examples/symbianpkgrules.pri b/examples/symbianpkgrules.pri
index 59c5480..35edbfb 100644
--- a/examples/symbianpkgrules.pri
+++ b/examples/symbianpkgrules.pri
@@ -11,3 +11,5 @@ vendorinfo = \
" "
default_deployment.pkg_prerules += vendorinfo
+
+isEmpty(ICON):ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg
diff --git a/mkspecs/features/symbian/application_icon.prf b/mkspecs/features/symbian/application_icon.prf
index 62fd018..1edbe14 100644
--- a/mkspecs/features/symbian/application_icon.prf
+++ b/mkspecs/features/symbian/application_icon.prf
@@ -9,8 +9,9 @@ contains( CONFIG, no_icon ) {
# There is no point in compiling the MIF icon if no_icon CONFIGS is set
!isEmpty(ICON) {
- !count(ICON, $$size(TRANSLATIONS)):!count(ICON, 1) {
- message("ICON keyword must have one or the same amout of items as in TRANSLATIONS keyword")
+ !count(ICON, 1) {
+ ICON = $$first(ICON)
+ warning("Only first icon specified in ICON variable is used: $$ICON")
}
# Try to produce indentical string to fixedTarget in SymbianMakefileGenerator, replaced chars taken
@@ -35,7 +36,7 @@ contains( CONFIG, no_icon ) {
mifconv.output = ${ZDIR}$$APP_RESOURCE_DIR/$${baseTarget}.mif
# Based on: http://www.forum.nokia.com/document/Cpp_Developers_Library
# svg-t icons should always use /c32 depth
- mifconv.commands = mifconv ${QMAKE_FILE_OUT} $$join(ICON, " /c32 ", "/c32 ",)
+ mifconv.commands = mifconv ${QMAKE_FILE_OUT} /c32 ${QMAKE_FILE_IN}
mifconv.input = ICON
mifconv.CONFIG = no_link combine
# target_predeps together with combine seems not to work correctly, lets define it by ourselves
diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp
index 17baa50..dc33ade 100644
--- a/src/gui/image/qpixmap_s60.cpp
+++ b/src/gui/image/qpixmap_s60.cpp
@@ -977,4 +977,9 @@ void QS60PixmapData::fromNativeType(void* pixmap, NativeType nativeType)
}
}
+QPixmapData *QS60PixmapData::createCompatiblePixmapData() const
+{
+ return new QS60PixmapData(pixelType());
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/image/qpixmap_s60_p.h b/src/gui/image/qpixmap_s60_p.h
index b1b5824..8631ebd 100644
--- a/src/gui/image/qpixmap_s60_p.h
+++ b/src/gui/image/qpixmap_s60_p.h
@@ -87,6 +87,8 @@ public:
QS60PixmapData(PixelType type);
~QS60PixmapData();
+ QPixmapData *createCompatiblePixmapData() const;
+
void resize(int width, int height);
void fromImage(const QImage &image, Qt::ImageConversionFlags flags);
void copy(const QPixmapData *data, const QRect &rect);
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index c7f0c00..85b6d00 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -712,7 +712,7 @@ TKeyResponse QSymbianControl::OfferKeyEvent(const TKeyEvent& keyEvent, TEventCod
Qt::KeyboardModifiers mods = mapToQtModifiers(keyEvent.iModifiers);
QKeyEventEx qKeyEvent(type == EEventKeyUp ? QEvent::KeyRelease : QEvent::KeyPress, keyCode,
mods, qt_keymapper_private()->translateKeyEvent(keyCode, mods),
- false, 1, keyEvent.iScanCode, s60Keysym, keyEvent.iModifiers);
+ (keyEvent.iRepeats != 0), 1, keyEvent.iScanCode, s60Keysym, keyEvent.iModifiers);
// WId wid = reinterpret_cast<RWindowGroup *>(keyEvent.Handle())->Child();
// if (!wid)
// Could happen if window isn't shown yet.
diff --git a/src/gui/widgets/qabstractslider.cpp b/src/gui/widgets/qabstractslider.cpp
index e0db9c2..988a7e7 100644
--- a/src/gui/widgets/qabstractslider.cpp
+++ b/src/gui/widgets/qabstractslider.cpp
@@ -219,6 +219,10 @@ QAbstractSliderPrivate::QAbstractSliderPrivate()
blocktracking(false), pressed(false),
invertedAppearance(false), invertedControls(false),
orientation(Qt::Horizontal), repeatAction(QAbstractSlider::SliderNoAction)
+#ifdef QT_KEYPAD_NAVIGATION
+ , isAutoRepeating(false)
+ , repeatMultiplier(1)
+#endif
{
}
@@ -371,6 +375,9 @@ int QAbstractSlider::maximum() const
abstract sliders provides and typically corresponds to the user
pressing an arrow key.
+ If the property is modified during an auto repeating key event, behavior
+ is undefined.
+
\sa pageStep
*/
@@ -598,10 +605,10 @@ void QAbstractSlider::triggerAction(SliderAction action)
d->blocktracking = true;
switch (action) {
case SliderSingleStepAdd:
- setSliderPosition(d->overflowSafeAdd(d->singleStep));
+ setSliderPosition(d->overflowSafeAdd(d->effectiveSingleStep()));
break;
case SliderSingleStepSub:
- setSliderPosition(d->overflowSafeAdd(-d->singleStep));
+ setSliderPosition(d->overflowSafeAdd(-d->effectiveSingleStep()));
break;
case SliderPageStepAdd:
setSliderPosition(d->overflowSafeAdd(d->pageStep));
@@ -702,7 +709,7 @@ void QAbstractSlider::wheelEvent(QWheelEvent * e)
// Calculate how many lines to scroll. Depending on what delta is (and
// offset), we might end up with a fraction (e.g. scroll 1.3 lines). We can
// only scroll whole lines, so we keep the reminder until next event.
- qreal stepsToScrollF = offset * QApplication::wheelScrollLines() * d->singleStep;
+ qreal stepsToScrollF = offset * QApplication::wheelScrollLines() * d->effectiveSingleStep();
// Check if wheel changed direction since last event:
if (d->offset_accumulated != 0 && (offset / d->offset_accumulated) < 0)
d->offset_accumulated = 0;
@@ -773,6 +780,38 @@ void QAbstractSlider::keyPressEvent(QKeyEvent *ev)
{
Q_D(QAbstractSlider);
SliderAction action = SliderNoAction;
+#ifdef QT_KEYPAD_NAVIGATION
+ if (ev->isAutoRepeat()) {
+ if (d->firstRepeat.isNull())
+ d->firstRepeat = QTime::currentTime();
+ else if (1 == d->repeatMultiplier) {
+ // This is the interval in milli seconds which one key repetition
+ // takes.
+ const int repeatMSecs = d->firstRepeat.msecsTo(QTime::currentTime());
+
+ /**
+ * The time it takes to currently navigate the whole slider.
+ */
+ const qreal currentTimeElapse = (qreal(maximum()) / singleStep()) * repeatMSecs;
+
+ /**
+ * This is an arbitrarily determined constant in msecs that
+ * specifies how long time it should take to navigate from the
+ * start to the end(excluding starting key auto repeat).
+ */
+ const int SliderRepeatElapse = 2500;
+
+ d->repeatMultiplier = currentTimeElapse / SliderRepeatElapse;
+ }
+
+ }
+ else if (!d->firstRepeat.isNull()) {
+ d->firstRepeat = QTime();
+ d->repeatMultiplier = 1;
+ }
+
+#endif
+
switch (ev->key()) {
#ifdef QT_KEYPAD_NAVIGATION
case Qt::Key_Select:
diff --git a/src/gui/widgets/qabstractslider_p.h b/src/gui/widgets/qabstractslider_p.h
index 9324d44..6591981 100644
--- a/src/gui/widgets/qabstractslider_p.h
+++ b/src/gui/widgets/qabstractslider_p.h
@@ -68,7 +68,13 @@ public:
void setSteps(int single, int page);
- int minimum, maximum, singleStep, pageStep, value, position, pressValue;
+ int minimum, maximum, pageStep, value, position, pressValue;
+
+ /**
+ * Call effectiveSingleStep() when changing the slider value.
+ */
+ int singleStep;
+
float offset_accumulated;
uint tracking : 1;
uint blocktracking :1;
@@ -83,8 +89,33 @@ public:
#ifdef QT_KEYPAD_NAVIGATION
int origValue;
+
+ /**
+ */
+ bool isAutoRepeating;
+
+ /**
+ * When we're auto repeating, we multiply singleStep with this value to
+ * get our effective step.
+ */
+ qreal repeatMultiplier;
+
+ /**
+ * The time of when the first auto repeating key press event occurs.
+ */
+ QTime firstRepeat;
+
#endif
+ inline int effectiveSingleStep() const
+ {
+ return singleStep
+#ifdef QT_KEYPAD_NAVIGATION
+ * repeatMultiplier
+#endif
+ ;
+ }
+
inline int bound(int val) const { return qMax(minimum, qMin(maximum, val)); }
inline int overflowSafeAdd(int add) const
{
diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def
index 1218b75..49c4361 100644
--- a/src/s60installs/bwins/QtCoreu.def
+++ b/src/s60installs/bwins/QtCoreu.def
@@ -4387,4 +4387,15 @@ EXPORTS
?QBasicAtomicPointer_isFetchAndAddNative@@YA_NXZ @ 4386 NONAME ; bool QBasicAtomicPointer_isFetchAndAddNative(void)
?QBasicAtomicPointer_isFetchAndStoreNative@@YA_NXZ @ 4387 NONAME ; bool QBasicAtomicPointer_isFetchAndStoreNative(void)
?QBasicAtomicPointer_isTestAndSetNative@@YA_NXZ @ 4388 NONAME ; bool QBasicAtomicPointer_isTestAndSetNative(void)
+ ??0SignalEvent@QStateMachine@@QAE@PAVQObject@@HABV?$QList@VQVariant@@@@@Z @ 4389 NONAME ; QStateMachine::SignalEvent::SignalEvent(class QObject *, int, class QList<class QVariant> const &)
+ ??0WrappedEvent@QStateMachine@@QAE@PAVQObject@@PAVQEvent@@@Z @ 4390 NONAME ; QStateMachine::WrappedEvent::WrappedEvent(class QObject *, class QEvent *)
+ ??1SignalEvent@QStateMachine@@UAE@XZ @ 4391 NONAME ; QStateMachine::SignalEvent::~SignalEvent(void)
+ ??1WrappedEvent@QStateMachine@@UAE@XZ @ 4392 NONAME ; QStateMachine::WrappedEvent::~WrappedEvent(void)
+ ??_ESignalEvent@QStateMachine@@UAE@I@Z @ 4393 NONAME ; QStateMachine::SignalEvent::~SignalEvent(unsigned int)
+ ??_EWrappedEvent@QStateMachine@@UAE@I@Z @ 4394 NONAME ; QStateMachine::WrappedEvent::~WrappedEvent(unsigned int)
+ ?arguments@SignalEvent@QStateMachine@@QBE?AV?$QList@VQVariant@@@@XZ @ 4395 NONAME ; class QList<class QVariant> QStateMachine::SignalEvent::arguments(void) const
+ ?event@WrappedEvent@QStateMachine@@QBEPAVQEvent@@XZ @ 4396 NONAME ; class QEvent * QStateMachine::WrappedEvent::event(void) const
+ ?object@WrappedEvent@QStateMachine@@QBEPAVQObject@@XZ @ 4397 NONAME ; class QObject * QStateMachine::WrappedEvent::object(void) const
+ ?sender@SignalEvent@QStateMachine@@QBEPAVQObject@@XZ @ 4398 NONAME ; class QObject * QStateMachine::SignalEvent::sender(void) const
+ ?signalIndex@SignalEvent@QStateMachine@@QBEHXZ @ 4399 NONAME ; int QStateMachine::SignalEvent::signalIndex(void) const
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 8a43f21..166b6fe 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -12514,4 +12514,7 @@ EXPORTS
?app_compile_version@QApplicationPrivate@@2HA @ 12513 NONAME ; int QApplicationPrivate::app_compile_version
?spacerItemFactoryMethod@QLayoutPrivate@@2P6APAVQSpacerItem@@PBVQLayout@@HHW4Policy@QSizePolicy@@1@ZA @ 12514 NONAME ; class QSpacerItem * (*QLayoutPrivate::spacerItemFactoryMethod)(class QLayout const *, int, int, enum QSizePolicy::Policy, enum QSizePolicy::Policy)
?allWidgets@QWidgetPrivate@@2PAV?$QSet@PAVQWidget@@@@A @ 12515 NONAME ; class QSet<class QWidget *> * QWidgetPrivate::allWidgets
+ ?effectiveFocusWidget@QWidgetPrivate@@QAEPAVQWidget@@XZ @ 12516 NONAME ; class QWidget * QWidgetPrivate::effectiveFocusWidget(void)
+ ?ignoreUnusedNavigationEvents@QTextControl@@QBE_NXZ @ 12517 NONAME ; bool QTextControl::ignoreUnusedNavigationEvents(void) const
+ ?setIgnoreUnusedNavigationEvents@QTextControl@@QAEX_N@Z @ 12518 NONAME ; void QTextControl::setIgnoreUnusedNavigationEvents(bool)
diff --git a/src/s60installs/bwins/QtWebKitu.def b/src/s60installs/bwins/QtWebKitu.def
index c14abe2..e5631f8 100644
--- a/src/s60installs/bwins/QtWebKitu.def
+++ b/src/s60installs/bwins/QtWebKitu.def
@@ -361,8 +361,8 @@ EXPORTS
?previousSibling@QWebElement@@QBE?AV1@XZ @ 360 NONAME ; class QWebElement QWebElement::previousSibling(void) const
?print@QWebView@@QBEXPAVQPrinter@@@Z @ 361 NONAME ; void QWebView::print(class QPrinter *) const
?printRequested@QWebPage@@IAEXPAVQWebFrame@@@Z @ 362 NONAME ; void QWebPage::printRequested(class QWebFrame *)
- ?printingMaximumShrinkFactor@QWebSettings@@QBEMXZ @ 363 NONAME ; float QWebSettings::printingMaximumShrinkFactor(void) const
- ?printingMinimumShrinkFactor@QWebSettings@@QBEMXZ @ 364 NONAME ; float QWebSettings::printingMinimumShrinkFactor(void) const
+ ?printingMaximumShrinkFactor@QWebSettings@@QBEMXZ @ 363 NONAME ABSENT ; float QWebSettings::printingMaximumShrinkFactor(void) const
+ ?printingMinimumShrinkFactor@QWebSettings@@QBEMXZ @ 364 NONAME ABSENT ; float QWebSettings::printingMinimumShrinkFactor(void) const
?provisionalLoad@QWebFrame@@IAEXXZ @ 365 NONAME ; void QWebFrame::provisionalLoad(void)
?qWebKitMajorVersion@@YAHXZ @ 366 NONAME ; int qWebKitMajorVersion(void)
?qWebKitMinorVersion@@YAHXZ @ 367 NONAME ; int qWebKitMinorVersion(void)
@@ -488,8 +488,8 @@ EXPORTS
?setPluginFactory@QWebPage@@QAEXPAVQWebPluginFactory@@@Z @ 487 NONAME ; void QWebPage::setPluginFactory(class QWebPluginFactory *)
?setPreferredContentsSize@QWebPage@@QBEXABVQSize@@@Z @ 488 NONAME ; void QWebPage::setPreferredContentsSize(class QSize const &) const
?setPreferredPluginForMimeType@QWebPluginDatabase@@QAEXABVQString@@ABVQWebPluginInfo@@@Z @ 489 NONAME ; void QWebPluginDatabase::setPreferredPluginForMimeType(class QString const &, class QWebPluginInfo const &)
- ?setPrintingMaximumShrinkFactor@QWebSettings@@QAEXM@Z @ 490 NONAME ; void QWebSettings::setPrintingMaximumShrinkFactor(float)
- ?setPrintingMinimumShrinkFactor@QWebSettings@@QAEXM@Z @ 491 NONAME ; void QWebSettings::setPrintingMinimumShrinkFactor(float)
+ ?setPrintingMaximumShrinkFactor@QWebSettings@@QAEXM@Z @ 490 NONAME ABSENT ; void QWebSettings::setPrintingMaximumShrinkFactor(float)
+ ?setPrintingMinimumShrinkFactor@QWebSettings@@QAEXM@Z @ 491 NONAME ABSENT ; void QWebSettings::setPrintingMinimumShrinkFactor(float)
?setRenderHint@QWebView@@QAEXW4RenderHint@QPainter@@_N@Z @ 492 NONAME ; void QWebView::setRenderHint(enum QPainter::RenderHint, bool)
?setRenderHints@QWebView@@QAEXV?$QFlags@W4RenderHint@QPainter@@@@@Z @ 493 NONAME ; void QWebView::setRenderHints(class QFlags<enum QPainter::RenderHint>)
?setScrollBarPolicy@QWebFrame@@QAEXW4Orientation@Qt@@W4ScrollBarPolicy@3@@Z @ 494 NONAME ; void QWebFrame::setScrollBarPolicy(enum Qt::Orientation, enum Qt::ScrollBarPolicy)
@@ -619,4 +619,5 @@ EXPORTS
?staticMetaObject@QGraphicsWebView@@2UQMetaObject@@B @ 618 NONAME ; struct QMetaObject const QGraphicsWebView::staticMetaObject
?staticMetaObject@QWebPage@@2UQMetaObject@@B @ 619 NONAME ; struct QMetaObject const QWebPage::staticMetaObject
?staticMetaObject@QWebView@@2UQMetaObject@@B @ 620 NONAME ; struct QMetaObject const QWebView::staticMetaObject
+ ?attributeNames@QWebElement@@QBE?AVQStringList@@ABVQString@@@Z @ 621 NONAME ; class QStringList QWebElement::attributeNames(class QString const &) const
diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def
index 99be68e..6a4cdbd 100644
--- a/src/s60installs/eabi/QtCoreu.def
+++ b/src/s60installs/eabi/QtCoreu.def
@@ -3619,4 +3619,18 @@ EXPORTS
_ZN15QBasicAtomicInt19isFetchAndAddNativeEv @ 3618 NONAME
_ZN15QBasicAtomicInt21isFetchAndStoreNativeEv @ 3619 NONAME
_ZN15QBasicAtomicInt25isReferenceCountingNativeEv @ 3620 NONAME
+ _ZN13QStateMachine11SignalEventC1EP7QObjectiRK5QListI8QVariantE @ 3621 NONAME
+ _ZN13QStateMachine11SignalEventC2EP7QObjectiRK5QListI8QVariantE @ 3622 NONAME
+ _ZN13QStateMachine11SignalEventD0Ev @ 3623 NONAME
+ _ZN13QStateMachine11SignalEventD1Ev @ 3624 NONAME
+ _ZN13QStateMachine11SignalEventD2Ev @ 3625 NONAME
+ _ZN13QStateMachine12WrappedEventC1EP7QObjectP6QEvent @ 3626 NONAME
+ _ZN13QStateMachine12WrappedEventC2EP7QObjectP6QEvent @ 3627 NONAME
+ _ZN13QStateMachine12WrappedEventD0Ev @ 3628 NONAME
+ _ZN13QStateMachine12WrappedEventD1Ev @ 3629 NONAME
+ _ZN13QStateMachine12WrappedEventD2Ev @ 3630 NONAME
+ _ZTIN13QStateMachine11SignalEventE @ 3631 NONAME
+ _ZTIN13QStateMachine12WrappedEventE @ 3632 NONAME
+ _ZTVN13QStateMachine11SignalEventE @ 3633 NONAME
+ _ZTVN13QStateMachine12WrappedEventE @ 3634 NONAME
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index 43e291c..6c45a6e 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -11735,4 +11735,6 @@ EXPORTS
_Zls6QDebugP15QGraphicsObject @ 11734 NONAME
_Zls6QDebugRK12QStyleOption @ 11735 NONAME
_Zls6QDebugRKN12QStyleOption10OptionTypeE @ 11736 NONAME
+ _ZN12QTextControl31setIgnoreUnusedNavigationEventsEb @ 11737 NONAME
+ _ZNK12QTextControl28ignoreUnusedNavigationEventsEv @ 11738 NONAME
diff --git a/src/s60installs/eabi/QtWebKitu.def b/src/s60installs/eabi/QtWebKitu.def
index 88343c1..4aad884 100644
--- a/src/s60installs/eabi/QtWebKitu.def
+++ b/src/s60installs/eabi/QtWebKitu.def
@@ -654,8 +654,8 @@ EXPORTS
_Z34qt_drt_resetOriginAccessWhiteListsv @ 653 NONAME
_ZN11QWebElement17removeAllChildrenEv @ 654 NONAME
_ZN11QWebElement6renderEP8QPainter @ 655 NONAME
- _ZN12QWebSettings30setPrintingMaximumShrinkFactorEf @ 656 NONAME
- _ZN12QWebSettings30setPrintingMinimumShrinkFactorEf @ 657 NONAME
+ _ZN12QWebSettings30setPrintingMaximumShrinkFactorEf @ 656 NONAME ABSENT
+ _ZN12QWebSettings30setPrintingMinimumShrinkFactorEf @ 657 NONAME ABSENT
_ZN16QGraphicsWebView10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 658 NONAME
_ZN16QGraphicsWebView11linkClickedERK4QUrl @ 659 NONAME
_ZN16QGraphicsWebView12loadFinishedEb @ 660 NONAME
@@ -674,8 +674,8 @@ EXPORTS
_ZN21QWebElementCollectionD2Ev @ 673 NONAME
_ZN21QWebElementCollectionaSERKS_ @ 674 NONAME
_ZN9QWebFrame6renderEP8QPainterNS_11RenderLayerERK7QRegion @ 675 NONAME
- _ZNK12QWebSettings27printingMaximumShrinkFactorEv @ 676 NONAME
- _ZNK12QWebSettings27printingMinimumShrinkFactorEv @ 677 NONAME
+ _ZNK12QWebSettings27printingMaximumShrinkFactorEv @ 676 NONAME ABSENT
+ _ZNK12QWebSettings27printingMinimumShrinkFactorEv @ 677 NONAME ABSENT
_ZNK16QGraphicsWebView10isModifiedEv @ 678 NONAME
_ZNK16QGraphicsWebView10pageActionEN8QWebPage9WebActionE @ 679 NONAME
_ZNK16QGraphicsWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 680 NONAME
@@ -689,4 +689,5 @@ EXPORTS
_ZThn16_NK16QGraphicsWebView8sizeHintEN2Qt8SizeHintERK6QSizeF @ 688 NONAME
_ZThn8_N16QGraphicsWebView10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 689 NONAME
_ZThn8_NK16QGraphicsWebView16inputMethodQueryEN2Qt16InputMethodQueryE @ 690 NONAME
+ _ZNK11QWebElement14attributeNamesERK7QString @ 691 NONAME
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp
index d7f042e..0effd01 100644
--- a/tests/auto/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp
@@ -47,6 +47,7 @@
#include <qmatrix.h>
#include <qdesktopwidget.h>
#include <qpaintengine.h>
+#include <qsplashscreen.h>
#include <private/qpixmapdata_p.h>
@@ -169,6 +170,7 @@ private slots:
void loadFromDataNullValues();
void preserveDepth();
+ void splash_crash();
};
static bool lenientCompare(const QPixmap &actual, const QPixmap &expected)
@@ -1421,6 +1423,17 @@ void tst_QPixmap::fromImage_crash()
delete img;
}
+//This is testing QPixmapData::createCompatiblePixmapData - see QTBUG-5977
+void tst_QPixmap::splash_crash()
+{
+ QPixmap pix;
+ pix = QPixmap(":/images/designer.png");
+ QSplashScreen splash(pix);
+ splash.show();
+ QCoreApplication::processEvents();
+ splash.close();
+}
+
void tst_QPixmap::fromData()
{
unsigned char bits[] = { 0xaa, 0x55 };