X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dist%2Fchanges-5.0.0;h=a969fc84d5ef24cc78fb58f5725723829dac46d6;hb=817bec7a23cb8ee20947547eefa3b4cca70525c9;hp=f227a123f885c5d9d81e7658595ef513d5ee3059;hpb=83645377e98fb1312b6f80a1c996a013b62f0b46;p=profile%2Fivi%2Fqtbase.git diff --git a/dist/changes-5.0.0 b/dist/changes-5.0.0 index f227a12..a969fc8 100644 --- a/dist/changes-5.0.0 +++ b/dist/changes-5.0.0 @@ -11,6 +11,12 @@ information about a particular change. * Source incompatible changes * **************************************************************************** +- QAtomicInt's and QAtomicPointer's non-atomic convenience methods + (i.e., operator=, operator int / operator T*, operator!, operator==, + operator!= and operator->) have been removed as they did implicit + loads and stores of unspecified memory ordering. Code dealing with + is expected to use load(), loadAquire(), store() and storeRelease() + as necessary instead. - QObject * The signatures of the connectNotify() and disconnectNotify() functions @@ -41,6 +47,9 @@ information about a particular change. - QCoreApplication::translate() will no longer return the source text when the translation is empty. Use lrelease -removeidentical for optimization. +- QTranslator subclasses need to adjust the signature of the virtual method + translate() in order to add the "int n = -1" argument. + - QString and QByteArray constructors that take a size argument will now treat negative sizes to indicate nul-terminated strings (a nul-terminated array of QChar, in the case of QString). In Qt 4, negative sizes were ignored and @@ -57,11 +66,24 @@ information about a particular change. in Qt4, so these methods return a bool now. If your code used the undocumented QBool, simply replace it with bool. +- The old macros TRUE and FALSE have been removed, use true and false instead. + - qIsDetached<> has been removed without replacement. +- The return type of QFlags::operator int() now matches the Enum's underlying + type in signedness instead of always being 'int'. This was done in order to allow + QFlags over enums whose underlying type is unsigned (Qt::MouseButton is one such + enum). + - QMetaType: * QMetaType::construct() has been renamed to QMetaType::create(). * QMetaType::unregisterType() has been removed. + * QMetaType now records if the type argument inherits QObject. This + can be used in scripting APIs, so that custom QObject subclasses + are treated as QObject pointers. In QtScript for example, this can + mean that QScriptValue.isQObject can be true where it was false before. + * QMetaType::QWidgetStar has been removed. Use qMetaTypeId() + or QVariant::canConvert() as appropriate. - QMetaMethod: * QMetaMethod::signature() has been renamed to QMetaMethod::methodSignature(), @@ -78,6 +100,14 @@ information about a particular change. instance was removed. Code constructing such variants can be migrated by explicitly calling QColor constructor. For example from "QVariant(Qt::red)" to "QVariant(QColor(Qt::red))" + * Similarly, implicit creation of QVariants from enum values Qt::BrushStyle, + Qt::PenStyle, and Qt::CursorShape have been removed. Create objects explicitly + or use static_cast(Qt::SolidLine) to create a QVariant of type int with + the same value as the enum. + +- QLocale: + * The historical language and country names were updated to their modern values, + some deprecated names were dropped or mapped to their modern alternatives. - QTestLib: * The plain-text, xml and lightxml test output formats have been changed to @@ -111,6 +141,18 @@ information about a particular change. like SkipSingle -- skipping a non-data-driven test function or skipping only the current data row of a data-driven test function. Every skipped data row is now reported in the test log. + * The qCompare() function template was both overloaded and specialised, which + made it almost impossible to specialise the correct primary template and + could lead to indecipherable error messages or surprising overload resolution + (such as going via qCompare(QFlags,int) to satisfy a request for + qCompare()). Now, specialisation has been replaced by overloading. + As a consquence, code such as qCompare(l, r) will no longer use the + QString-specific implementation and may fail to compile. We recommend you + replace specialisations with overloading, too. Also, don't pass explicit + template arguments to qCompare (e.g. qCompare(l, r)), but let + overload resolution pick the correct one, and cast arguments in case of + ambiguous overloads (e.g. qCompare(QString(l), r)). The resulting code will + continue to work against older QtTestlib versions. - The QSsl::TlsV1 enum value was renamed to QSsl::TlsV1_0 . @@ -168,12 +210,24 @@ information about a particular change. * Q_DECLARE_METATYPE(Foo*) now requires that Foo is fully defined. In cases where a forward declared type should be used as a metatype, Q_DECLARE_OPAQUE_POINTER(Foo*) can be used to allow that. + * Similarly, Q_DECLARE_METATYPE(QSharedPointer), and + Q_DECLARE_METATYPE(QWeakPointer) require Foo to be fully defined. Again + though, Q_DECLARE_OPAQUE_POINTER(Foo*) can be used to allow that. - QItemEditorFactory * The signature of the createEditor and valuePropertyName methods have been changed to take arguments of type int instead of QVariant::Type. +- QModelIndex/QAbstractItemModel + + * The integer value that can be stored in a QModelIndex is now of type + quintptr to match the size of the internal storage location. + * The createIndex() method now only provides the void* and quintptr + overloads, making calls with a literal 0 (createIndex(row, col, 0)) + ambiguous. Either cast (quintptr(0)) or omit the third argument + (to get the void* overload). + - QWindowSystemInterface: * The signature of all handleTouchEvent() variants have changed, @@ -207,8 +261,8 @@ information about a particular change. - The QHttp, QHttpHeader, QHttpResponseHeader and QHttpRequestHeader classes have been removed, QNetworkAccessManager should be used instead. -- The QFtp class is no longer exported, QNetworkAccessManager should be used - instead. +- The QFtp and QUrlInfo classes are no longer exported, QNetworkAccessManager should be used + instead. These classes are available in a separate module, qtftp. - QProcess @@ -276,6 +330,34 @@ information about a particular change. QColorDialog::setCustomColor() and QColorDialog::setStandardColor() now take a QColor value for their second parameter instead of QRgb. +- QPageSetupDialog has had the PageSetupDialogOption enum and the api to + set and get the enum removed as none of the Options are used any more. + +- QAbstractPageSetupDialog has been removed. + +- QThread::terminated() has been removed, since its emission cannot be guaranteed. + +- QPrintEngine - Removed the PPK_SuppressSystemPrintStatus key as no longer used. + +- QCoreApplication::Type and QApplication::type() have been removed. These + Qt3 legacy application types did not match the application types + available in Qt5. Use for example qobject_cast instead to dynamically + find out the exact application type. + +- The following QStyle implementations have been made internal: + * QFusionStyle + * QGtkStyle + * QMacStyle + * QWindowsCEStyle + * QWindowsMobileStyle + * QWindowsStyle + * QWindowsVistaStyle + * QWindowsXPStyle + Instead of creating instances or inheriting these classes directly, use: + * QStyleFactory for creating instances of specific styles + * QProxyStyle for customizing existing style implementations + * QCommonStyle as a base for implementing full custom styles. + **************************************************************************** * General * **************************************************************************** @@ -287,6 +369,18 @@ General Improvements more closely match the directory structure of the code under test. Integration tests have been moved to tests/auto/integrationtests. +- Qt is compiled with C++11 support enabled by default, provided the compiler + supports C++11. Qmake based projects can enable C++11 support explicitly + using 'CONFIG+=c++11' in their .pro files. To enable it conditionally, use + 'contains(QT_CONFIG,c++11):CONFIG+=c++11'. This will enable C++11 support + only if Qt was built with C++11 support. + +- The Unicode Data and Algorithms has been updated to match the + Unicode Standard of version 6.2. For more information see http://www.unicode.org/ + +- The QLocale data has been updated to CLDR 22.1. + For more information see http://cldr.unicode.org/ + Third party components ---------------------- @@ -294,6 +388,10 @@ Third party components flags are now enabled by default on all platforms, for the sqlite3 copy under the 3rdparty directory. +Legal +----- + + - Copyright of Qt has been transferred to Digia Plc. **************************************************************************** * Library * @@ -301,7 +399,12 @@ the 3rdparty directory. QtCore ------ -* drop a bogus QChar::NoCategory enum value; the proper QChar::Other_NotAssigned +* [QTBUG-12144], [QTBUG-18360] The QChar methods are now able to handle the full range + of Unicode codepoints defined by the Unicode Standard of version 6.2. + QChar::isPrint() will no longer return a false positives for + the Unicode format characters, surrogates, and private use characters. + +* Drop a bogus QChar::NoCategory enum value; the proper QChar::Other_NotAssigned value is returned for an unassigned codepoints now. * layoutAboutToBeChanged is no longer emitted by QAbstractItemModel::beginMoveRows. @@ -309,6 +412,9 @@ QtCore should now also connect to (and disconnect from) the rowsAboutToBeMoved and rowsMoved signals. +* The QAbstractItemModel::sibling method was made virtual, allowing implementations + to optimize based on internal data. + * The default value of the property QSortFilterProxyModel::dynamicSortFilter was changed from false to true. @@ -377,10 +483,61 @@ QtCore * QEvent::AccessibilityPrepare, AccessibilityHelp and AccessibilityDescription removed: * The enum values simply didn't make sense in the first place and should simply be dropped. +* Filtering of native events (QCoreApplication::setEventFilter, as well as + QApplication::x11EventFilter/macEventFilter/qwsEventFilter/winEventFilter) have been replaced + with QCoreApplication::installNativeEventFilter and removeNativeEventFilter, + for an API much closer to QEvent filtering. Note that the native events that can be + filtered this way depend on which QPA backend is chosen, at runtime. On X11, XEvents are + not used anymore, and have been replaced with xcb_generic_event_t due to the switch to + XCB, which requires porting the application code to XCB as well. + * [QTBUG-23529] QHash is now more resilient to a family of denial of service attacks exploiting algorithmic complexity, by supporting two-arguments overloads of the qHash() hashing function. +* [QTBUG-4844] QObject::disconnectNotify() is now called when a receiver is destroyed. + +* QStateMachine + - [QTBUG-15430] Added a QStateMachine constructor that takes a ChildMode parameter. + - [QTBUG-17975] Delayed event posting now works from secondary threads. + - [QTBUG-19789] Signal transitions now work correctly when the sender is in a different thread. + - [QTBUG-20362] Property assignments now work as expected with nested, parallel states. + - [QTBUG-22931] The root state can now be a parallel state group. + - [QTBUG-24307] The initial state is now entered before the started() signal is emitted. + - [QTBUG-25959] State entry and exit order is now SCXML spec-compliant. + +* qDebug(), qWarning(), qCritical(), and qFatal() were changed to macros that track the origin + of the message in source code. Whether this and other meta-information is printed can be + configured (for the default message handler) by setting the new QT_MESSAGE_PATTERN environment + variable. qInstallMsgHandler() has been deprecated, and should be replaced with + qInstallMessageHandler(). + +* QTextBoundaryFinder + - [QTBUG-6498] The word start and word end boundaries detection is now + unaware of surrounding white space characters. + - SoftHyphen enum value has been added to specify a line break opportunity + at a soft hyphen (SHY) character. + - MandatoryBreak enum value has been added to specify a mandatory (aka "hard") line breaks. + - Source-incompatible change: Since the behavior of boundaryReasons() method + has been changed a lot, StartWord/EndWord enum values were intentionally replaced + with StartOfItem/EndOfItem ones to force the affected code be revised. + +* Softkeys API was removed. The following functions and enums were removed: + - QAction::setSoftKeyRole() + - QAction::softKeyRole() + - QAction::SoftKeyRole + - Qt::WA_MergeSoftkeys + - Qt::WA_MergeSoftkeysRecursively + - Qt::WindowSoftkeysVisibleHint + - Qt::WindowSoftkeysRespondHint + +* QLocale + - [QTBUG-27987] Constructing a QLocale object with the short locale id has been improved. + +* QObject + - Added overloads of connect() to connect using pointers to member function + - Added QObject::isSignalConnected() + QtGui ----- * Accessibility has been refactored. The hierachy of accessible objects is implemented via @@ -401,13 +558,45 @@ QtGui * QOpenGLPaintDevice has been added to be able to use QPainter to render into the currently bound context. +* Behavioral change in QImage::fill() on an image with format Format_RGB888: + For consistency with RGB32 and other 32-bit formats, function now expects + image data in RGB layout as opposed to BGR layout. + +* Behavioral change in QImage and QPixmap load()/loadFromData() on a non-null image: + If load() or loadFromData() fails to load the image (returns false) then + the existent image data will be invalidated, so that isNull() is guaranteed + to return true in this case. + +* Behavioral change regarding QPainter fill rules when not using antialiased + painting: The fill rules have changed so that the aliased and antialiased + coordinate systems match. Earlier there used to be an offset of slightly less + than half a pixel when doing sub-pixel rendering, in order to be consistent + with the old X11 paint engine. The new behavior should be more predictable and + gives the same consistent rounding for images / pixmaps as for paths and + rectangle filling. It's possible to still get the old behavior by setting the + QPainter::Qt4CompatiblePainting render hint. + +* Behavioral change regarding QPen: The default QPen constructors now create a + 1-width non-cosmetic pen as opposed to a 0-width cosmetic pen. The old + behavior can be emulated by setting the QPainter::Qt4CompatiblePainting + render hint when painting. + QtWidgets --------- +* A new style QFusionStyle has been introduced, while QPlastiqueStyle, QCleanlooksStyle, + QCDEStyle and QMotifStyle have been removed. The older styles will be + made available to applications as a standalone source package. + * QInputContext removed as well as related getters and setters on QWidget and QApplication. Input contexts are now platform specific. * QInputDialog::getInteger() has been obsoleted. Use QInputDialog::getInt() instead. +* In Qt 4, QStyle::standardIconImplementation() and layoutSpacingImplementation() + were introduced instead of making the corresponding methods virtual due to binary + compatibility reasons. QStyle::standardIcon() and layoutSpacing() have been made + (pure) virtual in Qt 5. + * In Qt 4, many QStyleOption subclasses were introduced in order to keep binary compatibility -- QStyleOption was designed to be extended this way, in fact it embeds a version number. In Qt 5 the various QStyleOption*V{2,3,4} @@ -418,7 +607,7 @@ QtWidgets the proper Qt API: due to the version bump, QStyle will try to use the additional QStyleOption members, which are left default-initialized. -* QHeaderView - The following functions have been obsoleted. +* QHeaderView has been refactored and the following functions have been obsoleted: * void setMovable(bool movable) - use void setSectionsMovable(bool movable) instead. @@ -434,11 +623,39 @@ QtWidgets * ResizeMode resizeMode(int logicalindex) const - use sectionResizeMode(int logicalindex) instead. + * setSortIndicator will no longer emit sortIndicatorChanged when the sort indicator is unchanged. + * QDateEdit and QTimeEdit have re-gained a USER property. These were originally removed before Qt 4.7.0, and are re-added for 5.0. This means that the userProperty for those classes are now QDate and QTime respectively, not QDateTime as they have been for the 4.7 and 4.8 releases. +* QGraphicsItem and derived classes - Passing a QGraphicsScene in the items constructor + is no longer supported. Construct the item without a scene and then call + QGraphicsScene::addItem() to add the item to the scene. + +* QAbstractItemView and derived classes only emit the clicked() signal on left click now, + instead of on all mouse clicks. + +* QProxyModel has been removed. It is deprecated since early Qt 4 versions and replaced + by QAbstractProxyModel and related classes. A copy of QProxyModel is available + in the UiHelpers library. + +* The virtual methods QApplication::commitData and QApplication::saveState, used for session + management, no longer exist. + Connect to the commitDataRequest and saveStateRequest signals instead. + The new isSessionSaving() method can be used in the cases where the closeEvent of your + window needs to know whether it is being called during shutdown. + +* [QTBUG-20503] QFileSystemModel no longer masks out write permissions from the permissions + returned from permissions() or data(FilePermissions), even if in read-only mode + (QFileSystemModel::isReadOnly()). + +* [QTBUG-158 QTBUG-428 QTBUG-26501] QComboBox::currentText improvements + Restored currentText as USER property. + New setter setCurrentText(), marked as WRITE method, usable by QItemDelegate and QDataWidgetMapper. + New signal currentTextChanged() marked as NOTIFY method. + QtNetwork --------- * QHostAddress::isLoopback() API added. Returns true if the address is @@ -459,6 +676,17 @@ QtDBus * QtDBus error codes have been updated to be on the org.qtproject.QtDBus.Error namespace. +QtConcurrent +------------ + +* QtConcurrent is no longer in QtCore, but forms its own library now. + QMake-based projects can use + QT += concurrent + to include the new library. + +* QtConcurrent::Exception has been renamed to QException, and is still in QtCore. + Ditto QtConcurrent::UnhandledException. + QtOpenGL -------- @@ -466,15 +694,66 @@ QtOpenGL now have equivalents in QtGui, along with the naming change QGL -> QOpenGL. The classes in QtOpenGL that have equivalents in QtGui can now be considered deprecated. +* QGLPixelBuffer is now deprecated and implemented in terms of a hidden + QGLWidget and a QOpenGLFramebufferObject. It is recommended that applications + using QGLPixelBuffer for offscreen rendering to a texture switch to using + QOpenGLFramebufferObject directly instead, for improved performance. +* The default major version of QGLFormat has been changed to 2 to be aligned + with QSurfaceFormat. Applications that want to use a different version should + explicitly request it using QGLFormat::setVersion(). +* void QGLContext::generateFontDisplayLists(const QFont& font, int listBase) + and int QGLWidget::fontDisplayListBase(const QFont & fnt, int listBase) + which were deprecated in Qt 4 have been removed. +* Previously deprecated default value listBase parameter has been removed from + both QGLWidget::renderText() functions. +* In order to ensure support on more platforms, stricter requirements have been + introduced for doing threaded OpenGL. First, you must call makeCurrent() at + least once per swapBuffers() call, so that the platform has a chance to + synchronize resizes to the OpenGL surface. Second, before doing makeCurrent() + or swapBuffers() in a separate thread, you must call + QGLContext::moveToThread(QThread *) to explicitly let Qt know in which thread + a QGLContext is currently being used. You also need to make sure that the + context is not current in the current thread before moving it to a different + thread. QtScript -------- - +* [QTBUG-2124] Added default conversion for long and unsigned long. +* [QTBUG-6133] Fixed QScriptContextInfo::functionMetaIndex() for overloaded + slots. +* [QTBUG-15213] Doc: Added missing properties to the ECMAScript reference. +* [QTBUG-15956] Doc: Removed wrong information about Error .stack properties. +* [QTBUG-17915] Fixed a crash when a JS property descriptor was only partially + defined. +* [QTBUG-18188] Fixed a regression that caused contexts created by + QScriptEngine::pushContext() to inherit the parent context's scope. +* [QTBUG-18201] Suppressed 'LEAK' messages on stderr at application exit. +* [QTBUG-20378] Fixed QtScriptTools compilation when some features are disabled. +* [QTBUG-20845] Fixed a precision bug in the calculator example. +* [QTBUG-21548] Fixed a crash in QScriptEngineDebugger when the QScriptEngine + being debugged was deleted. +* [QTBUG-21760] Fixed a crash when accessing QObject properties through an + activation object. +* [QTBUG-21896] Fixed a crash when converting an invalid JS value to a string. +* [QTBUG-21993] Fixed a bug that caused QObject wrapper objects created with + the PreferExistingWrapperObject option to not be garbage collected, even if + the object was not referenced anywhere in the scripting environment. +* [QTBUG-22152] Fixed build issue on Solaris. +* [QTBUG-23871] Fixed a JIT crash on x86-64 caused by out-of-range branch + instructions. +* [QTBUG-26261] Fixed a crash when a queued signal handler no longer existed. +* [QTBUG-26590] Fixed a bug that caused QObjects with script connections to + not be garbage collected as expected. QTestLib -------- * [QTBUG-20615] Autotests can now log test output to multiple destinations and log formats simultaneously. +* [QTBUG-21645] QSignalSpy now handles QVariant signal parameters more + intuitively; the QVariant value is copied directly, instead of being + wrapped inside a new QVariant. This means that calling + qvariant_cast() on the QSignalSpy item (to "unwrap" the value) + is no longer required (but still works). QtSql ----- @@ -501,8 +780,9 @@ ignore the rest of the range. removed and only if there are no other changed rows. * setRecord() and insertRecord() - -Only use fields where generated flag is set to true. This is - is consistent with the meaning of the flag. + -The generated flags from the source record are preserved in the model + and determine which fields are included when changes are applied to + the database. -Require all fields to map correctly. Previously fields that didn't map were simply ignored. -For OnManualSubmit, insertRecord() no longer leaves behind an empty @@ -517,7 +797,9 @@ subclass. and modelReset() signals suffice to inform views that they must reinterrogate the model. -* QSqlTableModel::selectRow(): This is a new method that refreshes a single +* QSqlTableModel::select() is now a slot. + +* QSqlTableModel::selectRow(): This is a new slot that refreshes a single row in the model from the database. * QSqlTableModel edit strategies OnFieldChange/OnRowChange QTBUG-2875 @@ -555,6 +837,11 @@ sqlite 'true' and 'false'. Sqlite does not have a boolean column type and it is customary to use integer. QTBUG-23895 +postgres +-------- +* the error message returned in QSqlError::text() has the SQLSTATE error code +appended in parantheses. + **************************************************************************** * Platform Specific Changes * **************************************************************************** @@ -566,7 +853,7 @@ Qt for Linux/X11 Qt for Windows -------------- * Accessibility framework uses IAccessible2 - +* ANGLE can be used to provide Open GL ES 2.0 (see http://code.google.com/p/angleproject/) Qt for Mac OS X --------------- @@ -611,7 +898,7 @@ Qt for Windows CE * [QTBUG-20785] The moc now has a -b option to #include an additional file at the beginning of the generated file. - +* moc is now able to fully understand and expands preprocessor macros. - uic @@ -637,6 +924,9 @@ Qt for Windows CE * Plugins * **************************************************************************** - The text codecs that were previously plugins are now built into QtCore. +- Code using Q_EXPORT_PLUGIN macros will no longer compile. Use + Q_PLUGIN_METADATA instead. Note that this requires that the class + be default-constructible. **************************************************************************** * Important Behavior Changes *