summaryrefslogtreecommitdiffstats
path: root/dist/changes-5.2.0
diff options
context:
space:
mode:
Diffstat (limited to 'dist/changes-5.2.0')
-rw-r--r--dist/changes-5.2.0537
1 files changed, 499 insertions, 38 deletions
diff --git a/dist/changes-5.2.0 b/dist/changes-5.2.0
index a3a7db8190..f513d64626 100644
--- a/dist/changes-5.2.0
+++ b/dist/changes-5.2.0
@@ -16,36 +16,69 @@ Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.
****************************************************************************
-* Library *
+* Important Behavior Changes *
****************************************************************************
-QtWidgets
----------
-
-- QAbstractScrollArea now has a SizeAdjustPolicy. If it is set to AdjustToContents
- it will make use of the new protected viewportSizeHint() (binary compatible since it
- was reserved in Qt5). This function returns a suggested size based on contents.
+ - Qt is now compiled with qreal typedef'ed to double on all
+ platforms. qreal was a float on ARM chipsets before. This guarantees more
+ consistent behavior between all platforms Qt supports, but is binary
+ incompatible to Qt 5.1 on ARM. The old behavior can be restored by
+ passing -qreal float to configure.
+ - The supported date range in QDateTime has been reduced to about +/- 292
+ million years, the range supported by the number of msecs since the Unix
+ epoch of 1 Jan 1970 as stored in a qint64, and as able to be used in the
+ setMSecsSinceEpoch() and toMSecsSinceEpoch() methods.
-- QTreeView now has setTreePosition to allow the treestructure to show data from other
- columns than logicalindex zero.
+ - QUrl and QUrlQuery:
+ * [QTBUG-31660] QUrl no longer considers all delimiter characters
+ equivalent to their percent-encoded forms. Now, both classes always
+ keep all delimiters exactly as they were in the original URL text.
+ * [QTBUG-31660] QUrl no longer decodes %7B and %7D to "{" and "}" in the
+ output of toString()
+ * QUrl no longer supports QUrl::FullyDecoded mode in authority() and
+ userInfo(), nor QUrl::DecodedMode in setAuthority() and setUserInfo().
+ * [QTBUG-31945] QUrl no longer decodes %23 found in the fragment to "#"
+ in the output of toString(QUrl::FullyEncoded) or toEncoded()
+ * QUrl now defaults to decoded mode in the getters and setters for
+ userName, password, host, topLevelDomain, path and fileName. This
+ means a '%' in one of those fields is now returned (or set) as '%'
+ rather than "%25". In the unlikely case where the former behavior was
+ expected, pass PrettyDecoded to the getter and TolerantMode to the
+ setter.
+ * QUrl now normalizes the path given in setPath, removing ./ and ../ and
+ duplicate slashes.
-- [QTBUG-4206] QTableView resizeToContents will now adjust to actual contents
- and not just visible area. QHeaderView::setAutoResizePrecision() has been
- introduced to control how precise the autoResize should be.
+****************************************************************************
+* Library *
+****************************************************************************
-- QFileDialog::setDefaultSuffix() removes leading dot characters.
+QtCore
+------
-- QSizePolicy got a retainSizeWhenHidden attribute.
+ - Added QCollator, a class to collate Unicode strings.
+ - Added QCommandLineParser, a class to parse command lines.
+ - Added QFileSelector, a class to select platform-specific file assets.
+ - Added QLoggingCategory and related functions for logging
+ - [QTBUG-23946] Fixed a bug that prevented Qt from being built in a
+ namespace on Mac OS X.
+ - Updated the locale database to CLDR 23.1
+ - Added support for ARMv8 64-bit mode.
-- [QTBUG-31602] QSpinBox size calculation will now be fixed when stylesheets are
- used.
+ - Metatype system (QMetaType & QVariant):
+ * Qt now handles metatypes automatically for std::vector, std::list,
+ std::pair and std::map
+ * The metatype system now supports registering explicit conversion
+ functions via QMetaType::registerConverter
+ * The metatype system now supports iteration over a container type via
+ QSequentialIterable and QAssociativeIterable
+ * Registering the same type name twice will now print only a warning (as
+ opposed to aborting the execution of the program)
-QtCore
-------
-- [QTBUG-30250] QTime, QDateTime:
- When calling QTime::toString(Qt::TextDate) and QTime::toString(Qt::ISODate),
- milliseconds are now included in the returned string. This also applies to
- QDateTime::toString(Qt::TextDate) and QDateTime::toString(ISODate).
+ - Qt Containers:
+ * In debug mode, the Qt containers will now verify whether the iterators
+ passed to most mutating functions belong to the iterator in question.
+ * Fixed a number of bugs that would modify shared containers when calling
+ erase(), under corner-case conditions.
- QtAlgorithms
With STL no longer being optional for building and using Qt, a number of parts
@@ -76,30 +109,458 @@ QtCore
- qLess (std::less)
- qGreater (std::greater)
+ - QByteArray:
+ * Added QByteArray::Base64Url and QByteArray::OmitTrailingEquals flags
+ for QByteArray::toBase64 and fromBase64.
+ * [QTBUG-34694] Fixed a bug that would cause QByteArray to overflow some
+ size calculations.
+
+ - QCoreApplication:
+ * [QTBUG-15379][QTBUG-30628] Fixed a bug that caused Qt to mis-parse a
+ command-line argument like -DKEY=\"VALUE\" on Windows.
+
+ - QDateTime:
+ * [QTBUG-26161][QTBUG-29666] Fully implement support for Qt::TimeSpec of
+ Qt::OffsetFromUTC, added new methods for offsetFromUTC(),
+ toTimeSpec(), and toOffsetFromUTC().
+ * Added convenience methods for fromMSecsSinceEpoch() and fromTime_t()
+ to take time spec to be used in returned datetime.
+ * Add method timeZoneAbbreviation() to return effective time zone
+ abbreviation.
+ * The debug datastream is now an ISO-like format instead of Qt::TextDate
+ * The Standard Time to Daylight Time transition for Qt::LocalTime is now
+ handled correctly. Any date set in the "missing" hour is now
+ considered invalid. All date math results that fall into the missing
+ hour will be automatically adjusted to a valid time in the following
+ hour.
+ * Added new method isDaylightTime() to return if the datetime is in
+ Daylight Time or not.
+ * Added support for a new Qt::TimeZone spec to be used with QTimeZone to
+ define times in a specific time zone.
+ * Added Qt::RFC2822Date format that can be passed to QDateTime and
+ QLocale formatters and parsers.
+ * Fixed a bug that caused QDate::toString() to return empty for dates
+ with years beyond 9999.
+
+ - QFileSystemWatcher:
+ * [QTBUG-33211] Fixed a bug that caused QFileSystemWatcher to emit change
+ notifications with the wrong path on Linux.
+
+ - QJson:
+ * [QTBUG-33229] The Writer and the Parser now fully accept non-character
+ unicode points.
+ * The Writer will no longer write inf, -inf and nan for infinites and NaN
+ values, which resulted in parsing back as strings. Instead, it will now
+ output null.
+ * The Writer now emits numeric values with full numeric precision. This
+ also allows QJson to support integer values with no loss of precision
+ up to 2^53.
+
+ - QJsonValue:
+ * Added QJsonValue::toInt(). QJsonValue can store 32-bit signed integers
+ with no loss of precision.
+
+ - QObject:
+ * New-style signal connections to functors, lambdas, and static functions
+ now works with a receiver object. The connection will be removed when
+ the either the sender or receiver objects are destroyed.
+
+ - QPluginLoader:
+ * QPluginLoader will no longer load the plugins on Mac OS X and iOS
+ systems when scanning for valid plugins.
+ * Added QPluginLoader::staticPlugins(), which returns the list of
+ built-in plugins (linked to the executable and any loaded libraries).
+
+ - QProcess:
+ * [QTBUG-32958] Fixed a bug that would cause QProcess to crash if
+ waitForStarted() were called after an unsuccessful start()
+ * Added QProcess::nullDevice(), which returns the platform's "blackhole"
+ device (/dev/null on Unix, NUL on Windows). This can be used with
+ QProcess::setStandardOutputFile.
+ * Added enum values QProcess::ForwardedOutputChannel and
+ QProcess::ForwardedErrorChannel, which allow for more fine-grained
+ control over which channel is forwarded and which one is captured.
+ * Added QProcess::ForwardedInputChannel, which allows for stdin to be
+ forwarded to this process's input.
+ * [QTBUG-32979] On Unix, QProcess now correctly forwards the siginfo_t
+ and context parameters of the signal handler to the previous handler.
+
+ - QScopedPointer:
+ * Added QScopedPointerDeleteLater, a new class that can be used as the
+ second template to QScopedPointer and will call deleteLater() on the
+ pointer when it goes out of scope.
+
+ - QSocketNotifier:
+ * Fixed a bug that caused socket notifiers not to be re-enabled after
+ they had been activated on BlackBerry.
+
+ - QStandardPaths:
+ * QStandardPaths::enableTestMode is deprecated and is replaced by
+ QStandardPaths::setTestModeEnabled.
+ * Added QStandardPaths::GenericConfigLocation, which refers to a location
+ where applications can store config files to be shared with other
+ applications.
+
+ - QThread:
+ * Added an advisory interrupt mechanism (QThread::requestInterruption and
+ QThread::isInterruptionRequested).
+
+ - QThreadPool:
+ * Added method clear() to remove any queued QRunnables.
+ * Fixed a number of race conditions.
+
+ - QTime:
+ * [QTBUG-30250] When calling QTime::toString(Qt::TextDate) and
+ QTime::toString(Qt::ISODate), milliseconds are now included in
+ the returned string. This also applies to
+ QDateTime::toString(Qt::TextDate) and
+ QDateTime::toString(ISODate).
+ * Added new methods fromMSecsSinceStartOfDay() to create a new QTime
+ from an msecs value, and msecsSinceStartOfDay() to return the QTime as
+ the number of msecs since the start of the day.
+
+ - QTimeZone:
+ * Added new QTimeZone class to support time tone calculations using the
+ host platform time zone database and the Olsen time zone ID's.
+
+ - QUrl:
+ * [QTBUG-33229] QUrl now fully accepts non-character unicode points;
+ they are encoded as percent characters; they can also be pretty
+ decoded
+ * Added QUrl::RemoveFilename flag which can be passed to path(),
+ authority() and toString() and will cause the filename part of the path
+ (the contents after the last '/') to be removed.
+ * Added QUrl::fileName(), which returns just the filename part of the
+ path.
+ * Added QUrl::NormalizePathSegments flag, which will cause QUrl to
+ remove "/./" or "/../" sequences as much as possible. It will not
+ remove "/../" from the beginning of the path.
+ * Added QUrl::adjusted(), which returns a new QUrl with certain parts of
+ the original URL removed or normalized.
+ * Added QUrl::matches(), which can be used to compare parts of two URLs
+ or to compare two URLs after normalization.
+
+ - QUtf8:
+ * [QTBUG-33229] UTF-8 now accepts non-character unicode points; these
+ are not replaced by the replacement character anymore
+
+ - QVariant:
+ * Fixed QVariant::canConvert with longlong
+ * Variant containing enum types can now be converted to integer
+ * [QTBUG-33981] Fixed a bug that would cause QPolygonF to be saved or
+ loaded incorrectly in QDataStream.
+
+QtDBus
+------
+
+ - Improved error handling so as to give more feedback to the developer when
+ certain marshalling or demarshalling actions fail.
+ - [QTBUG-27809] Fixed some race conditions related to delivering method
+ reply deliveries.
+ - Fixed a bug that made non-slot invokables not get listed in the
+ auto-generated introspections.
+
+QtDeclarative
+-------------
+
+ - ColorDialog:
+ * Added currentColor property.
+
+ - [QTBUG-32928] ShortcutOverride events now work for QQuickItem
+ subclasses
+
QtGui
-----
-- [QTBUG-28228] Session Management:
- The new QPlatformSessionManager class brings back the session management
- functionality. It allows the implementation of platform specific behavior
- related to session management. For platform that don't support this
- feature the default behavior has not changed.
- Both X11 and Windows session management are supported.
+
+ - Accessibility classes are now public allowing accessibility
+ information for custom widgets/QQuickItems
+
+ - Session Management:
+ * [QTBUG-28228] The new QPlatformSessionManager class brings back
+ the session management functionality. It allows the
+ implementation of platform specific behavior related to session
+ management. For platform that don't support this feature the
+ default behavior has not changed. Both X11 and Windows session
+ management are supported.
+
+ - QPolygonF:
+ * When a QVariant holds a QPolygonF() then it will be correctly seen as
+ a null QVariant.
+
+ - [QTBUG-27349] Reintroduced command line argument for positioning
+ windows (-geometry on X11, -qwindowgeometry on other platforms)
QtNetwork
---------
-- API was added to store and resume TLS session tickets.
+ - API was added to store and resume TLS session tickets.
+ - The minimum support openssl version has been increased to openssl
+ 1.0. The code to support older versions has not been removed, but is no
+ longer supported.
+ - An off-by-one error in NTLM proxy authentication has been fixed.
+ - Various improvements to reduce the memory used by qtnetwork have been
+ made.
+ - Improved support for HTTP proxy authentication.
+ - Support for preconnecting to servers before making HTTP and HTTPS
+ connections. This allows for much reduced latency when the hosts to be
+ connected to are known.
+
+QtPrintSupport
+--------------
+
+ - QPrintDialog:
+ * Added support for setting CUPS job options in the print dialog.
+ * Added support for setting CUPS Banner pages in the print dialog.
+ * Added support for setting CUPS Page Set (even/odd pages only) in the
+ print dialog.
+ * Added support for setting CUPS Pages Per Sheet and Pages Per Sheet
+ Layout options
+ * Added CUPS server-side print range support for apps that can't support
+ print range option themselves
+
+QtSql
+-----
+
+Changes in Qt 5.1.0 (missing from released changelog dist/changes-5.1.0)
+ - [QTBUG-28088] Remove dependency of DB driver headers on qsqlcachedresult_p.h.
+ - Deprecate QSqlError setters. The constructor is sufficient, since it has
+ a parameter for each member variable.
+ - Rename the SQL driver header files to _p.h (make private)
+ The drivers were never public API. They were exposed by mistake in
+ public headers. What's more, they have #include'd a private header
+ (qsqlcachedresult_p.h) since at least Qt 4.5.1. That means no one used
+ those headers in Qt 4 (private headers weren't installed then) and
+ it's unlikely anyone did in 5.0.
+ - ODBC: Implemented lastInsertId() for some ODBC compatible databases.
+ - PSQL: Make lastInsertID work for tables without OIDs.
+ - [QTBUG-14904] SQLITE: Fix for Sql query aliases with dots
+ - [QTBUG-2192] ODBC: fix loss of milliseconds when binding QDateTime
+ - [QTBUG-30076] PSQL: escape backslashes only when server requires it
+ IMPORTANT: Applications that implemented their own workarounds must be
+ updated to avoid misbehavior and SQL injection vulnerabilities.
+ - [QTBUG-10569] ODBC: fixed QODBCResult::exec() return value for DELETE
+ operations when no rows are affected.
+ - ODBC: Fixed loss of column metadata on SQL_NO_DATA.
+ - QSqlTableModel: expose methods for getting primary values.
+ - ODBC: Fixed possible cause of spurious errors (commit af35ee291a1bbbc8)
+
+Changes in Qt 5.2.0
+ - [QTBUG-29261] IBASE: Construct a valid QTime when creating timestamps for
+ iBase SQL driver.
+ - [QTBUG-33389] PSQL: Format QDateTime following ISO8601.
+ - Add QSQLITE_OPEN_URI option to QSQLITE driver
+
+QtWidgets
+---------
+
+ - [QTBUG-30255] Fixed a bug where spans across empty cells in a grid
+ layout got broken.
+ - [QTBUG-32788] Properly handles Qt::WidgetWithChildrenShortcut
+ shortcuts in MDI subwindows now.
+ - [QTBUG-33078] QWidget::setWindowOpacity() now works when called
+ before QWidget::show().
+ - [QTBUG-33247] Changed accessible trees and tables to always expose
+ hidden headers, instead of only exposing the visible headers.
+ - [QTBUG-34007] Fixed a crash in tablet support.
+ - Fixed a bug where the maximum size hint of a layout with spans was
+ wrong.
+ - Item delegates now cycle through all three states of tri-state
+ checkboxes, the same way QCheckBox itself does.
+
+ - QAbstractItemView:
+ * [QTBUG-7232] In ItemViews scrollbars will now by default only
+ scroll 1 pixel when scrollMode is set to scrollPerPixel. That is
+ it will (when scrollMode is scrollPerPixel) do what is stated in
+ the documentation, and no longer automatically adjust the
+ scrollbar's singleStep. The user can now control that value.
+
+ - QAbstractScrollArea:
+ * QAbstractScrollArea now has a SizeAdjustPolicy. If it is set to
+ AdjustToContents it will make use of the protected viewportSizeHint()
+ virtual function. This function returns a suggested size based on
+ contents. Note that although the viewportSizeHint() virtual function
+ was reserved in 5.0, user code was not supposed to be overriding it
+ (as the function was private and undocumented). Code that was
+ overriding viewportSizeHint() needs to be recompiled against 5.2 for
+ this feature to work correctly.
+
+ - QColorDialog:
+ * Added a web color QLineEdit.
+ * [QTBUG-14332] Added a screen color picker button.
+ * [QTBUG-31998] Does no longer create widgets when using the
+ platform dialog.
+
+ - QComboBox:
+ * Added currentData() convenience function which allows to retrieve
+ the user data set for the current item.
+
+ - QCompleter:
+ * [QTBUG-3414] Added filterMode property.
+
+ - QDesktopWidget:
+ * [QTBUG-32567] Fixed emission of workAreaResized() signal.
+
+ - QDialogButtonBox:
+ * Added a (StandardButtons,QWidget*) constructor.
+
+ - QDockWidget:
+ * [QTBUG-31044] The position of a dock widget is now kept when
+ undocking.
+ * [QTBUG-32260] Fixed a bug where visibilityChanged was signaled
+ wrongly in certain multi-screen setups.
+
+ - QFileDialog:
+ * setDefaultSuffix() now removes leading dot characters.
+ * Introduced DontUseCustomDirectoryIcons. This improves the file
+ dialog performance under Windows for the case where there are
+ lots of folders. Went from taking 60 seconds to 2 seconds, on a
+ SDCard with 10k folders.
+ * Added setMimeTypeFilters() for mimetype-based filtering, as an
+ alternative to pattern matching.
+ * Fixed removing of directories containing hidden or system files.
+ * Added QUrl-based API for remote files.
+ * [QTBUG-13182] Improved performance on Windows by
+ + not resolving NTFS symlinks (15x speedup on pessimistic
+ workloads) and
+ + using extensions over calling GetFileAttributesEx() in certain
+ cases.
+ * [QTBUG-29403] Fixed potential crash in destructor of
+ ~QFileInfoGather in threaded applications.
+ * [QTBUG-34132] QFileDialog does no longer instantiate widgets if a
+ native dialog will be used instead. Therefore some accessors
+ which previously returned unused objects will now return null.
+ As before, you can set the DontUseNativeDialog option to ensure
+ that widgets will be created and used instead.
+ * [QTBUG-33039] Does no longer create widgets when using the
+ platform dialog.
+
+ - QFontDialog:
+ * Now has finer-grained control over the types of fonts listed,
+ similar to what QFontComboBox already had.
+
+ - QGraphicsView etc
+ * Fixed a crash in QGraphicsProxyWidget.
+ * [QTBUG-8061] Allow handling of mouseDoubleClickEvent in
+ QGraphicsItems.
+ * [QTBUG-19036] Make QGraphicsScene::items(QPointF) work using
+ Qt::{Contains,Intersets}ItemBoundingRect with items that contain
+ the point in the bounding rectangle, but not their (custom)
+ shape.
+
+ - QHeaderView:
+ * [QTBUG-4346] A maximumSize for sections has been introduced. The
+ maximum section size is by default the largest possible section
+ size which in Qt 5.2 has been limited to 1048575 pixels.
+
+ - QInputDialog:
+ * Added getMultiLineText static method.
+
+ - QLineEdit:
+ * Keep placeholderText visible when focused, until text is added.
+ * Context-menu actions now have icons.
+ * Made it possible to add side widgets.
+ * Made it possible to add a clear button commonly used for item
+ view filtering as a side widget
+
+ - QListView:
+ * [QTBUG-1180] Dragging an item outside the QListView in icon mode
+ no longer loses the icon. Also fixed a bug where under certain
+ conditions code overriding QAbstractItemView::viewOptions() would
+ not be called.
+
+ - QMenuBar:
+ * [QTBUG-32807] Menus now close again on second click.
+
+ - QMessageBox:
+ * May use native message boxes on some platforms now.
+ * [QTBUG-6731] It is now possible to select some or all text from a
+ QMessageBox and copy it to the clipboard.
+
+ - QSizePolicy:
+ * Added a retainSizeWhenHidden attribute.
+
+ - QSpinBox:
+ * Values can now be displayed in different bases
+ (cf. displayIntegerBase property)
+ * [QTBUG-31602] Size calculation will now be fixed when stylesheets
+ are used.
+
+ - QSplitter:
+ * Now gets the default value of opaqueResize property from (new)
+ QStyle::SH_Splitter_OpaqueResize styleHint.
+
+ - QSystemTrayIcon:
+ * [QTBUG-31762] Fixed position of system tray icon on Linux/X11
+ (except Unity).
+ * [QTBUG-33461] Increased the maximum length of a system tray
+ tooltip on Windows to what it was in Qt 4.
+
+ - QTableView:
+ * [QTBUG-4206] resizeToContents will now adjust to actual contents
+ and not just visible area. QHeaderView::setAutoResizePrecision()
+ has been introduced to control how precise the autoResize should
+ be.
+
+ - QTextEdit:
+ * Added placeholderText akin to QLineEdit.
+ * Context-menu actions now have icons.
+
+ - QTreeView:
+ * QTreeView now has setTreePosition to allow the treestructure to
+ show data from other columns than logicalindex zero.
+
+ - QWindowContainer:
+ * [QTBUG-32177] Sets active window correctly now.
+
+ - QWizard:
+ * [QTBUG-29924] Gave all buttons an objectName().
+
+****************************************************************************
+* Platform Specific Changes *
+****************************************************************************
+
+
+Android
+-------
+
+ - Project structure and deployment has changed with the introduction of
+ androiddeployqt. Source and build files are no longer mixed, and the
+ build files for the APK package should not be touched. Customizing
+ the build files is possible. Read the documentation for androiddeployqt
+ for more information.
+ - Status bar visibility is now controlled by Qt, so the window state will
+ override settings in the AndroidManifest.xml. The default is still to
+ show the status bar (QWindow::showMaximized()). Use
+ QWindow::showFullScreen() to hide it.
+ - Implemented support for accessibility on Android.
+
+OS X
+----
-- The minimum support openssl version has been increased to openssl 1.0. The
- code to support older versions has not been removed, but is no longer
- supported.
+ - Qt for OS X is now identified by the macro Q_OS_OSX. This complements the
+ existing Q_OS_DARWIN macro (which identifies the open source kernel and
+ could identify non-Apple products) and Q_OS_MAC, which is defined for
+ both OS X and iOS. The old macro Q_OS_MACX is now deprecated.
+ - Qt no longer complains about new versions of OS X that haven't been
+ released yet. This will allow Qt 5.2 and future versions to build on
+ future versions yet to be released. Note that those versions are not
+ supported until official announcement by the Qt Project.
+ - Added a number of functions to QtCore to convert to and from
+ CFString/NSString and QString, CFURL/NSURL and QUrl.
-- An off-by-one error in NTLM proxy authentication has been fixed.
+Windows
+-------
-- Various improvements to reduce the memory used by qtnetwork have been made.
+ - [QTBUG-33409][QTBUG-8764][QTBUG-10032] Fixed virtual key mapping on
+ Windows.
+ - QCoreApplication::arguments() changed the handling of single quotes, double quotes
+ and the backslash character, in order to match what argv[] contains.
+ In particular, single quotes are no longer removed from the argument string.
+ (QTBUG-15379, QTBUG-30628)
-- Improved support for HTTP proxy authentication.
+X11
+---
-- Support for preconnecting to servers before making HTTP and HTTPS
- connections. This allows for much reduced latency when the hosts to be
- connected to are known.
+ - [QTBUG-31762] Fix position of system tray icon (except Unity)
+ - [QTBUG-27349] Reintroduced command line argument for positioning
+ windows (-geometry)