1Qt 4.5.2-tower
2---------------
3
4The Qt for S60 "Tower" release is the fifth pre-release from the Qt for
5S60 porting project. "Tower" is based on the Qt 4.5 codebase (mostly Qt 4.5.2).
6
7This list of changes lists S60 specific fixes only,
8for general 4.5.x changes go to:
9
10  http://qt.nokia.com/developer/changes/changes-4.5.0
11  http://qt.nokia.com/developer/changes/changes-4.5.1
12  http://qt.nokia.com/developer/changes/changes-4.5.2 (partially in Tower)
13
14Some of the changes listed in this file include issue tracking numbers
15corresponding to tasks in the Task Tracker:
16
17  http://qt.nokia.com/developer/task-tracker
18
19Each of these identifiers can be entered in the task tracker to obtain
20more information about a particular change. Sometimes the task is internal
21and cannot be viewed by the public, a lot of them are non-public for Qt for
22S60 at the moment.
23
24****************************************************************************
25*                          New features                                    *
26****************************************************************************
27
28New modules
29-----------
30
31- Input methods
32    * Added events to support opening and closing the virtual keyboard, called
33      software input panel in Qt.
34    * Added an option to QApplication to choose between single or double click
35      input panel activation.
36    * Added input method hints API to Qt. These can be used to instruct input methods
37      to only allow certain characters or tailor their appearance.
38    * Added Qt::ImAnchorPosition to support querying for selections through input
39      methods.
40    * Added QInputMethodEvent::Selection to support setting the selection through
41      input methods.
42
43- Phonon
44    * The Phonon library is now part of Qt, but it comes without a backend.
45      This means that applications can build and run against the Phonon
46      library, but there is currently no S60 backend plugin providing actual
47      multimedia playback. Possible alternatives such as Helix and MMF are
48      being investigated.
49
50- QtSql
51    * Implemented QtSql module with sqlite3 backend. For now backend is
52      provided only in binary format.
53
54- QtWebkit
55    * Experimental webkit build for S60. Can be enabled by passing -webkit
56      to configure.
57
58New classes
59------------
60
61- QScopedPointer
62    * Smart pointer, which deletes pointer when destroyed.
63
64Ported classes
65--------------
66
67- QColormap
68    * Added basic implementation of QColormap for Symbian.
69
70- QLocalSocket and QLocalServer
71    * Added support for QLocalSocket and QLocalServer on Symbian.
72
73- QSound
74    * Implemented CMdaAudioPlayerUtility based Symbian backend for QSound.
75
76Features
77--------
78
79- QApplication
80    * Implemented QApplication::beep() for Symbian.
81
82- QPixmap
83    * Added supported for converting to/from CFbsBitmap
84
85- QSslSocket
86    * Added support for -openssl option i.e. runtime resolving of OpenSSL
87      symbols.
88
89- QWidget
90    * Basic widgets are now navigatable and usable via keypad on SDK 3
91      FP 1 and FP 2.
92    * Widgets can now be made semi-transparent on systems that support it
93      using Qt::WA_TranslucentBackground.
94
95- Exception safety
96    * Improving the exception safety of Qt, not yet complete.
97    * Added support for translating between Symbian leaves and standard C++
98      exceptions.
99
100Optimizations
101-------------
102
103- qdrawhelper
104    * Optimized drawing operations for RVCT builds, particulary for ARMV6.
105
106- QFont
107    * Use cached DPI for metrics.
108
109- qwidget_s60.cpp
110    * Avoid unnecessary calls to FocusChanged in Symbian.
111
112- qwindowsurface_s60.cpp
113    * Avoid updating raster buffer pointer on window hide
114
115Documentation
116-------------
117
118- exceptionsafety.qdoc
119    * A guide to exception safety in Qt.
120
121- symbian-exceptionsafety.qdoc
122    * A guide to integrating exception safety in Qt with Symbian.
123
124****************************************************************************
125*                          Code clean-up                                   *
126****************************************************************************
127
128- Cleanup qeventdispatcher_unix.cpp
129    * 247268: All qeventdispatcher_unix.cpp changes were reverted since
130    this file is not anymore used in Symbian OS branch.
131
132- Cleanup QtNetwork workarounds implemented earlier due to Open C bugs.
133    * 247287: Removed getaddrinfo workaround.
134    * 247288: Removed waitForConnected workaround.
135    * 247289: Removed qt_socket_accept workaround.
136    * 247290: Removed qt_socket_connect workaround.
137    * 247290: Removed E32IONREAD workaround.
138    * 247293: Removed nativeHasPendingDatagrams workaround.
139    * 247295: Removed QNativeSocketEnginePrivate::nativeRead EPIPE
140      workaround.
141
142- Other code clean-ups
143    * 247278: Removed unnecessary includes from qbackingstore.cpp.
144    * Fixed Q_OS_SYMBIAN ifdef usage in qfiledialog_p.h.
145    * 247272: Removed qtestnetworkservers.h dependency, used
146      network-settings.h.
147    * Revert "Work around compiler bug on Nokia Metrowerks compiler."
148    * Remove UI highlights being inverted colors based on highlight text
149      colors.
150
151****************************************************************************
152*                          Build issues                                    *
153****************************************************************************
154
155- Macros
156    * QT_NO_DEBUG now properly defined in release mode.
157
158- QTest
159    * Fixed testlib export macros for RVCT builds.
160
161- Namespaces
162    * Now builds when -qtnamespace option is defined.
163
164****************************************************************************
165*                          Changes to existing classes                     *
166****************************************************************************
167
168- QApplication
169    * 252798: Fixed layout when orientation changed via
170      AknAppUi::SetOrientationL.
171    * Generating MouseEvents has gone through several changes.
172    * qt_init() has been changed: auto flush is always enabled for
173      window server sessions on 3.1 SDK for both UDEB and UREL.
174    * Added support for '-graphics-system' command line option
175
176- QCoeFepInputContext (non-public)
177    * Fixes FEP crash when changing the focused Qt widget to NULL.
178    * Fixed a bug where the virtual keyboard could not be opened if there
179      was only one input widget.
180    * Fixed a crash in FEP when exiting application.
181
182- QDebug
183    * Fixed debug printing (incl. qWarning, qFatal) for strings longer
184      than 256 characters.
185    * introduce a breakpoint to get the emulator to stop in the debugger
186      when qFatal is called
187
188- QDesktopServices
189    * Fixed forwardslash/backslash usage as an path separator.
190    * Switched QDesktopServices mail-to URL handling to RSendAs in Symbian,
191      due to the fact that CSendUi requires extensive capabilities to work
192      correctly. Currently e-mail sending with qdesktopservices::openUrl
193      works in Symbian only if e-mail account already exists.
194
195- QDesktopWidget
196    * 253930: Implement proper resize behavior and emit necessary signals.
197
198- QEventDispatcherSymbian (non-public)
199    * Lowered the timeout for reprioritizing the process to 100ms.
200    * Fixed ASSERT panic in Symbian event dispatcher.
201    * 246600: Fix problem in eventdispatcher destructor / AO canceling.
202    * Fixed active scheduler removal when calling QThread::terminate.
203    * Fix to Open C bug: select sometimes returns -1 and errno is
204      ECONNREFUSED.
205    * Fix a crash when using QEventLoop::ExcludeSocketNotifiers flag.
206    * Changed to round robin scheduling for Qt's active objects. Other
207      active objects will still be scheduled like before.
208    * Fixed crash if events are posted before QApplication construction
209
210- QFontDataBase
211    * Now, also fonts from the user's /resources/fonts directories are
212      available.
213
214- QFontEngine
215    * Fix the vertical advance of glyph metrics.
216
217- QFontMetrics
218    * Fixed the boundingRect calculation for text.
219
220- QGraphicsView
221    * Added support for virtual keyboard to the the viewport.
222
223- QGraphicsTextItem
224    * Added support for virtual keyboard.
225
226- QHostInfo
227    * Added support for host lookups with multiple ipv4 addresses.
228
229- QInputContext
230    * Added QInputContext::s60FilterEvent().
231
232- QIoDevice
233    * Fixed compilation error when QIODEVICE_DEBUG is defined.
234
235- QKeyMapper (non-public)
236    * Fixed a broken keymapping where Enter key would be mapped to Tab.
237
238- QLocale
239    * Removed workaround for missing tzname symbol, fixes QLocal timeZone
240      implementation for Symbian.
241
242- QLocalSocket
243    * Connecting to QLocalServer is always done in blocking mode.
244
245- QMenuBar
246    * Native menus are handled properly even when application has multiple
247      QMainWindows.
248    * Fixed a bug causing both native and qt menu to be created.
249    * Fix for disappearing options menu after coming back from dialog.
250
251- QNativeSocketEnginePrivate (non-public)
252    * Socket connect and listen failure is indicated in exception set.
253      (Workaround to Open C bug)
254
255- QNetworkInterface
256    * Fixed R-handle leak in Symbian version of qnetworkinterface_unix.cpp.
257    * Introduced a new qnetworkinterface_symbian.cpp, because there wasn't
258      really anything common to UNIX equivalent.
259
260- QPixmap
261    * Added fromSymbianCFbsBitmap() and toSymbianCFbsBitmap().
262
263- QPlainTextEdit
264    * Added support for virtual keyboard.
265
266- QPluginLoader
267    * QPluginLoader will look for plugin stubs from the same folder on other
268      drives if it can't find them from the indicated drive.
269
270- QS60Style
271    * Added subElementRect implementation for SE_ItemViewItemCheckIndicator.
272    * Added support for E90 layouts.
273    * Added support for QScrollArea, QTextEditor, QGroupBox, QTreeView,
274      QToolBar and QDial styling.
275    * Better support for theme and layout changes.
276    * Better support for themed palettes and themed text colors.
277    * Better support for multiselection in item views.
278    * Better theming for QTable and QPanel.
279    * Better support of highlight graphics and texts for QLists, QTreeViews,
280      QCalendarWidgets and QComboBoxes.
281    * Support polishing fonts. Fonts are no longer changed within the drawing
282      code.
283    * Draw spinbox arrowbuttons side-by-side, instead one on top of the other.
284    * Harmonize widget drawing so that widgets are of similar height.
285    * Support check states for QLists and QPushButtons.
286    * Support flat QPushButtons.
287    * Support busy indicator.
288    * Support QScrollBar pressed state.
289    * Support QPushButton disabled theme graphics.
290    * Separate theme background for QDialogs.
291    * Clarify QToolButton pressed state.
292    * Removed linedrawing of panels and groupboxes.
293    * Fix palette-polution for a style that is activated from an application
294      after S60Style has been in use.
295    * Fix for frame masks with color depth other than EGrey2.
296    * Fix for squeezed QTabBars.
297    * Fix memory leak when color skinning graphics.
298    * Show focus/Editfocus visualization for KeyPad navigation on
299      SDK 3 FP 1 and FP 2.
300    * Fix for overwriting user specified palettes.
301
302- QSelectThread (non-public)
303    * We force monitoring sockets exception status as well, and not
304      just read/write.
305    * Notification related to the particular socket signaled via exception
306      fd_set will be mapped to the appropriate read/write notification.
307
308- QTemporaryFile
309    * Fixed temporary file rename in Symbian OS.
310
311- QTest
312    * Disable keypad navigation for autotests by default
313
314- QTextEdit
315    * Added support for virtual keyboard.
316
317- QThread
318    * Fixed thread termination in Symbian OS.
319
320- QUdpSocket
321    * Updated BindFlag documentation to reflect behaviour on Symbian OS.
322    * Wrote hack for QUdpSocket::writeDatagram return value in Symbian OS.
323
324- QWidget
325    * Added API for setting softkeys.
326    * Fixed background painting. Background can now be overwritten from
327      setting the respective palette role.
328    * Add support for Qt::WA_TranslucentBackground.
329
330- Many classes
331    * Improved exception safety.
332
333****************************************************************************
334*                          Examples and demos                              *
335****************************************************************************
336
337- Anomaly browser
338    * Added to demonstrate QtWebkit usage.
339
340- Deform, Pathstroke, and Wiggly
341    * Removed Symbian specific animation timer fixes since more generic
342      fix was made to event dispatcher.
343
344- DesktopServices
345    * Implemented content filters for desktopservices example.
346    * Added error handling to qdesktopservices example when openUrl fails.
347
348- Drilldown
349    * Added to demonstrate QtSql usage in Symbian OS.
350
351- Fluidlauncher
352    * Removed ugly workaround to make emulator deployment work correctly,
353      since the issue has been fixed in qmake.
354    * Included drilldown to demonstrate QtSql usage.
355    * Updated screenshots to S60 style.
356    * Added softkeys example.
357    * Added Anomaly browser to fluidlauncher.
358
359- Ftp
360    * Enabled default IAP setting for FTP example.
361    * IAP dialog will show after FTP UI is on screen.
362    * If active IAP exist that one will be used.
363
364- SecureSocketClient
365    * Fixed build issue caused by lack of cursor.
366
367- Softkeys
368    * New example showing how to use softkeys API in QWidget.
369
370****************************************************************************
371*                          Tools                                           *
372****************************************************************************
373
374- configure
375    * -cetest is no longer a supported switch for configure.
376    * -stl option is enabled by default for Symbian OS
377    * -openssl option is enabled by default for Symbian OS.
378    * -fpu option enables vfpu type selection for ARM targets.
379
380- qmake
381    * Support for generating Symbian "test" targets: CONFIG += symbian_test.
382    * Support for Symbian Build System, version 2 (aka Raptor) via
383      symbian-sbsv2 mkspec.
384    * PAGED keyword is added to all MMP files by default, except in S60 3.1
385      builds.
386    * Read-only flag is no longer preserved when deploying files into
387      emulator environment.
388    * Changed the timestamp to ISO format in all files generated
389      by qmake for symbian-* mkspecs.
390    * Qt's VERSION variable will now generate VERSION keyword in mmp files.
391    * Made Open C include paths handling bit more robust.
392    * Support both Symbian Foundation header structure in /epoc32/include,
393      as well as old Symbian/S60 structure
394
395- Release package creation
396    * Removed the obsolete script to create release package.
397
398- Createpackage script
399    * Now creates packages with .sis suffix.
400
401- Patch_capabilities script
402    * Will now patch also vendor id in binaries and the UID in the pkg file.
403
404
405****************************************************************************
406*                          Documentation                                   *
407****************************************************************************
408
409- qmake-manual
410    * 250370: Added documentation for ICON keyword.
411
412****************************************************************************
413*                          Plugins                                         *
414****************************************************************************
415
416- S60 version specific plugins
417    * Isolated S60 version dependent functionality to S60 version specific
418      plugins (qts60plugin_x_y.dll) to make it possible for single build to
419      run on any supported device, even if with reduced functionality on
420      some.
421
422****************************************************************************
423*                   Important Behavior Changes                             *
424****************************************************************************
425
426- Qt libs
427    * Qt libs are now built with "All -Tcb" capabilities always. It is now
428      always necessary to run patch_capabilities.pl script if self-signing
429      of Qt libs is desired.
430    * QtCore and QtSql made UNPAGED when installed via SIS file as a
431      workaround for an obscure crash when they are paged.
432    * qt_libs.pro updated to reflect Open C dependencies, as Qt requires
433      1.5.0 and newer release.
434    * Qt libs are now build with the "STDCPP" mmp flag. On platforms from
435      TB9.2, Qt code will throw std::bad_alloc exceptions on allocation
436      failure.
437