1Qt 5.2 introduces many new features and improvements as well as bugfixes 2over the 5.1.x series. For more details, refer to the online documentation 3included in this distribution. The documentation is also available online: 4 5 http://qt-project.org/doc/qt-5.2 6 7The Qt version 5.2 series is binary compatible with the 5.1.x series. 8Applications compiled for 5.1 will continue to run with 5.2. 9 10Some of the changes listed in this file include issue tracking numbers 11corresponding to tasks in the Qt Bug Tracker: 12 13 http://bugreports.qt-project.org/ 14 15Each of these identifiers can be entered in the bug tracker to obtain more 16information about a particular change. 17 18**************************************************************************** 19* Important Behavior Changes * 20**************************************************************************** 21 22 - Qt is now compiled with qreal typedef'ed to double on all 23 platforms. qreal was a float on ARM chipsets before. This guarantees more 24 consistent behavior between all platforms Qt supports, but is binary 25 incompatible to Qt 5.1 on ARM. The old behavior can be restored by 26 passing -qreal float to configure. 27 - The supported date range in QDateTime has been reduced to about +/- 292 28 million years, the range supported by the number of msecs since the Unix 29 epoch of 1 Jan 1970 as stored in a qint64, and as able to be used in the 30 setMSecsSinceEpoch() and toMSecsSinceEpoch() methods. 31 32 - QUrl and QUrlQuery: 33 * [QTBUG-31660] QUrl no longer considers all delimiter characters 34 equivalent to their percent-encoded forms. Now, both classes always 35 keep all delimiters exactly as they were in the original URL text. 36 * [QTBUG-31660] QUrl no longer decodes %7B and %7D to "{" and "}" in the 37 output of toString() 38 * QUrl no longer supports QUrl::FullyDecoded mode in authority() and 39 userInfo(), nor QUrl::DecodedMode in setAuthority() and setUserInfo(). 40 * [QTBUG-31945] QUrl no longer decodes %23 found in the fragment to "#" 41 in the output of toString(QUrl::FullyEncoded) or toEncoded() 42 * QUrl now defaults to decoded mode in the getters and setters for 43 userName, password, host, topLevelDomain, path and fileName. This 44 means a '%' in one of those fields is now returned (or set) as '%' 45 rather than "%25". In the unlikely case where the former behavior was 46 expected, pass PrettyDecoded to the getter and TolerantMode to the 47 setter. 48 * QUrl now normalizes the path given in setPath, removing ./ and ../ and 49 duplicate slashes. 50 51 - QWheelEvent has gained a "phase" attribute and may now be sent with 52 zero delta() in order to indicate beginning and end of transient 53 scrolling. 54 55 - Mac OS X framework builds of Qt no longer contain a Unix-like include/ 56 directory; all headers are located in the frameworks. This may affect 57 3rd party build systems not based on qmake or cmake. 58 59**************************************************************************** 60* Platform deprecation notice * 61**************************************************************************** 62 63 - The support for the old implementation of QAtomicInt and 64 QAtomicPointer is deprecated in Qt 5.2 and will be removed in Qt 65 5.3. Building with the following compilers or environments will not 66 be possible in Qt 5.3 or the build will suffer greatly in 67 performance, unless support is revived by writing new atomics code. 68 * Green Hills compiler for INTEGRITY 69 * Sun Studio compiler suite for Solaris 70 * IBM Visual Age compiler suite for AIX 71 * Kernel-mode VxWorks 72 73 Developers interested in picking up support should contact the 74 development mailing list at development@qt-project.org for more 75 information. Note that those platforms are currently not tested. Most 76 likely, they have further problems than just the atomics code. 77 78**************************************************************************** 79* Library * 80**************************************************************************** 81 82QtCore 83------ 84 85 - Added QCollator, a class to collate Unicode strings. 86 - Added QCommandLineParser, a class to parse command lines. 87 - Added QFileSelector, a class to select platform-specific file assets. 88 - Added QLoggingCategory and related functions for logging 89 - [QTBUG-23946] Fixed a bug that prevented Qt from being built in a 90 namespace on Mac OS X. 91 - Updated the locale database to CLDR 23.1 92 - Added support for ARMv8 64-bit mode. 93 94 - Metatype system (QMetaType & QVariant): 95 * Qt now handles metatypes automatically for std::vector, std::list, 96 std::pair and std::map 97 * The metatype system now supports registering explicit conversion 98 functions via QMetaType::registerConverter 99 * The metatype system now supports iteration over a container type via 100 QSequentialIterable and QAssociativeIterable 101 * Registering the same type name twice will now print only a warning (as 102 opposed to aborting the execution of the program) 103 104 - Qt Containers: 105 * In debug mode, the Qt containers will now verify whether the iterators 106 passed to most mutating functions belong to the iterator in question. 107 * Fixed a number of bugs that would modify shared containers when calling 108 erase(), under corner-case conditions. 109 110- QtAlgorithms 111 With STL no longer being optional for building and using Qt, a number of parts 112 of QtAlgorithms no longer make sense, and have therefore been deprecated. 113 114 Replacements are available in the STL, and generally have much better 115 performance, but are not instantly source-compatible in all cases. For 116 instance, specialization of qLess or qSwap means that a direct port to 117 std::sort from qSort may not be possible, as std::sort does not use any of 118 them; a possible workaround is explicitly passing a qLess functor to 119 std::sort: 120 121 std::sort(container.begin(), container.end(), qLess<T>()); 122 123 The functions in QtAlgorithms that have been deprecated, along with their 124 STL counterparts, are: 125 - qBinaryFind (std::binary_search / std::lower_bound) 126 - qCopy (std::copy) 127 - qCopyBackward (std::copy_backward) 128 - qEqual (std::equal) 129 - qFill (std::fill) 130 - qFind (std::find) 131 - qCount (std::count) 132 - qSort (std::sort) 133 - qStableSort (std::stable_sort) 134 - qLowerBound (std::lower_bound) 135 - qUpperBound (std::upper_bound) 136 - qLess (std::less) 137 - qGreater (std::greater) 138 139 - QByteArray: 140 * Added QByteArray::Base64Url and QByteArray::OmitTrailingEquals flags 141 for QByteArray::toBase64 and fromBase64. 142 * [QTBUG-34694] Fixed a bug that would cause QByteArray to overflow some 143 size calculations. 144 145 - QCoreApplication: 146 * [QTBUG-15379][QTBUG-30628] Fixed a bug that caused Qt to mis-parse a 147 command-line argument like -DKEY=\"VALUE\" on Windows. 148 149 - QDateTime: 150 * [QTBUG-26161][QTBUG-29666] Fully implement support for Qt::TimeSpec of 151 Qt::OffsetFromUTC, added new methods for offsetFromUTC(), 152 toTimeSpec(), and toOffsetFromUTC(). 153 * Added convenience methods for fromMSecsSinceEpoch() and fromTime_t() 154 to take time spec to be used in returned datetime. 155 * Add method timeZoneAbbreviation() to return effective time zone 156 abbreviation. 157 * The debug datastream is now an ISO-like format instead of Qt::TextDate 158 * The Standard Time to Daylight Time transition for Qt::LocalTime is now 159 handled correctly. Any date set in the "missing" hour is now 160 considered invalid. All date math results that fall into the missing 161 hour will be automatically adjusted to a valid time in the following 162 hour. 163 * Added new method isDaylightTime() to return if the datetime is in 164 Daylight Time or not. 165 * Added support for a new Qt::TimeZone spec to be used with QTimeZone to 166 define times in a specific time zone. 167 * Added Qt::RFC2822Date format that can be passed to QDateTime and 168 QLocale formatters and parsers. 169 * Fixed a bug that caused QDate::toString() to return empty for dates 170 with years beyond 9999. 171 172 - QFileSystemWatcher: 173 * [QTBUG-33211] Fixed a bug that caused QFileSystemWatcher to emit change 174 notifications with the wrong path on Linux. 175 176 - QJson: 177 * [QTBUG-33229] The Writer and the Parser now fully accept non-character 178 unicode points. 179 * The Writer will no longer write inf, -inf and nan for infinites and NaN 180 values, which resulted in parsing back as strings. Instead, it will now 181 output null. 182 * The Writer now emits numeric values with full numeric precision. This 183 also allows QJson to support integer values with no loss of precision 184 up to 2^53. 185 186 - QJsonValue: 187 * Added QJsonValue::toInt(). QJsonValue can store 32-bit signed integers 188 with no loss of precision. 189 190 - QObject: 191 * New-style signal connections to functors, lambdas, and static functions 192 now works with a receiver object. The connection will be removed when 193 the either the sender or receiver objects are destroyed. 194 195 - QPluginLoader: 196 * QPluginLoader will no longer load the plugins on Mac OS X and iOS 197 systems when scanning for valid plugins. 198 * Added QPluginLoader::staticPlugins(), which returns the list of 199 built-in plugins (linked to the executable and any loaded libraries). 200 201 - QProcess: 202 * [QTBUG-32958] Fixed a bug that would cause QProcess to crash if 203 waitForStarted() were called after an unsuccessful start() 204 * Added QProcess::nullDevice(), which returns the platform's "blackhole" 205 device (/dev/null on Unix, NUL on Windows). This can be used with 206 QProcess::setStandardOutputFile. 207 * Added enum values QProcess::ForwardedOutputChannel and 208 QProcess::ForwardedErrorChannel, which allow for more fine-grained 209 control over which channel is forwarded and which one is captured. 210 * Added QProcess::ForwardedInputChannel, which allows for stdin to be 211 forwarded to this process's input. 212 * [QTBUG-32979] On Unix, QProcess now correctly forwards the siginfo_t 213 and context parameters of the signal handler to the previous handler. 214 215 - QScopedPointer: 216 * Added QScopedPointerDeleteLater, a new class that can be used as the 217 second template to QScopedPointer and will call deleteLater() on the 218 pointer when it goes out of scope. 219 220 - QSocketNotifier: 221 * Fixed a bug that caused socket notifiers not to be re-enabled after 222 they had been activated on BlackBerry. 223 224 - QStandardPaths: 225 * QStandardPaths::enableTestMode is deprecated and is replaced by 226 QStandardPaths::setTestModeEnabled. 227 * Added QStandardPaths::GenericConfigLocation, which refers to a location 228 where applications can store config files to be shared with other 229 applications. 230 231 - QThread: 232 * Added an advisory interrupt mechanism (QThread::requestInterruption and 233 QThread::isInterruptionRequested). 234 235 - QThreadPool: 236 * Added method clear() to remove any queued QRunnables. 237 * Fixed a number of race conditions. 238 239 - QTime: 240 * [QTBUG-30250] When calling QTime::toString(Qt::TextDate) and 241 QTime::toString(Qt::ISODate), milliseconds are now included in 242 the returned string. This also applies to 243 QDateTime::toString(Qt::TextDate) and 244 QDateTime::toString(ISODate). 245 * Added new methods fromMSecsSinceStartOfDay() to create a new QTime 246 from an msecs value, and msecsSinceStartOfDay() to return the QTime as 247 the number of msecs since the start of the day. 248 249 - QTimeZone: 250 * Added new QTimeZone class to support time tone calculations using the 251 host platform time zone database and the Olsen time zone ID's. 252 253 - QUrl: 254 * [QTBUG-33229] QUrl now fully accepts non-character unicode points; 255 they are encoded as percent characters; they can also be pretty 256 decoded 257 * Added QUrl::RemoveFilename flag which can be passed to path(), 258 authority() and toString() and will cause the filename part of the path 259 (the contents after the last '/') to be removed. 260 * Added QUrl::fileName(), which returns just the filename part of the 261 path. 262 * Added QUrl::NormalizePathSegments flag, which will cause QUrl to 263 remove "/./" or "/../" sequences as much as possible. It will not 264 remove "/../" from the beginning of the path. 265 * Added QUrl::adjusted(), which returns a new QUrl with certain parts of 266 the original URL removed or normalized. 267 * Added QUrl::matches(), which can be used to compare parts of two URLs 268 or to compare two URLs after normalization. 269 270 - QUtf8: 271 * [QTBUG-33229] UTF-8 now accepts non-character unicode points; these 272 are not replaced by the replacement character anymore 273 274 - QVariant: 275 * Fixed QVariant::canConvert with longlong 276 * Variant containing enum types can now be converted to integer 277 * [QTBUG-33981] Fixed a bug that would cause QPolygonF to be saved or 278 loaded incorrectly in QDataStream. 279 280QtDBus 281------ 282 283 - Improved error handling so as to give more feedback to the developer when 284 certain marshalling or demarshalling actions fail. 285 - [QTBUG-27809] Fixed some race conditions related to delivering method 286 reply deliveries. 287 - Fixed a bug that made non-slot invokables not get listed in the 288 auto-generated introspections. 289 290QtDeclarative 291------------- 292 293 - ColorDialog: 294 * Added currentColor property. 295 296 - [QTBUG-32928] ShortcutOverride events now work for QQuickItem 297 subclasses 298 299QtGui 300----- 301 302 - Accessibility classes are now public allowing accessibility 303 information for custom widgets/QQuickItems 304 305 - Session Management: 306 * [QTBUG-28228] The new QPlatformSessionManager class brings back 307 the session management functionality. It allows the 308 implementation of platform specific behavior related to session 309 management. For platform that don't support this feature the 310 default behavior has not changed. Both X11 and Windows session 311 management are supported. 312 313 - QPolygonF: 314 * When a QVariant holds a QPolygonF() then it will be correctly seen as 315 a null QVariant. 316 317 - QImage: 318 * Added three byte-ordered RGBA8888 format that simplifies interaction 319 with OpenGL and other technologies that internally using RGBA formats. 320 321 - [QTBUG-27349] Reintroduced command line argument for positioning 322 windows (-geometry on X11, -qwindowgeometry on other platforms) 323 324 - [QTBUG-28832] Fixed regression from Qt 4 when using 325 QTextOption::ShowLineAndParagraphSeparators. 326 327QtNetwork 328--------- 329 330 - API was added to store and resume TLS session tickets. 331 - The minimum support openssl version has been increased to openssl 332 1.0. The code to support older versions has not been removed, but is no 333 longer supported. 334 - An off-by-one error in NTLM proxy authentication has been fixed. 335 - Various improvements to reduce the memory used by qtnetwork have been 336 made. 337 - Improved support for HTTP proxy authentication. 338 - Support for preconnecting to servers before making HTTP and HTTPS 339 connections. This allows for much reduced latency when the hosts to be 340 connected to are known. 341 342QtPrintSupport 343-------------- 344 345 - QPrintDialog: 346 * Added support for setting CUPS job options in the print dialog. 347 * Added support for setting CUPS Banner pages in the print dialog. 348 * Added support for setting CUPS Page Set (even/odd pages only) in the 349 print dialog. 350 * Added support for setting CUPS Pages Per Sheet and Pages Per Sheet 351 Layout options 352 * Added CUPS server-side print range support for apps that can't support 353 print range option themselves 354 355QtSql 356----- 357 358Changes in Qt 5.1.0 (missing from released changelog dist/changes-5.1.0) 359 - [QTBUG-28088] Remove dependency of DB driver headers on qsqlcachedresult_p.h. 360 - Deprecate QSqlError setters. The constructor is sufficient, since it has 361 a parameter for each member variable. 362 - Rename the SQL driver header files to _p.h (make private) 363 The drivers were never public API. They were exposed by mistake in 364 public headers. What's more, they have #include'd a private header 365 (qsqlcachedresult_p.h) since at least Qt 4.5.1. That means no one used 366 those headers in Qt 4 (private headers weren't installed then) and 367 it's unlikely anyone did in 5.0. 368 - ODBC: Implemented lastInsertId() for some ODBC compatible databases. 369 - PSQL: Make lastInsertID work for tables without OIDs. 370 - [QTBUG-14904] SQLITE: Fix for Sql query aliases with dots 371 - [QTBUG-2192] ODBC: fix loss of milliseconds when binding QDateTime 372 - [QTBUG-30076] PSQL: escape backslashes only when server requires it 373 IMPORTANT: Applications that implemented their own workarounds must be 374 updated to avoid misbehavior and SQL injection vulnerabilities. 375 - [QTBUG-10569] ODBC: fixed QODBCResult::exec() return value for DELETE 376 operations when no rows are affected. 377 - ODBC: Fixed loss of column metadata on SQL_NO_DATA. 378 - QSqlTableModel: expose methods for getting primary values. 379 - ODBC: Fixed possible cause of spurious errors (commit af35ee291a1bbbc8) 380 381Changes in Qt 5.2.0 382 - [QTBUG-29261] IBASE: Construct a valid QTime when creating timestamps for 383 iBase SQL driver. 384 - [QTBUG-33389] PSQL: Format QDateTime following ISO8601. 385 - Add QSQLITE_OPEN_URI option to QSQLITE driver 386 387QtWidgets 388--------- 389 390 - Added class QKeySequenceEdit. 391 - Added QMaxCocoaViewContainer and QMacNativeWidget classes. 392 - [QTBUG-1016] Added API to control tool tip timing via: 393 * new QToolTip::showTip() overload 394 * QWidget::toolTipDuration() property. 395 * QStyle::SH_ToolTip_WakeUpDelay and SH_ToolTip_FallAsleepDelay 396 style hints. 397 - [QTBUG-30255] Fixed a bug where spans across empty cells in a grid 398 layout got broken. 399 - [QTBUG-31569] WA_QuitOnClose now works even if there are other 400 windows that don't have it set. 401 - [QTBUG-32788] Properly handles Qt::WidgetWithChildrenShortcut 402 shortcuts in MDI subwindows now. 403 - [QTBUG-33078] QWidget::setWindowOpacity() now works when called 404 before QWidget::show(). 405 - [QTBUG-33104] Fixed a bug where layout items with a Preferred size 406 policy would be treated as fixed size, if mixed with Expanding 407 items having maximumSize set. 408 - [QTBUG-33247] Changed accessible trees and tables to always expose 409 hidden headers, instead of only exposing the visible headers. 410 - [QTBUG-34007] Fixed a crash in tablet support. 411 - Fixed a bug where the maximum size hint of a layout with spans was 412 wrong. 413 - Item delegates now cycle through all three states of tri-state 414 checkboxes, the same way QCheckBox itself does. 415 416 - QAbstractItemView: 417 * [QTBUG-7232] In ItemViews scrollbars will now by default only 418 scroll 1 pixel when scrollMode is set to scrollPerPixel. That is 419 it will (when scrollMode is scrollPerPixel) do what is stated in 420 the documentation, and no longer automatically adjust the 421 scrollbar's singleStep. The user can now control that value. 422 423 - QAbstractScrollArea: 424 * QAbstractScrollArea now has a SizeAdjustPolicy. If it is set to 425 AdjustToContents it will make use of the protected viewportSizeHint() 426 virtual function. This function returns a suggested size based on 427 contents. Note that although the viewportSizeHint() virtual function 428 was reserved in 5.0, user code was not supposed to be overriding it 429 (as the function was private and undocumented). Code that was 430 overriding viewportSizeHint() needs to be recompiled against 5.2 for 431 this feature to work correctly. 432 433 - QButtonGroup: 434 * [QTBUG-14857] Added buttonToggled() signals. 435 436 - QColorDialog: 437 * Added a web color QLineEdit. 438 * [QTBUG-14332] Added a screen color picker button. 439 * [QTBUG-31998] Does no longer create widgets when using the 440 platform dialog. 441 * [QTBUG-32054] Fixed a bug with keyboard navigation. 442 443 - QComboBox: 444 * [QTBUG-31146] Fixed selection of items with identical text in 445 popup completion. 446 * Added currentData() convenience function which allows to retrieve 447 the user data set for the current item. 448 449 - QCompleter: 450 * [QTBUG-3414] Added filterMode property. 451 * The activated() signal now passes invalid indexes instead of 452 random bogus ones when falling back to the completion prefix. 453 454 - QDesktopWidget: 455 * [QTBUG-32567] Fixed emission of workAreaResized() signal. 456 457 - QDialogButtonBox: 458 * Added a (StandardButtons,QWidget*) constructor. 459 460 - QDockWidget: 461 * [QTBUG-31044] The position of a dock widget is now kept when 462 undocking. 463 * [QTBUG-32260] Fixed a bug where visibilityChanged was signaled 464 wrongly in certain multi-screen setups. 465 466 - QFileDialog: 467 * setDefaultSuffix() now removes leading dot characters. 468 * Introduced DontUseCustomDirectoryIcons. This improves the file 469 dialog performance under Windows for the case where there are 470 lots of folders. Went from taking 60 seconds to 2 seconds, on a 471 SDCard with 10k folders. 472 * Added setMimeTypeFilters() for mimetype-based filtering, as an 473 alternative to pattern matching. 474 * Fixed removing of directories containing hidden or system files. 475 * Added QUrl-based API for remote files. 476 * [QTBUG-13182] Improved performance on Windows by 477 + not resolving NTFS symlinks (15x speedup on pessimistic 478 workloads) and 479 + using extensions over calling GetFileAttributesEx() in certain 480 cases. 481 * [QTBUG-29403] Fixed potential crash in destructor of 482 ~QFileInfoGather in threaded applications. 483 * [QTBUG-34132] QFileDialog does no longer instantiate widgets if a 484 native dialog will be used instead. Therefore some accessors 485 which previously returned unused objects will now return null. 486 As before, you can set the DontUseNativeDialog option to ensure 487 that widgets will be created and used instead. 488 * [QTBUG-33039] Does no longer create widgets when using the 489 platform dialog. 490 491 - QFontComboBox: 492 * [QTBUG-1573] Made QFontComboBox locale-sensitive. 493 494 - QFontDialog: 495 * Now has finer-grained control over the types of fonts listed, 496 similar to what QFontComboBox already had. 497 498 - QGestureManager 499 * Now supports Mac OS X native gestures. 500 501 - QGraphicsView etc 502 * Fixed a crash in QGraphicsProxyWidget. 503 * [QTBUG-8061] Allow handling of mouseDoubleClickEvent in 504 QGraphicsItems. 505 * [QTBUG-19036] Make QGraphicsScene::items(QPointF) work using 506 Qt::{Contains,Intersets}ItemBoundingRect with items that contain 507 the point in the bounding rectangle, but not their (custom) 508 shape. 509 * [QTBUG-29945] Fixed drop-shadow and blur effects when using a 510 QGLWidget viewport. 511 512 - QGroupBox: 513 * [QTBUG-33610] The check indicator of a checkable group box is no 514 longer clipped when using a small title font. 515 516 - QHeaderView: 517 * Reduced memory usage by 33%. 518 * [QTBUG-4346] A maximumSize for sections has been introduced. The 519 maximum section size is by default the largest possible section 520 size which in Qt 5.2 has been limited to 1048575 pixels. 521 * [QTBUG-32203] Fixed a painting bug involving hidden and reordered 522 sections. 523 524 - QInputDialog: 525 * Added getMultiLineText static method. 526 527 - QLayout: 528 * Added replaceWidget() function. 529 530 - QLineEdit: 531 * [QTBUG-32061] The cursor is now positioned correctly in an empty 532 line edit with placeholder text. 533 * Keep placeholderText visible when focused, until text is added. 534 * Context-menu actions now have icons. 535 * Made it possible to add side widgets. 536 * Made it possible to add a clear button commonly used for item 537 view filtering as a side widget 538 539 - QListView: 540 * [QTBUG-1180] Dragging an item outside the QListView in icon mode 541 no longer loses the icon. Also fixed a bug where under certain 542 conditions code overriding QAbstractItemView::viewOptions() would 543 not be called. 544 * [QTBUG-21433] Fixed content size calculation when either 545 horizontal or vertical scroll bar policy is always off. 546 547 - QMacStyle: 548 * [QTBUG-31668] Fixed a case where multiple auto-default button 549 animations were running in parallel on OS X 550 551 - QMainWindow: 552 * Added takeCentalWidget() function. 553 554 - QMenu: 555 * Added QMenu::toNSMenu() conversion function (Mac only) 556 * Added QMenu::setAsDockMenu() and qt_mac_set_doc_menu(QMenu *menu) 557 functions (Mac only). 558 * [QTBUG-31664] Moving the mouse over a menu separator now closes 559 any open sub menus. 560 561 - QMenuBar: 562 * [QTBUG-32807] Menus now close again on second click. 563 * Added QMenuBar::toNSMenu() conversion function (Mac only) 564 565 - QMessageBox: 566 * May use native message boxes on some platforms now. 567 * setDetailedText() now works after show(). 568 * [QTBUG-2450] Added setCheckBox() function. 569 * [QTBUG-6731] It is now possible to select some or all text from a 570 QMessageBox and copy it to the clipboard. 571 572 - QScrollBar: 573 * Transient scrollbars are now properly shown when starting 574 two-finger scrolling on OS X. 575 576 - QSizePolicy: 577 * Added a retainSizeWhenHidden attribute. 578 579 - QSpinBox: 580 * Values can now be displayed in different bases 581 (cf. displayIntegerBase property) 582 * [QTBUG-31602][QTBUG-34305] Fixed size calculation when 583 stylesheets are used. 584 585 - QSplashScreen: 586 * Added message(), a getter for the currently displayed message. 587 588 - QSplitter: 589 * Now gets the default value of opaqueResize property from (new) 590 QStyle::SH_Splitter_OpaqueResize styleHint. 591 592 - QStyle: 593 * Added SH_ToolTip_WakeUpDelay and SH_ToolTip_FallAsleepDelay. 594 * Fixed SH_ItemView_ActivateItemOnSingleClick not being retrieved 595 correctly from the platform theme. 596 597 - QSystemTrayIcon: 598 * [QTBUG-31762] Fixed position of system tray icon on Linux/X11 599 (except Unity). 600 * [QTBUG-33461] Increased the maximum length of a system tray 601 tooltip on Windows to what it was in Qt 4. 602 603 - QTableView: 604 * [QTBUG-4206] resizeToContents will now adjust to actual contents 605 and not just visible area. QHeaderView::setAutoResizePrecision() 606 has been introduced to control how precise the autoResize should 607 be. 608 609 - QTextEdit: 610 * Added placeholderText akin to QLineEdit. 611 * Context-menu actions now have icons. 612 613 - QToolTip: 614 * Added new showText() overload taking a duration. 615 616 - QTreeView: 617 * Added setTreePosition() function. 618 619 - QWidget: 620 * Added window{Title,Icon,IconText}Changed() signals. 621 * Added toolTipDuration property. 622 623 - QWindowContainer: 624 * [QTBUG-32177] Sets active window correctly now. 625 * [QTBUG-34138] Will not create native child widgets any more. 626 627 - QWindowsVistaStyle: 628 * [QTBUG-26503] Does no longer draw inapplicable scroll bar 629 grippers on Windows 8. 630 631 - QWizard: 632 * [QTBUG-26722] The default background pixmap works again on OS X. 633 * [QTBUG-29924] Gave all buttons an objectName(). 634 635**************************************************************************** 636* Platform Specific Changes * 637**************************************************************************** 638 639 640Android 641------- 642 643 - Project structure and deployment has changed with the introduction of 644 androiddeployqt. Source and build files are no longer mixed, and the 645 build files for the APK package should not be touched. Customizing 646 the build files is possible. Read the documentation for androiddeployqt 647 for more information. 648 - Status bar visibility is now controlled by Qt, so the window state will 649 override settings in the AndroidManifest.xml. The default is still to 650 show the status bar (QWindow::showMaximized()). Use 651 QWindow::showFullScreen() to hide it. 652 - Implemented support for accessibility on Android. 653 - Implemented support for native action bar backend for menu bars in 654 Qt Quick Controls and Qt Widgets. 655 - Implemented support for native popup menus and comboboxes in Qt Quick 656 Controls. 657 - Implemented support for native message boxes in Qt Widgets. 658 - Several improvements to handling dialogs and multiple top-level 659 windows in Qt Widgets. 660 - Implemented automatic inclusion of necessary permissions in manifest 661 when linking against Qt Multimedia. 662 - Fixed crash on startup when running on Android 4.4. 663 - Add requirement for Android SDK version 13 or higher for building 664 Qt application. Note that this is for building only. The application 665 can still be targeted for devices with SDK versions 9 and up. 666 - Default to target SDK version 14 to disable overflow button in 667 system navigation. 668 - New module: Qt Android Extras. Contains convenience APIs for using 669 JNI, and will in the future include support for Android-specific 670 features which do not fit in a cross-platform API. 671 - Implemented support for thread-affinity in qrand() functions. 672 - Fixed several problems with predictive text in soft keyboard. 673 - Made several improvements to stability. 674 - Implemented support for camera and low-latency audio in Qt Multimedia. 675 - Fixed driver-specific bugs in text rendering in Qt Quick 2. 676 - Added preference in default manifest for installing applications to 677 external storage if possible. 678 - Fixed delivery of key press event for the Back key. 679 - Fixed race condition when showing a window in full screen which would 680 cause it to not be maximized. 681 - Fixed input method hints. 682 - Made font point sizes compatible with the interpretation of point 683 sizes on iOS to ease sharing code between the two platforms. 684 - Added support for QAmbientTemperatureSensor, QPressureSensor 685 and QProximitySensor to Qt Sensors. 686 - Removed dependency on Qt Widgets in default build of Qt Quick Controls. 687 688OS X 689---- 690 691 - Added QMaxCocoaViewContainer and QMacNativeWidget classes. 692 - Qt for OS X is now identified by the macro Q_OS_OSX. This complements the 693 existing Q_OS_DARWIN macro (which identifies the open source kernel and 694 could identify non-Apple products) and Q_OS_MAC, which is defined for 695 both OS X and iOS. The old macro Q_OS_MACX is now deprecated. 696 - Qt no longer complains about new versions of OS X that haven't been 697 released yet. This will allow Qt 5.2 and future versions to build on 698 future versions yet to be released. Note that those versions are not 699 supported until official announcement by the Qt Project. 700 - Added a number of functions to QtCore to convert to and from 701 CFString/NSString and QString, CFURL/NSURL and QUrl. 702 - QGestureManager now supports Mac OS X native gestures. 703 - Added QMenu::setAsDockMenu(), QMenu(Bar)::toNSMenu(), 704 qt_mac_set_doc_menu() functions. 705 - [QTBUG-26722] The QWizard default background pixmap works again. 706 707BlackBerry 708---------- 709 710 - Cover windows (aka active frames) are now supported. Cover windows must 711 have the Qt::CoverWindow flag set. They are shown when the application 712 is minimized. 713 714Windows 715------- 716 717 - [QTBUG-33409][QTBUG-8764][QTBUG-10032] Fixed virtual key mapping on 718 Windows. 719 - QCoreApplication::arguments() changed the handling of single quotes, double quotes 720 and the backslash character, in order to match what argv[] contains. 721 In particular, single quotes are no longer removed from the argument string. 722 (QTBUG-15379, QTBUG-30628) 723 724X11 725--- 726 727 - [QTBUG-31762] Fix position of system tray icon (except Unity) 728 - [QTBUG-27349] Reintroduced command line argument for positioning 729 windows (-geometry) 730 731**************************************************************************** 732* Tools * 733**************************************************************************** 734 735- configure 736 737 * Added option to disable the QtMultimedia WMF backend 738 * [Unix] Added option to build with gcov support 739 * Added -extprefix option to support Qt installing into a different 740 location than the on-device -prefix within the -sysroot. 741 * [QTBUG-33584][Unix] Fixed parsing of -device-option with equal signs. 742 743- cmake config files 744 745 * [QTBUG-33145] Fixed usage of non-QtBase modules with Qt compiled from 746 source tarballs. 747 * [QTBUG-33223] Fixed header file location on multi-arch systems. 748 * Added support for automatic packaging of Qt plugins with cpack. 749 750- qmake 751 752 * [QTBUG-491] Added saner approach to debug/release path rewriting. 753 * Added the parseJson() function. 754 * Added "osx" scope as an alias for "macx". Note that matching on the 755 makespec is generally deprecated - use "linux", "gcc", etc. 756 * Added support for .qmake.stash files which are really *just* caches. 757 * [Xcode] Added support for QMAKE_PRE_LINK and QMAKE_POST_LINK. 758 * [QTBUG-31129] Added installation of PDB files for dlltarget. 759 * [QTBUG-28102] Added support for querying disabled Qt features. 760 * Removed macx-clang-libc++* makespecs. libc++ is now handled automatically. 761 * [QTBUG-32912][MSVS] Fixed moc not being run in case of DBUS_ADAPTORS or 762 DBUS_INTERFACES being present. 763 * [QTBUG-30644] Fixed unsatisfied requires() breaking recursive targets. 764 * [QTBUG-31204] Fixed extra compilers not finding their inputs. 765 * [QTBUG-32885][MSVS] Made it possible to disable debug information. 766 * [QTBUG-33446][MSVS] Fixed generation of VS2010+ solution files. 767 * [QTBUG-32375][MSVS] Fixed output directory of nested projects. 768 * [QTBUG-34392][MSVS] Fixed /SAFESEH:NO with VS2010+. 769 * [QTBUG-34357][MSVS] Fixed breakage with multiple VS versions in PATH. 770 * [MSVS] Fixed sub-project dependency generation. 771 772- moc 773 * Porting moc to QCommandLineParser has changed one specific option in its 774 command line handling: using the -f option without argument 775 is not supported anymore (it wasn't necessary, since including the header 776 file is the default behavior). 777 778