Merge remote-tracking branch 'origin/5.9.4' into 5.9
Change-Id: Ic23e90146470d69060313628562f76a710696bab
This commit is contained in:
commit
5ba29e1672
183
dist/changes-5.9.4
vendored
Normal file
183
dist/changes-5.9.4
vendored
Normal file
@ -0,0 +1,183 @@
|
||||
Qt 5.9.4 is a bug-fix release. It maintains both forward and backward
|
||||
compatibility (source and binary) with Qt 5.9.0 through 5.9.3.
|
||||
|
||||
For more details, refer to the online documentation included in this
|
||||
distribution. The documentation is also available online:
|
||||
|
||||
http://doc.qt.io/qt-5/index.html
|
||||
|
||||
The Qt version 5.9 series is binary compatible with the 5.8.x series.
|
||||
Applications compiled for 5.8 will continue to run with 5.9.
|
||||
|
||||
Some of the changes listed in this file include issue tracking numbers
|
||||
corresponding to tasks in the Qt Bug Tracker:
|
||||
|
||||
https://bugreports.qt.io/
|
||||
|
||||
Each of these identifiers can be entered in the bug tracker to obtain more
|
||||
information about a particular change.
|
||||
|
||||
****************************************************************************
|
||||
* Qt 5.9.4 Changes *
|
||||
****************************************************************************
|
||||
|
||||
QtCore
|
||||
------
|
||||
|
||||
- [QTBUG-64529] Fixed a compilation issue with qfloat16 if AVX2 support is
|
||||
enabled in the compiler. Since all processors that support AVX2 also
|
||||
support F16C, for GCC and Clang it is recommended to either add -mf16c
|
||||
to your build or to use the corresponding -march= switch.
|
||||
|
||||
- QCoreApplication:
|
||||
* [QTBUG-58919] Fixed a crash if QCoreApplication is recreated on Windows
|
||||
and the passed argv parameter is different.
|
||||
|
||||
- QFileInfo:
|
||||
* [QTBUG-30148] Fixed isWritable() on Windows to return whether the given
|
||||
file is writable only under current privilege levels. Previously, the
|
||||
result would take into account privilege elevation.
|
||||
|
||||
- QObject:
|
||||
* Fixed a crash that could happen if the context QObject pointer passed to
|
||||
new-style connect() was null.
|
||||
|
||||
- QStandardPaths:
|
||||
* On Windows, it is now possible to resolve configuration paths even
|
||||
without QCoreApplication created.
|
||||
|
||||
- QString:
|
||||
* QString::unicode(), constData() and `data() const` do not return a
|
||||
NUL-terminated string. This was true before, but the documentation
|
||||
claimed the opposite.
|
||||
|
||||
- QVector:
|
||||
* Fixed a problem when calling removeAll() on an element from the
|
||||
container, if the container had more than one copy of the that element.
|
||||
|
||||
- QXmlStreamWriter:
|
||||
* [QTBUG-63538] Empty namespace URIs are now possible.
|
||||
|
||||
- State Machine:
|
||||
* [QTBUG-61463] Fixed a failed assertion that could happen when emitting a
|
||||
signal from another thread.
|
||||
|
||||
QtNetwork
|
||||
---------
|
||||
|
||||
- QUdpSocket:
|
||||
* [QTBUG-64718] Fixed a regression from Qt 5.9.3 caused by an apparent
|
||||
Win32 API quirk we triggered when using readDatagram(), resulting in
|
||||
an invalid QHostAddress sender address. receiveDatagram() was not
|
||||
affected.
|
||||
|
||||
QtPrintSupport
|
||||
--------------
|
||||
|
||||
- QPrintDialog:
|
||||
* [QTBUG-63933] Properly pre-select explicitly requested printer on
|
||||
Unix.
|
||||
|
||||
QtWidgets
|
||||
---------
|
||||
|
||||
- QFileSystemModel:
|
||||
* [QTBUG-46684] It is now possible to enable per-file watching by
|
||||
setting the environment variable QT_FILESYSTEMMODEL_WATCH_FILES,
|
||||
allowing to track for example changes in file size.
|
||||
* [QTBUG-64098] Fixed column alignment issues.
|
||||
* [QTBUG-62841] Fixed assert when monitoring directories.
|
||||
|
||||
- QPixmapCache:
|
||||
* [QTBUG-65475] Changing application palette runtime will now affect
|
||||
(and invalidate) cached widget pixmaps used by the current style.
|
||||
|
||||
- QTreeView:
|
||||
* [QTBUG-57538] Fixed issue with drag and drop sometimes being inaccurate.
|
||||
* [QTBUG-63396] Fixed issue with child indicator not drawn correctly in RTL mode.
|
||||
* [QTBUG-63869] Fixed key navigation issue when using hidden items.
|
||||
* [QTBUG-8376] Fixed row heights being wrong because of hidden columns.
|
||||
|
||||
- QTableView:
|
||||
* [QTBUG-60219] Fixed grid lines being drawn outside header.
|
||||
|
||||
- QHeaderView:
|
||||
* [QTBUG-53221] Fixed assert in QHeaderView because of layout changes.
|
||||
* [QTBUG-65017] Fixed a font issue when using drag and drop.
|
||||
* [QTBUG-56520] Fixed drawing issues in RTL mode.
|
||||
* [QTBUG-41124] [QTBUG-54610] Fixed update issues.
|
||||
|
||||
- QWidget:
|
||||
* [QTBUG-61213] Fixed crash related to the usage of Qt::WA_WindowPropagation.
|
||||
|
||||
- QPlainTextEdit:
|
||||
* [QTBUG-62818] Fixed QPlainTextedit hanging because of scrollbar usage.
|
||||
|
||||
- QMenu:
|
||||
* [QTBUG-63576] Fixed HiDPI issue in QFusionStyle for QCheckBoxes in QMenus.
|
||||
* [QTBUG-59794] Fixed HiDPI issue in QMenu when using several screens.
|
||||
|
||||
- QMenuItem:
|
||||
* [QTBUG-64055] Fixed drawing issue when setting a font style.
|
||||
|
||||
- QAbstractButton:
|
||||
* [QTBUG-53244] Fixed issue with released signal not being emmited when using
|
||||
several mouse buttons at the same time.
|
||||
|
||||
- QGraphicsEffect:
|
||||
* [QTBUG-60231] Fixed crash when using child widgets with graphic effects.
|
||||
|
||||
Third-Party Code
|
||||
----------------
|
||||
|
||||
- [QTBUG-65138] Fixed glitch in attribution documentation for Freetype
|
||||
licenses / Qt Gui.
|
||||
|
||||
Platform Specific Changes
|
||||
-------------------------
|
||||
|
||||
- eglfs:
|
||||
* [QTBUG-65119] Fixed crash when using cursors and multiple GL contexts.
|
||||
|
||||
- iOS/tvOS:
|
||||
* Qt will now take the safe area margins of the device into account when
|
||||
computing layouts for QtWidgets.
|
||||
|
||||
- macOS:
|
||||
* [QTBUG-57487][QTBUG-54160] If you have changed the button mapping of
|
||||
your Wacom tablet in System Preferences, it will be respected by Qt
|
||||
applications now. To revert to the old behavior, set the environment
|
||||
variable QT_MAC_TABLET_IGNORE_BUTTON_MAPPING.
|
||||
|
||||
- macOS/iOS:
|
||||
* [QTBUG-63476] Fixed an issue where text using one of the system theme
|
||||
fonts would under certain circumstances display random glyphs.
|
||||
|
||||
- INTEGRITY:
|
||||
* Added mkspec for INTEGRITY Qualcomm s820 MSM8996AU
|
||||
|
||||
- QNX:
|
||||
* [QTBUG-64033] Fixed a build issue when using slog2 in QNX7.
|
||||
|
||||
- X11 / XCB:
|
||||
* [QTBUG-62224] Minimal libXi version requirement has been updated from
|
||||
1.7.4 to 1.7.5. This is because XIAllowTouchEvents is known to
|
||||
deadlock with libXi 1.7.4 and earlier. When touch events are never
|
||||
received, this is not an issue. Plain mouse / keyboard systems are not
|
||||
affected.
|
||||
|
||||
configure & build system
|
||||
------------------------
|
||||
|
||||
- [QTBUG-61431][QTBUG-62521] Fixed processing of *_LIBS_{DEBUG|RELEASE}=
|
||||
configure command line arguments.
|
||||
- [QTBUG-63452] Fixed bogus complaints about DUMMY platform when
|
||||
re-configuring a build on a different day than initially configuring it.
|
||||
- Fixed logic errors in the conditions of various Qt features.
|
||||
|
||||
qmake
|
||||
-----
|
||||
|
||||
- [QTBUG-41246][QTBUG-50896][Xcode] It is now possible to enable generation
|
||||
of dSYM debug symbols for release builds.
|
||||
- [iOS] Fixed compilation of asset catalogs for a generic simulator.
|
@ -32,7 +32,7 @@ It allows browsers to, for example:
|
||||
supported by Qt (by the QNetworkCookieJar class).",
|
||||
|
||||
"Homepage": "http://publicsuffix.org/",
|
||||
"Version": "Generated on 2016-10-20 from revision 915565885d0fbd25caf7d8b339cd3478f558da94",
|
||||
"Version": "Generated on 2018-01-04",
|
||||
"License": "Mozilla Public License 2.0",
|
||||
"LicenseFile": "PSL-LICENSE.txt",
|
||||
"LicenseId": "MPL-2.0",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1778,7 +1778,10 @@ QFixed QFontEngineFT::scaledBitmapMetrics(QFixed m) const
|
||||
|
||||
glyph_metrics_t QFontEngineFT::scaledBitmapMetrics(const glyph_metrics_t &m, const QTransform &t) const
|
||||
{
|
||||
QTransform trans(t);
|
||||
QTransform trans;
|
||||
trans.setMatrix(t.m11(), t.m12(), t.m13(),
|
||||
t.m21(), t.m22(), t.m23(),
|
||||
0, 0, t.m33());
|
||||
const qreal scaleFactor = scalableBitmapScaleFactor.toReal();
|
||||
trans.scale(scaleFactor, scaleFactor);
|
||||
|
||||
|
@ -83,23 +83,11 @@
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
/*
|
||||
Cocoa Application Categories
|
||||
*/
|
||||
#include "qglobal.h"
|
||||
#include "private/qcore_mac_p.h"
|
||||
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
@class QT_MANGLE_NAMESPACE(QCocoaMenuLoader);
|
||||
|
||||
@interface NSApplication (QT_MANGLE_NAMESPACE(QApplicationIntegration))
|
||||
- (void)QT_MANGLE_NAMESPACE(qt_setDockMenu):(NSMenu *)newMenu;
|
||||
- (int)QT_MANGLE_NAMESPACE(qt_validModesForFontPanel):(NSFontPanel *)fontPanel;
|
||||
|
||||
- (void)QT_MANGLE_NAMESPACE(qt_sendPostedMessage):(NSEvent *)event;
|
||||
- (BOOL)QT_MANGLE_NAMESPACE(qt_filterEvent):(NSEvent *)event;
|
||||
@end
|
||||
|
||||
@interface QT_MANGLE_NAMESPACE(QNSApplication) : NSApplication {
|
||||
}
|
||||
|
@ -82,25 +82,7 @@
|
||||
|
||||
QT_USE_NAMESPACE
|
||||
|
||||
@implementation NSApplication (QT_MANGLE_NAMESPACE(QApplicationIntegration))
|
||||
|
||||
- (void)QT_MANGLE_NAMESPACE(qt_setDockMenu):(NSMenu *)newMenu
|
||||
{
|
||||
[[QT_MANGLE_NAMESPACE(QCocoaApplicationDelegate) sharedDelegate] setDockMenu:newMenu];
|
||||
}
|
||||
|
||||
- (int)QT_MANGLE_NAMESPACE(qt_validModesForFontPanel):(NSFontPanel *)fontPanel
|
||||
{
|
||||
Q_UNUSED(fontPanel);
|
||||
// only display those things that QFont can handle
|
||||
return NSFontPanelFaceModeMask
|
||||
| NSFontPanelSizeModeMask
|
||||
| NSFontPanelCollectionModeMask
|
||||
| NSFontPanelUnderlineEffectModeMask
|
||||
| NSFontPanelStrikethroughEffectModeMask;
|
||||
}
|
||||
|
||||
- (void)QT_MANGLE_NAMESPACE(qt_sendPostedMessage):(NSEvent *)event
|
||||
static void qt_sendPostedMessage(NSEvent *event)
|
||||
{
|
||||
// WARNING: data1 and data2 is truncated to from 64-bit to 32-bit on OS 10.5!
|
||||
// That is why we need to split the address in two parts:
|
||||
@ -128,7 +110,7 @@ QT_USE_NAMESPACE
|
||||
|
||||
static const QByteArray q_macLocalEventType = QByteArrayLiteral("mac_generic_NSEvent");
|
||||
|
||||
- (BOOL)QT_MANGLE_NAMESPACE(qt_filterEvent):(NSEvent *)event
|
||||
static bool qt_filterEvent(NSEvent *event)
|
||||
{
|
||||
if (qApp && qApp->eventDispatcher()->
|
||||
filterNativeEvent(q_macLocalEventType, static_cast<void*>(event), 0))
|
||||
@ -137,7 +119,7 @@ static const QByteArray q_macLocalEventType = QByteArrayLiteral("mac_generic_NSE
|
||||
if ([event type] == NSApplicationDefined) {
|
||||
switch (static_cast<short>([event subtype])) {
|
||||
case QtCocoaEventSubTypePostMessage:
|
||||
[NSApp QT_MANGLE_NAMESPACE(qt_sendPostedMessage):event];
|
||||
qt_sendPostedMessage(event);
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
@ -147,8 +129,6 @@ static const QByteArray q_macLocalEventType = QByteArrayLiteral("mac_generic_NSE
|
||||
return false;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
static void qt_maybeSendKeyEquivalentUpEvent(NSEvent *event)
|
||||
{
|
||||
// Cocoa is known for not sending key up events for key
|
||||
@ -180,7 +160,7 @@ static void qt_maybeSendKeyEquivalentUpEvent(NSEvent *event)
|
||||
// be called instead of sendEvent if redirection occurs.
|
||||
// 'self' will then be an instance of NSApplication
|
||||
// (and not QNSApplication)
|
||||
if (![NSApp QT_MANGLE_NAMESPACE(qt_filterEvent):event]) {
|
||||
if (!qt_filterEvent(event)) {
|
||||
[self QT_MANGLE_NAMESPACE(qt_sendEvent_original):event];
|
||||
qt_maybeSendKeyEquivalentUpEvent(event);
|
||||
}
|
||||
@ -190,7 +170,7 @@ static void qt_maybeSendKeyEquivalentUpEvent(NSEvent *event)
|
||||
{
|
||||
// This method will be called if
|
||||
// no redirection occurs
|
||||
if (![NSApp QT_MANGLE_NAMESPACE(qt_filterEvent):event]) {
|
||||
if (!qt_filterEvent(event)) {
|
||||
[super sendEvent:event];
|
||||
qt_maybeSendKeyEquivalentUpEvent(event);
|
||||
}
|
||||
|
@ -49,7 +49,7 @@
|
||||
|
||||
QT_USE_NAMESPACE
|
||||
|
||||
@interface QT_MANGLE_NAMESPACE(QNSColorPanelDelegate) : NSObject<NSWindowDelegate, QT_MANGLE_NAMESPACE(QNSPanelDelegate)>
|
||||
@interface QT_MANGLE_NAMESPACE(QNSColorPanelDelegate) : NSObject<NSWindowDelegate, QNSPanelDelegate>
|
||||
{
|
||||
@public
|
||||
NSColorPanel *mColorPanel;
|
||||
|
@ -75,7 +75,7 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
|
||||
|
||||
@class QT_MANGLE_NAMESPACE(QNSFontPanelDelegate);
|
||||
|
||||
@interface QT_MANGLE_NAMESPACE(QNSFontPanelDelegate) : NSObject<NSWindowDelegate, QT_MANGLE_NAMESPACE(QNSPanelDelegate)>
|
||||
@interface QT_MANGLE_NAMESPACE(QNSFontPanelDelegate) : NSObject<NSWindowDelegate, QNSPanelDelegate>
|
||||
{
|
||||
@public
|
||||
NSFontPanel *mFontPanel;
|
||||
|
@ -161,7 +161,10 @@ T qt_mac_resolveOption(const T &fallback, QWindow *window, const QByteArray &pro
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
@protocol QT_MANGLE_NAMESPACE(QNSPanelDelegate)
|
||||
// @compatibility_alias doesn't work with protocols
|
||||
#define QNSPanelDelegate QT_MANGLE_NAMESPACE(QNSPanelDelegate)
|
||||
|
||||
@protocol QNSPanelDelegate
|
||||
@required
|
||||
- (void)onOkClicked;
|
||||
- (void)onCancelClicked;
|
||||
@ -179,7 +182,7 @@ QT_END_NAMESPACE
|
||||
@property (nonatomic, readonly) NSView *panelContents; // ARC: unretained, make it weak
|
||||
@property (nonatomic, assign) NSEdgeInsets panelContentsMargins;
|
||||
|
||||
- (instancetype)initWithPanelDelegate:(id<QT_MANGLE_NAMESPACE(QNSPanelDelegate)>)panelDelegate;
|
||||
- (instancetype)initWithPanelDelegate:(id<QNSPanelDelegate>)panelDelegate;
|
||||
- (void)dealloc;
|
||||
|
||||
- (NSButton *)createButtonWithTitle:(const char *)title;
|
||||
|
@ -308,7 +308,7 @@ QT_END_NAMESPACE
|
||||
@synthesize panelContents = _panelContents;
|
||||
@synthesize panelContentsMargins = _panelContentsMargins;
|
||||
|
||||
- (instancetype)initWithPanelDelegate:(id<QT_MANGLE_NAMESPACE(QNSPanelDelegate)>)panelDelegate
|
||||
- (instancetype)initWithPanelDelegate:(id<QNSPanelDelegate>)panelDelegate
|
||||
{
|
||||
if ((self = [super initWithFrame:NSZeroRect])) {
|
||||
// create OK and Cancel buttons and add these as subviews
|
||||
|
@ -42,7 +42,7 @@
|
||||
#include "qcocoamenu.h"
|
||||
#include "qcocoamenubar.h"
|
||||
#include "qcocoahelpers.h"
|
||||
#include "qcocoaapplication.h"
|
||||
#include "qcocoaapplicationdelegate.h"
|
||||
#include "qcocoaintegration.h"
|
||||
#include "qcocoaeventdispatcher.h"
|
||||
|
||||
@ -256,7 +256,7 @@ void QCocoaNativeInterface::setDockMenu(QPlatformMenu *platformMenu)
|
||||
QMacAutoReleasePool pool;
|
||||
QCocoaMenu *cocoaPlatformMenu = static_cast<QCocoaMenu *>(platformMenu);
|
||||
NSMenu *menu = cocoaPlatformMenu->nsMenu();
|
||||
[NSApp QT_MANGLE_NAMESPACE(qt_setDockMenu): menu];
|
||||
[[QCocoaApplicationDelegate sharedDelegate] setDockMenu:menu];
|
||||
}
|
||||
|
||||
void *QCocoaNativeInterface::qMenuToNSMenu(QPlatformMenu *platformMenu)
|
||||
|
@ -289,9 +289,6 @@ void QCocoaSystemTrayIcon::showMessage(const QString &title, const QString &mess
|
||||
}
|
||||
QT_END_NAMESPACE
|
||||
|
||||
@implementation NSStatusItem (Qt)
|
||||
@end
|
||||
|
||||
@implementation QNSImageView
|
||||
-(id)initWithParent:(QNSStatusItem*)myParent {
|
||||
self = [super init];
|
||||
|
@ -56,6 +56,9 @@ QT_FORWARD_DECLARE_CLASS(QCocoaWindow)
|
||||
|
||||
@class QT_MANGLE_NAMESPACE(QNSWindowHelper);
|
||||
|
||||
// @compatibility_alias doesn't work with protocols
|
||||
#define QNSWindowProtocol QT_MANGLE_NAMESPACE(QNSWindowProtocol)
|
||||
|
||||
@protocol QNSWindowProtocol
|
||||
|
||||
@property (nonatomic, readonly) QT_MANGLE_NAMESPACE(QNSWindowHelper) *helper;
|
||||
|
@ -89,6 +89,11 @@ static void qt_closePopups()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// @compatibility_alias doesn't work with categories or their methods
|
||||
#define FullScreenProperty QT_MANGLE_NAMESPACE(FullScreenProperty)
|
||||
#define qt_fullScreen QT_MANGLE_NAMESPACE(qt_fullScreen)
|
||||
|
||||
@interface NSWindow (FullScreenProperty)
|
||||
@property(readonly) BOOL qt_fullScreen;
|
||||
@end
|
||||
|
@ -237,6 +237,9 @@ void QTreeView::setModel(QAbstractItemModel *model)
|
||||
// QAbstractItemView connects to a private slot
|
||||
disconnect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
|
||||
this, SLOT(_q_rowsRemoved(QModelIndex,int,int)));
|
||||
// do header layout after the tree
|
||||
disconnect(d->model, SIGNAL(layoutChanged()),
|
||||
d->header, SLOT(_q_layoutChanged()));
|
||||
// QTreeView has a public slot for this
|
||||
connect(d->model, SIGNAL(rowsRemoved(QModelIndex,int,int)),
|
||||
this, SLOT(rowsRemoved(QModelIndex,int,int)));
|
||||
|
@ -313,17 +313,6 @@ public:
|
||||
endRemoveColumns();
|
||||
}
|
||||
|
||||
void removeAddLastColumnLayoutChanged() // for taskQTBUG_41124
|
||||
{
|
||||
// make sure QHeaderView::_q_layoutChanged() is called
|
||||
emit layoutAboutToBeChanged();
|
||||
--cols;
|
||||
emit layoutChanged();
|
||||
emit layoutAboutToBeChanged();
|
||||
++cols;
|
||||
emit layoutChanged();
|
||||
}
|
||||
|
||||
void removeAllColumns()
|
||||
{
|
||||
beginRemoveColumns(QModelIndex(), 0, cols - 1);
|
||||
@ -1317,19 +1306,6 @@ void tst_QTreeView::columnHidden()
|
||||
for (int c = 0; c < model.columnCount(); ++c)
|
||||
QCOMPARE(view.isColumnHidden(c), true);
|
||||
view.update();
|
||||
|
||||
// QTBUG_41124:
|
||||
// QHeaderViewPrivate::_q_layoutChanged was not called because it was
|
||||
// disconnected in QTreeView::setModel(). _q_layoutChanged restores
|
||||
// the hidden sections which is tested here
|
||||
view.setColumnHidden(model.cols - 1, true);
|
||||
model.removeAddLastColumnLayoutChanged();
|
||||
// we removed the last column and added a new one
|
||||
// (with layoutToBeChanged/layoutChanged() for both) so column
|
||||
// 1 is a new column and therefore must not be hidden when
|
||||
// _q_layoutChanged() is called and is doing the right stuff
|
||||
QCOMPARE(view.isColumnHidden(model.cols - 1), false);
|
||||
|
||||
}
|
||||
|
||||
void tst_QTreeView::rowHidden()
|
||||
|
Loading…
x
Reference in New Issue
Block a user