diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-04-11 12:20:40 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-04-11 12:20:41 +0200 |
commit | f2095f2c66d0dae8525879f6c14165ace650e7f1 (patch) | |
tree | 041a058747623112a9a7365403dd008b72b80b6f | |
parent | b50b654ba4c1c2a59ae80420ed77e09d1080707b (diff) | |
parent | f4c2fcc052e5c27e8765e68216f02e1e1915e5bc (diff) |
Merge remote-tracking branch 'origin/5.9.5' into 5.9
Change-Id: Iee7af16c3e26dc7d7f594ebd3876370ac83a1bc8
-rw-r--r-- | dist/changes-5.9.5 | 122 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 4 | ||||
-rw-r--r-- | src/widgets/styles/qfusionstyle.cpp | 8 | ||||
-rw-r--r-- | src/widgets/widgets/qlabel.cpp | 2 | ||||
-rw-r--r-- | tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp | 21 |
5 files changed, 130 insertions, 27 deletions
diff --git a/dist/changes-5.9.5 b/dist/changes-5.9.5 new file mode 100644 index 0000000000..a71b09bf90 --- /dev/null +++ b/dist/changes-5.9.5 @@ -0,0 +1,122 @@ +Qt 5.9.5 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.9.0 through 5.9.4. + +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.5 Changes * +**************************************************************************** + +QtCore +------ + + - QDateTime and QLocale: + * [QTBUG-66076] Fixed a crash if the date/time parsed with Qt::ISODate and + Qt::ISODateWithMS had a 'T' for the time, but no actual time. + + - QObject: + * [QTBUG-65712] Improved performance of QObject::deleteLater. + + - QPluginLoader: + * [QTBUG-65197] Fixed a bug that would cause the Qt plugin scanning + system to allocate too much memory and possibly crash the process. + + - QStandardPaths: + * [QTBUG-65687] Fixed a memory leak with displayName() on Apple platforms. + * [QTBUG-65820] Fixed QStandardPaths::AppDataLocation on Android. + +QtGui +----- + + - Text: + * [QTBUG-61882] Fixed a bug where mixing different writing systems with + emojis could lead to missing glyphs. + * [QTBUG-65519] Fixed ZWJ and ZWNJ control characters when fallback + fonts are in use. + +QtWidgets +--------- + + - QTreeView: + * [QTBUG-65980] Fixed missing update of QTreeView on changing tree + position. + + - QLabel: + * [QTBUG-66841] Fixed crash related to deleted buddy. + + - QHeaderView: + * [QTBUG-65478] Fixed crash that could happen during layout. + * [QTBUG-66444][QTBUG-65478][QTBUG-65478] Fixed section resize settings + getting lost after layouting. + * [QTBUG-66413][QTBUG-65478] Fixed hidden section issues during layout. + * [QTBUG-65478] Fixed section restore issues after a layout change. + + - QFusionStyle: + * [QTBUG-66343] Fixed checkbox rendering regression in low DPI settings. + + - QComboBox: + * [QTBUG-55251] Fixed context menu opening up at the wrong location. + + - QFileDialog: + * Fixed regression when using QFileDialog::getOpenFileUrl() using + remote URLs. + + - QWidget: + * [QTBUG-65783] Fixed crash when platform window creation fails. + +Third-Party Code +---------------- + + - Documented use of "Unicode Character Database (UCD)" in Qt Core. + - Clarified use of "Unicode Common Local Data Repository (CLDR)" in the + documentation. Also updated SPDX license name / ID. + +Platform-specific changes +------------------------- + + - Android: + * [QTBUG-65863] Fixed the detection of which thread is the main thread on + Android. + + - Windows: + * Named pipes internally created by QProcess now contain the PID in their + name to ensure uniqueness. + + - winrt: + * -qdevel and -qdebug are removed from the command line arguments and + not passed to the application. + +**************************************************************************** +* Tools * +**************************************************************************** + +configure & build system +------------------------ + + - [QTBUG-65753] Fixed installation of example sources for qrc/rc files. + - [Windows] cl.exe is now preferred over clang-cl.exe again. + +qmake +----- + + - [QTBUG-50839][Windows] Paths starting with a (back-)slash but without + a drive letter are not considered absolute any more. + - [QTBUG-63637][MinGW] Fixed cross-compilation from Linux. + - [QTBUG-65106] Fixed complaints about missing modules in $$QT after the + project has already failed requires() (or REQUIRES=). + - [QTBUG-65477][Darwin] Bundle identifiers are now properly escaped. + - [Windows] Fixed 'make check' for executables in subdirectories. diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 1fea3836ec..0298359389 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -5520,11 +5520,11 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP setSystemClip(pdev, rgn.translated(offset)); QPainter p(pdev); p.translate(offset); - context.painter = context.sharedPainter = &p; + context.painter = &p; graphicsEffect->draw(&p); setSystemClip(pdev, QRegion()); } else { - context.painter = context.sharedPainter = sharedPainter; + context.painter = sharedPainter; if (sharedPainter->worldTransform() != sourced->lastEffectTransform) { sourced->invalidateCache(); sourced->lastEffectTransform = sharedPainter->worldTransform(); diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index 82228af4c6..4ccca93e01 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -801,8 +801,8 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem, } else if (checkbox->state & State_On) { qreal penWidth = QStyleHelper::dpiScaled(1.5); - penWidth = qMax(penWidth , 0.13 * rect.height()); - penWidth = qMin(penWidth , 0.20 * rect.height()); + penWidth = qMax<qreal>(penWidth, 0.13 * rect.height()); + penWidth = qMin<qreal>(penWidth, 0.20 * rect.height()); QPen checkPen = QPen(checkMarkColor, penWidth); checkMarkColor.setAlpha(210); painter->translate(dpiScaled(-0.8), dpiScaled(0.5)); @@ -1584,8 +1584,8 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio bool ignoreCheckMark = false; const int checkColHOffset = windowsItemHMargin + windowsItemFrame - 1; - int checkcol = qMax(menuItem->rect.height() * 0.79, - qMax(menuItem->maxIconWidth * 1.0, dpiScaled(21))); // icon checkbox's highlihgt column width + int checkcol = qMax<int>(menuItem->rect.height() * 0.79, + qMax<int>(menuItem->maxIconWidth, dpiScaled(21))); // icon checkbox's highlight column width if ( #if QT_CONFIG(combobox) qobject_cast<const QComboBox*>(widget) || diff --git a/src/widgets/widgets/qlabel.cpp b/src/widgets/widgets/qlabel.cpp index e3225800cc..46afac700a 100644 --- a/src/widgets/widgets/qlabel.cpp +++ b/src/widgets/widgets/qlabel.cpp @@ -964,6 +964,8 @@ bool QLabel::event(QEvent *e) QShortcutEvent *se = static_cast<QShortcutEvent *>(e); if (se->shortcutId() == d->shortcutId) { QWidget * w = d->buddy; + if (!w) + return QFrame::event(e); if (w->focusPolicy() != Qt::NoFocus) w->setFocus(Qt::ShortcutFocusReason); #if QT_CONFIG(abstractbutton) diff --git a/tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp b/tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp index dfe5baba71..a1cb729849 100644 --- a/tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp +++ b/tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp @@ -52,7 +52,6 @@ private slots: void boundingRect2(); void draw(); void opacity(); - void nestedOpaqueOpacity(); void grayscale(); void colorize(); void drawPixmapItem(); @@ -408,26 +407,6 @@ void tst_QGraphicsEffect::opacity() QCOMPARE(effect->m_opacity, qreal(0.5)); } -void tst_QGraphicsEffect::nestedOpaqueOpacity() -{ - // QTBUG-60231: Nesting widgets with a QGraphicsEffect on a toplevel with - // QGraphicsOpacityEffect caused crashes due to constructing several - // QPainter instances on a device in the fast path for - // QGraphicsOpacityEffect::opacity=1 - QWidget topLevel; - topLevel.setWindowTitle(QTest::currentTestFunction()); - topLevel.resize(320, 200); - QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect; - opacityEffect->setOpacity(1); - topLevel.setGraphicsEffect(opacityEffect); - QWidget *child = new QWidget(&topLevel); - child->resize(topLevel.size() / 2); - QGraphicsDropShadowEffect *childEffect = new QGraphicsDropShadowEffect; - child->setGraphicsEffect(childEffect); - topLevel.show(); - QVERIFY(QTest::qWaitForWindowExposed(&topLevel)); -} - void tst_QGraphicsEffect::grayscale() { if (qApp->desktop()->depth() < 24) |