1Qt 4.5.0-garden
2---------------
3
4The Qt for S60 "Garden" release is the fourth pre-release from the
5Qt for S60 porting project. "Garden" is based on the Qt 4.5 codebase
6and release focus has been on proper GUI integration.
7
8Up to and including change: b7621555cb1d1c97967dd40d63dd7e85a418407c
9
10Lists just S60 fixes, for general 4.5.0 changes go to:
11
12  http://qt.nokia.com/developer/changes/changes-4.5.0
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- qtmain
32  * Added a small static library called qtmain which is linked in
33    automatically for Qt applications on S60. qtmain includes an
34    implementation of E32Main() that sets up Qt correctly for S60. This
35    means that Qt no longer links to libcrt0.lib but uses qtmain instead.
36    However, if you are not linking against QtGui, you'll still have to
37    link to libcrt0.
38
39New classes
40------------
41
42- QS60Style
43    * Native look for Qt applications on S60 3.1 and later versions. The
44      style picks up the current theme parts, palettes and font settings
45      through the skinserver and uses these when painting in Qt.
46      The layout data for different resolutions is considered.
47
48Ported classes
49--------------
50
51- QDesktopServices
52    * Provides methods for accessing common desktop services: Opening the
53      browser with an url, launching documents with the standard application
54      and getting default system directories.
55
56- QClipboard
57    * Provides access to the window system clipboard.
58
59- QSysInfo
60    * QSysInfo class provides information about the system.
61
62Features
63--------
64
65- Input methods
66    * QInputMethodEvent will now be generated by Qt.
67      To use it, widgets must set the attribute WA_InputMethodEnabled and
68      implement QWidget::inputMethodQuery(...).
69    * Qt will use the underlaying FEP framework from S60.
70    * Multitap and T9 supported.
71    * Virtual keyboard for touch phones is supported.
72    * Most of the Qt widgets already have support for input methods.
73
74- Drag-n-Drop
75  * At the moment works only within same Qt process.
76
77- STL support for QtS60
78  * use -stl switch when configuring Qt.
79
80Optimizations
81-------------
82
83
84****************************************************************************
85*                          Build issues                                    *
86****************************************************************************
87
88- Fixed compilation on private S60 platforms by adding neccessary include paths.
89- Fix compiler error if --gnu flag is given to RVCT.
90
91
92****************************************************************************
93*                          Changes to existing classes                     *
94****************************************************************************
95
96- qapplication_s60.cpp (non-public)
97    * Simplified by introduction of qtmain.
98    * added CCoeControl to be the native representation of QWidget.
99    * Use window group from CEikonEnv instead of creating our own.
100    * No need to create/destroy RWsSession, this is now done by the Avkon
101      application.
102    * Handle pointer events from QSymbianControl.
103    * Stopped using QETWidget for translation, now handled by
104      QSymbianControl.
105    * MouseButtonDblClick mapped to EModifierDoubleClick (after dblclick
106      Symbian will send mouseButtonRelease.
107
108- QApplication
109    * Implemented setDoubleClickInterval(...).
110    * Improved widgetAt().
111    * Added support for resizing widget's when the screen orientation
112      changes from portrait to landscape. For fullscreen and maximized
113      widgets this will ensure that they look correct in the new screen
114      layout.
115
116- qwindowsurface_s60.cpp (non-public)
117    * Stopped creating our own CWindowGc based on the RWindow and get
118      SystemGc from the CCoeControl we are currently painting on instead.
119
120- qeventdispatcher_s60.cpp
121    * Stopped using Active Objects to receive events, we get them from
122      C*AppUi and CCoeControl instead.
123
124- QWidget
125    * Proper implementation for QDesktopWidget::availableGeometry.
126    * Improved raising and lowering widgets.
127    * Implemented setWindowTitle(...).
128    * Implemented QWidget::setWindowIcon(...) and made it to react to
129      different statuspane layouts.
130    * Improved focus handling (improved setFocus_sys).
131    * Fixed native window scrolling. Only use accelerated scroll if we are
132      scrolling a window owning widget.
133    * Improved setWindowState(...).
134    * Added implementation for createDefaultWindowSurface_sys().
135    * Added implementation for setMask_sys().
136    * Not creating a backing store for the top level widget (saves memory).
137    * winId() now returns a CCoeControl instead of RWindow.
138
139- QMenuBar
140    * Added support for using native S60 menues.
141    * Supported infinite level of menues inside menues.
142    * Supported checkboxes next to menu items).
143
144- QtCore and QtGui
145    * link to CONE and Uikon libraries and stop linking to glib and gthread.
146    * Renamed qt_deployment.pro to qt_libs.pro as it is more consistent.
147
148- Event loop / Event dispatcher
149    * We now integrate with the native loop, allowing CActiveScheduler and
150      QEventLoop to be used interchangably.
151    * Enabled posted events to work from the Symbian active scheduler too.
152    * Enable use of QEventLoop::ExcludeSocketEvents on Symbian.
153    * Improved handling of zero timers.
154
155- QColumnView
156    * Fixed a typo in one instance of QT_NO_QCOLUMNVIEW.
157
158- font rendering
159    * Speed increase
160    * Correctly render RTL text
161    * Proper shaping of complex writing systems
162    * Automatic font linking (aka merging) of different writing systems
163    * Rudimentary fallback glyph outline support
164    * Defaults to Symbians native (usually iType based) font rendering.
165      Alternatively, supports FreeType. Configure with -qt-freetype.
166
167- qcore_symbian_p.h (non-public)
168    * Added helper functions to convert QRect <-> TRect.
169    * Renamed qstringToTPtrC to qt_QString2TPtrC.
170    * Added helper function qt_TDisplayMode2Format.
171    * Added helper function to convert QSize <-> TSize.
172    * Added helper function to convert QString ->HBufC.
173    * Added helper function to convert TDesC -> QString.
174
175- QGraphicsSystem
176    * QRasterPixmapData(...) is specified as default pixmap data for S60.
177
178- QPixmap
179    * Improved grabWindow(...) when it comes to selecting client rect.
180
181- QDirModel
182    * Returns root dir name similary as done in Windows
183
184- QFSFileEngine
185    * copy(...) now uses Symbian native copy implementation which is more efficient
186      and doesn't leave temp files behind
187
188- QLocale
189    * Now has Symbian system locale support.
190
191****************************************************************************
192*                          Examples and demos                              *
193****************************************************************************
194
195****************************************************************************
196*                          Tools                                           *
197****************************************************************************
198
199- qmake
200    * Support for QMAKE_EXTRA_TARGETS and QMAKE_EXTRA_COMPILERS variables.
201    * Support BLD_INF_RULES variable. Adds entries to generated bld.inf file
202    * Added 'make' targets '<build>-<platform>' 'distclean' and 'run'
203    * New platform_paths.prf and data_caging_paths.prf contain several
204      variables and replacement functions for including known paths.
205    * The .pro file qt_libs.pro was moved to src/s60installs.
206    * Support for ICON variable for setting application icon.
207    * Support for RSS_RULES variable, which enables entries to be added to
208      generated application registration files.
209    * When bulding qmake and other bootstrapped tools we now use
210      "-warnings on" instead of "-warnings all".
211    * Improved error message if calls to $$system() fails.
212    * Fixed several issues when qmake is built for platform win32-mwc.
213    * Moved mocing step to the build step so it is not longer required to
214      do "abld build" or "abld makefile" to remoc.
215    * Improved "make clean".
216    * Increased max heap to 8Mb.
217    * Enabled __CC_ARM flag used by some versions of RVCT.
218    * Removed hard coded INCLUDEPATH from qmake - developer can control
219      the whole include path hierachy.
220    * Symbian export mechanism is no longer used for emulator deployment,
221      instead copy commands are generated to wrapper makefile and
222      executed during final phase of building, after post link.
223    * Removed -O1 flag from WINSCW builds.
224    * Added qmake function (size) to ask number of items in QStringList.
225    * Qt demos are now installed to QtDemos folder in S60 emulator.
226    * Qt examples are now installed to QtExamples folder in S60 emulator/HW.
227    * Plugin stubs suffix changed to ".qtplugin".
228    * Paths containing $${EPOCROOT}/epoc32 will now properly generate
229      absolute paths in mmps.
230
231
232-configure
233    * Defaults for FREETYPE and SCRIPTTOOLS set to "no".
234
235****************************************************************************
236*                          Plugins                                         *
237****************************************************************************
238
239****************************************************************************
240*                   Important Behavior Changes                             *
241****************************************************************************
242