Add warning about non-API in Qt5CTestMacros.
[profile/ivi/qtbase.git] / dist / changes-4.7.0
1 Qt 4.7 introduces many new features and improvements as well as bugfixes
2 over the 4.6.x series. For more details, refer to the online documentation
3 included in this distribution. The documentation is also available online:
4
5   http://qt.nokia.com/doc/4.7
6
7 The Qt version 4.7 series is binary compatible with the 4.6.x series.
8 Applications compiled for 4.6 will continue to run with 4.7.
9
10 Some of the changes listed in this file include issue tracking numbers
11 corresponding to tasks in the Qt Bug Tracker:
12
13   http://bugreports.qt.nokia.com/
14
15 Each of these identifiers can be entered in the bug tracker to obtain more
16 information about a particular change.
17
18 ****************************************************************************
19 *                           General                                        *
20 ****************************************************************************
21
22 General Improvements
23 --------------------
24
25 - Documentation and Examples
26
27 - Support for the GL_EXT_geometry_shader4, aka Geometry Shaders, was added
28   to QGLShaderProgram.
29
30 New features
31 ------------
32
33  - QNetworkSession, QNetworkConfiguration, QNetworkConfigurationManager
34     * New bearer management classes added.
35         
36  - QStaticText class was added to support high-performance output of 
37    seldomly altered text. 
38         
39 Third party components
40 ----------------------
41
42  - Updated libpng to version 1.4.0
43
44  - Updated libjpeg to version 8
45
46  - Updated libtiff to version 3.9.2
47
48
49 ****************************************************************************
50 *                          Library                                         *
51 ****************************************************************************
52
53 QtCore
54 ------
55
56  - QString
57     * Added QString(const QChar *) constructor.
58       NOTE: This is source-incompatible for the bogus QString(0) case.
59     * Removed internal but exported qt_winQString2MB() and qt_winMB2QString()
60     * Added setRawData() function (also revived the one in QByteArray)
61     * Various performance improvements
62  - QList
63     * Added reserve() function
64     * Various performance improvements
65  - QMetaType
66     * Significantly improved performance of the type() function
67     * [QTBUG-8235] Support QEasingCurve as a built in metatype.
68     * Added possibility to register several name for the same type with
69       qRegisterMetaType<>() (ie. for typedef)
70  - QState
71     * [QTBUG-7741] Added a function to get the out-going transitions
72  - QXmlStreamReader
73     * [QTBUG-9196] fixed crash when parsing
74  - QTimer
75     * singleShot with 0 timeout will now avoid allocating objects
76  - QAbstractAnimation
77     * [QTBUG-10654] Avoids animation with loopCount == 0 to change state
78       to running and stopped.
79  - QVarLenghtArray
80     * Added some API to be more consistant with other containers
81
82 QtGui
83 -----
84  
85  - QAbstractItemView
86     * Fixed a bug that would cause keyboard searches not to behave
87       properly when used within 400 milliseconds of midnight.
88
89  - QComboBox
90     * [QTBUG-8796] Made ForegroundRole work for all styles.
91
92  - QCommandLinkButton
93     * [QTBUG-5995] Fixed text and icon alignment issues.
94         
95  - QPrinter
96     * Obsoleted the slightly confusing setNumCopies() and numCopies()
97       functions, and replaced them with setCopyCount(), copyCount() and
98       supportsMultipleCopies().
99
100  - QPrintDialog/QPrinter
101     * Added support for printing the current page.
102
103  - QCommonStyle
104     * Fixed a bug that led to missing text pixels in QTabBar when using
105       small font sizes. (QTBUG-7137)
106
107  - QGraphicsEffect
108     * Fixed rendering bugs when scrolling graphics items with drop
109       shadows.
110
111  - QGraphicsItem
112     * [QTBUG-8112] itemChange() is now called when transformation
113       properties change (setRotation, setScale, setTransformOriginPoint).
114     * [QTBUG-9024] Improved performance when calling update() on items that
115       are clipped by an ancestor (QGraphicsItem::ItemClipsChildrenToShape).
116     * [QTBUG-7703], [QTBUG-8378] Fixed scrolling issues
117     * [QTBUG-12112] Fixed focusItem() returning incorrect value.
118
119  - QGraphicsTextItem
120     * [QTBUG-7333] Fixed keyboard shortcuts not being triggered when the
121       the item has focus and something else has the same shortcut sequence.
122     * [QTBUG-10574] Fixed crash when flag "QGraphicsItem::ItemIgnoresTransformations"
123       is set.
124
125  - QGraphicsView
126     * [QTBUG-7438] Fixed viewport cursor getting reset when releasing
127       the mouse.
128     * [QTBUG-10338] Fixed drawing artifacts due to rounding errors.
129
130  - QGraphicsWidget
131     * [QTBUG-12056] Fixed a crash occuring when adding a QGraphicsWidget
132       to a scene after removing and deleting another QGraphicsWidget.
133
134  - QImage
135     * [QTBUG-9640] Prevented unneccessary copy in QImage::setAlphaChannel().
136     * [QTBUG-7982] Added QImage::bitPlaneCount().
137     * [QTBUG-9072] Fixed alpha check for 1-bit-per-pixel images.
138
139  - QLineEdit
140     * [QTBUG-9823] Placeholder text is now correctly aligned with text.
141
142  - QPicture
143     * [QTBUG-4974] Printing QPictures containing text to a high resolution
144       QPrinter would in many cases cause incorrect character spacing.
145
146  - QPainter
147     * Added QPainter::drawPixmapFragments(), which makes it possible to draw
148       pixmaps, or sub-rectangles of pixmaps, at various positions with
149       different scale, opacity and rotation.
150     * [QTBUG-10018] Fixed image drawing inconsistencies when drawing
151       1x1 source rects with rotating / shear / perspective transforms.
152     * Optimized various blending and rendering operations for ARM
153       processors with a NEON vector unit.
154     * Fixed some performance issues when drawing sub-pixmaps of large
155       pixmaps and falling back to raster in the X11 paint engine.
156     * [QTBUG-7596] Safeguard ourselves against corrupt registry values for
157       ClearType gamma on Windows.
158     * [QTBUG-9218] Fixed flattening of largely scaled, thin, dashed beziers.
159     * [QTBUG-9437] Fixed crash in the raster paint engine when drawing largely
160       scaled images.
161
162  - QPainterPath
163     * [QTBUG-3778] Fixed bug in painter path polygon intersection code.
164     * [QTBUG-7396] Optimized painter path intersections for when at
165       least one of the paths is a rectangle by special casing.
166     * [QTBUG-8035] Got rid of bezier intersection code in the boolean
167       operators (intersect, subtract, unite) to prevent numerical
168       stability issues.
169     * [QTBUG-11291] Fixed infinite recursion when drawing very large painter
170       paths.
171
172  - QPixmap
173     * [QTBUG-4149] Fixed QPixmap::grabWidget() on widgets that have not yet
174       been shown.
175     
176  - QPlastiqueStyle
177     * [QTBUG-6516] Respect AlternateBase role for list views.
178
179  - QRegion
180     * [QTBUG-7699] Fixed crash caused by large x-coordinates.
181
182  - QSplitter
183     * [QTBUG-9335] Improve support for 1-pixel splitters by using a 
184       larger drag area.
185                   
186  - QTextDocumentWriter
187     * Fixed tab-stops and table padding in ODF export.
188
189  - QTextLayout
190     * [QTBUG-11427] Fix possible crash in QTextLayout for glyphless 
191       items.
192     * [QTBUG-8864] Fix regression in right alignment of text with 
193       negative right bearing.
194           
195  - QTransform
196     * [QTBUG-8557] Fixed bug in QTransform::type() potentially occuring
197       after using operator/ or operator* or their overloads.
198           
199 QtOpenGL
200 --------
201  - Improve performance of text by adding special cased fragment shader.
202  
203  - Made width and height of glyph cache power-of-two for performance 
204    improvements on some hardware.
205    
206  - [QTBUG-9706] Improved appearance of text antialiasing.
207
208  - QTreeView
209     * Optimized
210
211 QtNetwork
212 ---------
213  - QHostInfo: Added a small 60 second DNS cache
214  - QNetworkAccessManager
215   * Performance improvements for file:// and http://
216   * Crash fixes
217   * Improvements on HTTP pipelining
218   * Fix problem with canReadLine()
219   * Fix problem with HTTP 100 reply
220   * Some new attributes for QNetworkRequest
221   * [QTBUG-8206] add method to send custom requests
222   * [QTBUG-9618] [MR 2372] send secure cookies only over secure connections
223   * [QTBUG-7713] Fix bug related to re-sending request
224   * [QTBUG-7673] Fix issue with some webservers
225   * [QTBUG-11029] do not accept cookies with non-alpha-numerical domain
226  - Sockets
227   * Better support for derived QTcpServer
228   * [QTBUG-7054] Fix error handling with waitFor*() for socket engine
229   * [QTBUG-7316, QTBUG-7317] Also handle unknown errors from socket engine
230  - SSL
231   * [QTBUG-2515] Do not make OpenSSL prompt for a password
232   * [QTBUG-6504, QTBUG-8924, QTBUG-5645] Fix memleak
233   * [QTBUG-9973] QSslCertificate: support large serial numbers
234   * [QTBUG-8833] make QSslSocket::systemCaCertificates() use system certs
235   * [QT-3567] QSslSocket: improve error handling (fixes Secunia Advisory SA40389)
236   * [QBTUG-4455, MR 731] Fix handling of SSL certificates with wildcard domain names
237
238 QtScript
239 --------
240  - Updated src/3rdparty/javascriptcore to a more recent version
241  - Significantly improved performance of the Qt/C++<-->JavaScript bridge
242  - QScriptValueIterator: Significantly improved performance
243  - [QTBUG-3637] Added a wrap option for excluding slots from a QObject binding
244  - [QTBUG-6238] Added a function for reporting additional memory cost
245  - [QTBUG-6908] Significantly improved performance of qsTr()
246
247 QtSvg
248 -----
249  - QSvgRenderer
250   * [QTBUG-8264] Fixed rounded rectangles when 'rx' or 'ry' is zero.
251   * [QTBUG-10022] Fixed assert failure when loading an invalid SVG.
252
253 QtXmlPatterns
254 -------------
255
256  - [QTBUG-8920] fixed crash with anonymous types in XsdSchemaChecker
257  - [QTBUG-8394] include/import/redefine schemas only once
258  - QXmlSchema: fix crash with referencing elements
259  - [QBTUG-6485] QXmlSchema: allow usage of xsd:all
260
261 Qt Plugins
262 ----------
263
264  - Jpeg image IO plugin
265     * Fixed failure to store certain QImage formats as jpeg (QTBUG-7780)
266     * Optimized smoothscaling
267     * Optimized to avoid data copy when reading from memory device (QTBUG-9095)
268
269  - SVG image IO plugin
270     * Added support for svgz format (QTBUG-8227)
271     * Fixed canRead() so that it can be used also for non-sequential
272       devices. (QTBUG-9053)
273     * Added support for clipping and scaling and backgroundcolor
274     * Optimized to avoid data copy when reading from memory device (QTBUG-9095)
275
276 ****************************************************************************
277 *                          Database Drivers                                *
278 ****************************************************************************
279  - Sqlite
280    * [QTBUG-11904] Pointer aliasing problem in sqlite
281  - OCI
282    * [QTBUG-10919] Unable to insert unicode chars with codepoint > 255 
283      in nvarchar2 column on oracle
284    * [QTBUG-8210] Oracle - DATE in db with a year greater or equal to 2800 
285      returns an invalid date
286
287 ****************************************************************************
288 *                      Platform Specific Changes                           *
289 ****************************************************************************
290
291 Qt for Linux/X11
292 ----------------
293  - QGtkStyle
294     * Fixed rtl issues with sliders (QTBUG-8986)
295     * Fixed missing pressed appearance on scroll bar handles. (QTBUG-10396)
296     * Fixed crash when creating QGtkStyle before QApplication. (QTBUG-10758)
297
298  - QFontDatabase
299     * [QTBUG-4428] Fixed regression when using bitmap fonts on some 
300       Linux systems.
301  
302  - QFontEngine
303      * [QTBUG-9442] Avoid possible square root of negative number in 
304       FreeType font engine.
305           
306  - QFontMetrics
307     * [QTBUG-10448] Fix crash when using fonts in non-gui QApplication.
308           
309         
310 Qt for Windows
311 --------------
312  - Popup windows now implicitly activate when shown. (QTBUG-7386)
313  - QComboBox [QTBUG-7552] Fix an issue where only "..." would be shown for
314    QComboBox with certain DPI settings.
315  - Fixed a problem where menus exec'ed on system tray icons did not 
316    disappear. (QTBUG-7386)
317  - Improved look and feel for QWizard on Windows 7 and Vista. (QTBUG-9873), 
318    (QTBUG-11974) and (QTBUG-6120)    
319  - QLocalSocket
320     * Pipe handle leak fixed, when closing a QLocalSocket that still has
321       unwritten data. (QTBUG-7815)
322     * Fixed closing state for local sockets with unwritten data. (QTBUG-9681)
323     * Improved performance of writing to QLocalSocket.
324
325
326 Qt for Mac OS X
327 ---------------
328  - QMacStyle
329     * Removed frame around statusbar items. (QTBUG-3574)
330     * More native appearance of item view headers and frames. (QTBUG-10047)
331     * Increased spacing between tree view items. (QTBUG-10190)
332     * Removed frame around status bar items. (QTBUG-3574)
333
334  - QFontEngine  
335     * Enable fractional metrics for the font engine on Mac in all 
336       stages of text layout.
337     * [QTBUG-5529] Enable design metrics for correct character spacing 
338       in ATSUI font engine. (Mac/Carbon)
339
340 - QTextDocument
341     * [QTBUG-8791] Fix misalignment of fixed width fonts between 
342       format changes on Cocoa.
343           
344  - QTextLayout
345     * [QTBUG-9879] Fix off-by-one in vertical position for elided and 
346           non-elided text.
347  
348 Qt for Embedded Linux
349 ---------------------
350
351   * Add support for WA_TranslucentBackground (QTBUG-5739)
352   * Add support for QFont::NoAntialias (QTBUG-5936)
353
354 Qt for Windows CE
355 -----------------
356
357  - Core changes
358     * Fixed menu handling on Windows mobile. (QTBUG-8754)
359     * Fixed a crash when receiving a certain type of WM_SETTINGSCHANGE
360       message. (QTBUG-7943)
361
362  - QWindowsMobileStyle
363     * Huge performance penalty for QTabWidget fixed for
364       Windows mobile 6.5. (QTBUG-8419)
365     * QTabBar scroll button size has been fixed. (QTBUG-8757)
366     * Detection of Windows mobile 6.5 fixed. (QTBUG-8418)
367
368 Qt for Symbian
369 --------------
370
371  - QSplashScreen
372     * [QTBUG-11129] Fixed a hanging bug in QSplashScreen on 3.1 devices.
373
374  - QS60Main... classes
375     * The future compatibility of QS60MainAppUi, QS60MainDocument and
376       QS60MainApplication are improved by removing the need for any 
377       sub-class to link to Avkon functions that may not exist in future.
378
379
380 ****************************************************************************
381 *                      Compiler Specific Changes                           *
382 ****************************************************************************
383
384
385 ****************************************************************************
386 *                          Tools                                           *
387 ****************************************************************************
388
389 - Build System
390
391  - [QT-3540] Fixed Symbian resources not honoring TARGET with a path.
392  - "configure -fast" on Windows now also works for other make tools than
393    nmake. (QTBUG-8562)
394  - [QTBUG-11351] Fixed memory restrictions not being passed on to elf2e32.
395  - [QTBUG-11385] Removed the need to specify -arch symbian when compiling
396    for Symbian on Linux.
397  - [QTBUG-11396] "configure -qtlibinfix" now works when compiling for
398    Symbian on Linux.
399  - [QTBUG-11670] Fixed a bug which caused "make runonphone" to look for
400    package in the wrong place.
401  - [QTBUG-11727] Fixed a bug which made builds outside of the Qt tree fail
402    to compile.
403  - [QTBUG-11927] "configure -silent" now works with the
404    symbian/linux-armcc and symbian/linux-gcce mkspecs.
405
406 - Assistant
407
408
409 - Designer
410  - [QTBUG-9351] Fixed a bug that caused modified headerview-properties
411    of item views to be duplicated in the UI-file.
412  - [QTBUG-8347] Fixed a layout problem caused by embedded images in the rich
413    text of a QLabel.
414  - [QTBUG-8041], [QTBUG-8213] Fixed a crash related to undo while moving
415    widgets by arrow keys.
416  - [QTBUG-7822] Added support for the 'windowOpacity'-property.
417  - [QTBUG-7764] Fixed the emission of the propertyChanged()-signal of
418    QDesignerPropertyEditorInterface.
419  - [QTBUG-5492] Made widgetbox-filter match on class names, too.
420
421 - Linguist
422   * The GNU gettext PO format support has been improved
423
424 - rcc
425
426
427 - moc
428   * Fixed several parsing bugs. Including changes in the normalized signature.
429
430 - uic
431
432 - uic3
433
434  - [QTBUG-9207] Fixed export of image files of type XPM, added
435    compatibility option -limit-xpm-linelength.
436
437 - qmake
438   * Removed remainder of tmake compatibility
439   * Removed remainder of mac9 mode
440   * Removed MSVC6 generator
441   * Removed makespecs for MSVC.NET and MSVC2002
442   * Deprecated -win32/-unix/-macx options, following various cleanups
443     relating to platform support. Cross-building makespecs should now
444     specify a TARGET_PLATFORM.
445   * Started to warn about use of various constructs:
446     - non-lowercased replace $$function() calls
447     - deprecated variables
448     - unescaped backslashes.
449       NOTE: You should use UNIX path separators where possible. qmake
450       will warn about unnecessary Windows path separators in the future.
451   * Removed expansion of qmake- & environment variables in some unexpected
452     cases (double expansions, command line options, etc.)
453   * Removed splitting at semicolons of literal values which were assigned
454     directly to INCLUDEPATH and DEPENDPATH
455   * Removed UNIX-specific exporting of all qmake variables to the environment
456     of subprocesses invoked via system(). You should put specific assignments
457     into the invoked shell command instead.
458   * Started to short-cut evaluation inside if() tests, consistently with
459     evaluation outside if().
460   * Added possibility to request project recursion from within a PRO file
461
462
463 - configure
464
465
466 - qtconfig
467
468
469 - qt3to4
470
471
472 ****************************************************************************
473 *                          Plugins                                         *
474 ****************************************************************************
475
476
477 ****************************************************************************
478 *                   Important Behavior Changes                             *
479 ****************************************************************************
480
481 QtScript: Changes due to updating src/3rdparty/javascriptcore:
482  - It is no longer possible to delete an undeletable property from C++
483    using QScriptValue::setProperty().
484  - The QScriptEngineAgent::positionChange() callback will always report
485    a column number of 1.
486  - QScriptValueIterator will include the "length" property when iterating
487    over Array objects.
488
489 QtCore:
490   - QChar no longer carries the Q_PACKED tag on ARM. This flag was
491     used to allow proper alignment of QChar on 2 bytes on older ARM
492     ABIs, but it also allowed for unaligned access. Qt never generates
493     or uses unaligned access and the new EABI aligns as expected, so
494     the flag was removed.
495   - QTextBoundaryFinder is now consistent with ICU when it comes to
496     line breaking, reporting the index of the boundary at which the line
497     break should occur rather than the index of the character.
498
499 QtGui:
500   - QWidget::setLayoutDirection no longer affects the text layout
501     direction (Qt::LeftToRight or Qt::RightToLeft) of QTextEdit, QLineEdit
502     and widgets based on them. The default text layout direction
503     (Qt::LayoutDirectionAuto) is now detected from keyboard layout and
504     language of the text (conforms to Unicode standards). To
505     programmatically force the text direction of a QTextEdit, you can
506     change the defaultTextOption of the QTextDocument associated with that
507     widget with a new QTextOption of different textDirection property. For
508     QLineEdit, the only way so far is sending a Qt::Key_Direction_L/R
509     keyboard event to that widget.
510
511 QtNetwork:
512   - Qt does no longer provide its own CA bundle, but uses system APIs for
513     retrieving the default system certificates.