Revision control
++ Qt 4.5.2-tower
++ ---------------
++
++ The Qt for S60 "Tower" release is the fifth pre-release from the Qt for
++ S60 porting project. "Tower" is based on the Qt 4.5 codebase (mostly Qt 4.5.2).
++
++ This list of changes lists S60 specific fixes only,
++ for general 4.5.x changes go to:
++
++ http://qt.nokia.com/developer/changes/changes-4.5.2 (partially in Tower)
++
++ Some of the changes listed in this file include issue tracking numbers
++ corresponding to tasks in the Task Tracker:
++
++
++ Each of these identifiers can be entered in the task tracker to obtain
++ more information about a particular change. Sometimes the task is internal
++ and cannot be viewed by the public, a lot of them are non-public for Qt for
++ S60 at the moment.
++
++ ****************************************************************************
++ * New features *
++ ****************************************************************************
++
++ New modules
++ -----------
++
++ - Input methods
++ * Added events to support opening and closing the virtual keyboard, called
++ software input panel in Qt.
++ * Added an option to QApplication to choose between single or double click
++ input panel activation.
++ * Added input method hints API to Qt. These can be used to instruct input methods
++ to only allow certain characters or tailor their appearance.
++ * Added Qt::ImAnchorPosition to support querying for selections through input
++ methods.
++ * Added QInputMethodEvent::Selection to support setting the selection through
++ input methods.
++
++ - Phonon
++ * The Phonon library is now part of Qt, but it comes without a backend.
++ This means that applications can build and run against the Phonon
++ library, but there is currently no S60 backend plugin providing actual
++ multimedia playback. Possible alternatives such as Helix and MMF are
++ being investigated.
++
++ - QtSql
++ * Implemented QtSql module with sqlite3 backend. For now backend is
++ provided only in binary format.
++
++ - QtWebkit
++ * Experimental webkit build for S60. Can be enabled by passing -webkit
++ to configure.
++
++ New classes
++ ------------
++
++ - QScopedPointer
++ * Smart pointer, which deletes pointer when destroyed.
++
++ Ported classes
++ --------------
++
++ - QColormap
++ * Added basic implementation of QColormap for Symbian.
++
++ - QLocalSocket and QLocalServer
++ * Added support for QLocalSocket and QLocalServer on Symbian.
++
++ - QSound
++ * Implemented CMdaAudioPlayerUtility based Symbian backend for QSound.
++
++ Features
++ --------
++
++ - QApplication
++ * Implemented QApplication::beep() for Symbian.
++
++ - QPixmap
++ * Added supported for converting to/from CFbsBitmap
++
++ - QSslSocket
++ * Added support for -openssl option i.e. runtime resolving of OpenSSL
++ symbols.
++
++ - QWidget
++ * Basic widgets are now navigatable and usable via keypad on SDK 3
++ FP 1 and FP 2.
++ * Widgets can now be made semi-transparent on systems that support it
++ using Qt::WA_TranslucentBackground.
++
++ - Exception safety
++ * Improving the exception safety of Qt, not yet complete.
++ * Added support for translating between Symbian leaves and standard C++
++ exceptions.
++
++ Optimizations
++ -------------
++
++ - qdrawhelper
++ * Optimized drawing operations for RVCT builds, particulary for ARMV6.
++
++ - QFont
++ * Use cached DPI for metrics.
++
++ - qwidget_s60.cpp
++ * Avoid unnecessary calls to FocusChanged in Symbian.
++
++ - qwindowsurface_s60.cpp
++ * Avoid updating raster buffer pointer on window hide
++
++ Documentation
++ -------------
++
++ - exceptionsafety.qdoc
++ * A guide to exception safety in Qt.
++
++ - symbian-exceptionsafety.qdoc
++ * A guide to integrating exception safety in Qt with Symbian.
++
++ ****************************************************************************
++ * Code clean-up *
++ ****************************************************************************
++
++ - Cleanup qeventdispatcher_unix.cpp
++ * 247268: All qeventdispatcher_unix.cpp changes were reverted since
++ this file is not anymore used in Symbian OS branch.
++
++ - Cleanup QtNetwork workarounds implemented earlier due to Open C bugs.
++ * 247287: Removed getaddrinfo workaround.
++ * 247288: Removed waitForConnected workaround.
++ * 247289: Removed qt_socket_accept workaround.
++ * 247290: Removed qt_socket_connect workaround.
++ * 247290: Removed E32IONREAD workaround.
++ * 247293: Removed nativeHasPendingDatagrams workaround.
++ * 247295: Removed QNativeSocketEnginePrivate::nativeRead EPIPE
++ workaround.
++
++ - Other code clean-ups
++ * 247278: Removed unnecessary includes from qbackingstore.cpp.
++ * Fixed Q_OS_SYMBIAN ifdef usage in qfiledialog_p.h.
++ * 247272: Removed qtestnetworkservers.h dependency, used
++ network-settings.h.
++ * Revert "Work around compiler bug on Nokia Metrowerks compiler."
++ * Remove UI highlights being inverted colors based on highlight text
++ colors.
++
++ ****************************************************************************
++ * Build issues *
++ ****************************************************************************
++
++ - Macros
++ * QT_NO_DEBUG now properly defined in release mode.
++
++ - QTest
++ * Fixed testlib export macros for RVCT builds.
++
++ - Namespaces
++ * Now builds when -qtnamespace option is defined.
++
++ ****************************************************************************
++ * Changes to existing classes *
++ ****************************************************************************
++
++ - QApplication
++ * 252798: Fixed layout when orientation changed via
++ AknAppUi::SetOrientationL.
++ * Generating MouseEvents has gone through several changes.
++ * qt_init() has been changed: auto flush is always enabled for
++ window server sessions on 3.1 SDK for both UDEB and UREL.
++ * Added support for '-graphics-system' command line option
++
++ - QCoeFepInputContext (non-public)
++ * Fixes FEP crash when changing the focused Qt widget to NULL.
++ * Fixed a bug where the virtual keyboard could not be opened if there
++ was only one input widget.
++ * Fixed a crash in FEP when exiting application.
++
++ - QDebug
++ * Fixed debug printing (incl. qWarning, qFatal) for strings longer
++ than 256 characters.
++ * introduce a breakpoint to get the emulator to stop in the debugger
++ when qFatal is called
++
++ - QDesktopServices
++ * Fixed forwardslash/backslash usage as an path separator.
++ * Switched QDesktopServices mail-to URL handling to RSendAs in Symbian,
++ due to the fact that CSendUi requires extensive capabilities to work
++ correctly. Currently e-mail sending with qdesktopservices::openUrl
++ works in Symbian only if e-mail account already exists.
++
++ - QDesktopWidget
++ * 253930: Implement proper resize behavior and emit necessary signals.
++
++ - QEventDispatcherSymbian (non-public)
++ * Lowered the timeout for reprioritizing the process to 100ms.
++ * Fixed ASSERT panic in Symbian event dispatcher.
++ * 246600: Fix problem in eventdispatcher destructor / AO canceling.
++ * Fixed active scheduler removal when calling QThread::terminate.
++ * Fix to Open C bug: select sometimes returns -1 and errno is
++ ECONNREFUSED.
++ * Fix a crash when using QEventLoop::ExcludeSocketNotifiers flag.
++ * Changed to round robin scheduling for Qt's active objects. Other
++ active objects will still be scheduled like before.
++ * Fixed crash if events are posted before QApplication construction
++
++ - QFontDataBase
++ * Now, also fonts from the user's /resources/fonts directories are
++ available.
++
++ - QFontEngine
++ * Fix the vertical advance of glyph metrics.
++
++ - QFontMetrics
++ * Fixed the boundingRect calculation for text.
++
++ - QGraphicsView
++ * Added support for virtual keyboard to the the viewport.
++
++ - QGraphicsTextItem
++ * Added support for virtual keyboard.
++
++ - QHostInfo
++ * Added support for host lookups with multiple ipv4 addresses.
++
++ - QInputContext
++ * Added QInputContext::s60FilterEvent().
++
++ - QIoDevice
++ * Fixed compilation error when QIODEVICE_DEBUG is defined.
++
++ - QKeyMapper (non-public)
++ * Fixed a broken keymapping where Enter key would be mapped to Tab.
++
++ - QLocale
++ * Removed workaround for missing tzname symbol, fixes QLocal timeZone
++ implementation for Symbian.
++
++ - QLocalSocket
++ * Connecting to QLocalServer is always done in blocking mode.
++
++ - QMenuBar
++ * Native menus are handled properly even when application has multiple
++ QMainWindows.
++ * Fixed a bug causing both native and qt menu to be created.
++ * Fix for disappearing options menu after coming back from dialog.
++
++ - QNativeSocketEnginePrivate (non-public)
++ * Socket connect and listen failure is indicated in exception set.
++ (Workaround to Open C bug)
++
++ - QNetworkInterface
++ * Fixed R-handle leak in Symbian version of qnetworkinterface_unix.cpp.
++ * Introduced a new qnetworkinterface_symbian.cpp, because there wasn't
++ really anything common to UNIX equivalent.
++
++ - QPixmap
++ * Added fromSymbianCFbsBitmap() and toSymbianCFbsBitmap().
++
++ - QPlainTextEdit
++ * Added support for virtual keyboard.
++
++ - QPluginLoader
++ * QPluginLoader will look for plugin stubs from the same folder on other
++ drives if it can't find them from the indicated drive.
++
++ - QS60Style
++ * Added subElementRect implementation for SE_ItemViewItemCheckIndicator.
++ * Added support for E90 layouts.
++ * Added support for QScrollArea, QTextEditor, QGroupBox, QTreeView,
++ QToolBar and QDial styling.
++ * Better support for theme and layout changes.
++ * Better support for themed palettes and themed text colors.
++ * Better support for multiselection in item views.
++ * Better theming for QTable and QPanel.
++ * Better support of highlight graphics and texts for QLists, QTreeViews,
++ QCalendarWidgets and QComboBoxes.
++ * Support polishing fonts. Fonts are no longer changed within the drawing
++ code.
++ * Draw spinbox arrowbuttons side-by-side, instead one on top of the other.
++ * Harmonize widget drawing so that widgets are of similar height.
++ * Support check states for QLists and QPushButtons.
++ * Support flat QPushButtons.
++ * Support busy indicator.
++ * Support QScrollBar pressed state.
++ * Support QPushButton disabled theme graphics.
++ * Separate theme background for QDialogs.
++ * Clarify QToolButton pressed state.
++ * Removed linedrawing of panels and groupboxes.
++ * Fix palette-polution for a style that is activated from an application
++ after S60Style has been in use.
++ * Fix for frame masks with color depth other than EGrey2.
++ * Fix for squeezed QTabBars.
++ * Fix memory leak when color skinning graphics.
++ * Show focus/Editfocus visualization for KeyPad navigation on
++ SDK 3 FP 1 and FP 2.
++ * Fix for overwriting user specified palettes.
++
++ - QSelectThread (non-public)
++ * We force monitoring sockets exception status as well, and not
++ just read/write.
++ * Notification related to the particular socket signaled via exception
++ fd_set will be mapped to the appropriate read/write notification.
++
++ - QTemporaryFile
++ * Fixed temporary file rename in Symbian OS.
++
++ - QTest
++ * Disable keypad navigation for autotests by default
++
++ - QTextEdit
++ * Added support for virtual keyboard.
++
++ - QThread
++ * Fixed thread termination in Symbian OS.
++
++ - QUdpSocket
++ * Updated BindFlag documentation to reflect behaviour on Symbian OS.
++ * Wrote hack for QUdpSocket::writeDatagram return value in Symbian OS.
++
++ - QWidget
++ * Added API for setting softkeys.
++ * Fixed background painting. Background can now be overwritten from
++ setting the respective palette role.
++ * Add support for Qt::WA_TranslucentBackground.
++
++ - Many classes
++ * Improved exception safety.
++
++ ****************************************************************************
++ * Examples and demos *
++ ****************************************************************************
++
++ - Anomaly browser
++ * Added to demonstrate QtWebkit usage.
++
++ - Deform, Pathstroke, and Wiggly
++ * Removed Symbian specific animation timer fixes since more generic
++ fix was made to event dispatcher.
++
++ - DesktopServices
++ * Implemented content filters for desktopservices example.
++ * Added error handling to qdesktopservices example when openUrl fails.
++
++ - Drilldown
++ * Added to demonstrate QtSql usage in Symbian OS.
++
++ - Fluidlauncher
++ * Removed ugly workaround to make emulator deployment work correctly,
++ since the issue has been fixed in qmake.
++ * Included drilldown to demonstrate QtSql usage.
++ * Updated screenshots to S60 style.
++ * Added softkeys example.
++ * Added Anomaly browser to fluidlauncher.
++
++ - Ftp
++ * Enabled default IAP setting for FTP example.
++ * IAP dialog will show after FTP UI is on screen.
++ * If active IAP exist that one will be used.
++
++ - SecureSocketClient
++ * Fixed build issue caused by lack of cursor.
++
++ - Softkeys
++ * New example showing how to use softkeys API in QWidget.
++
++ ****************************************************************************
++ * Tools *
++ ****************************************************************************
++
++ - configure
++ * -cetest is no longer a supported switch for configure.
++ * -stl option is enabled by default for Symbian OS
++ * -openssl option is enabled by default for Symbian OS.
++ * -fpu option enables vfpu type selection for ARM targets.
++
++ - qmake
++ * Support for generating Symbian "test" targets: CONFIG += symbian_test.
++ * Support for Symbian Build System, version 2 (aka Raptor) via
++ symbian-sbsv2 mkspec.
++ * PAGED keyword is added to all MMP files by default, except in S60 3.1
++ builds.
++ * Read-only flag is no longer preserved when deploying files into
++ emulator environment.
++ * Changed the timestamp to ISO format in all files generated
++ by qmake for symbian-* mkspecs.
++ * Qt's VERSION variable will now generate VERSION keyword in mmp files.
++ * Made Open C include paths handling bit more robust.
++ * Support both Symbian Foundation header structure in /epoc32/include,
++ as well as old Symbian/S60 structure
++
++ - Release package creation
++ * Removed the obsolete script to create release package.
++
++ - Createpackage script
++ * Now creates packages with .sis suffix.
++
++ - Patch_capabilities script
++ * Will now patch also vendor id in binaries and the UID in the pkg file.
++
++
++ ****************************************************************************
++ * Documentation *
++ ****************************************************************************
++
++ - qmake-manual
++ * 250370: Added documentation for ICON keyword.
++
++ ****************************************************************************
++ * Plugins *
++ ****************************************************************************
++
++ - S60 version specific plugins
++ * Isolated S60 version dependent functionality to S60 version specific
++ plugins (qts60plugin_x_y.dll) to make it possible for single build to
++ run on any supported device, even if with reduced functionality on
++ some.
++
++ ****************************************************************************
++ * Important Behavior Changes *
++ ****************************************************************************
++
++ - Qt libs
++ * Qt libs are now built with "All -Tcb" capabilities always. It is now
++ always necessary to run patch_capabilities.pl script if self-signing
++ of Qt libs is desired.
++ * QtCore and QtSql made UNPAGED when installed via SIS file as a
++ workaround for an obscure crash when they are paged.
++ * qt_libs.pro updated to reflect Open C dependencies, as Qt requires
++ 1.5.0 and newer release.
++ * Qt libs are now build with the "STDCPP" mmp flag. On platforms from
++ TB9.2, Qt code will throw std::bad_alloc exceptions on allocation
++ failure.