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