Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev

This commit is contained in:
Qt Forward Merge Bot 2018-12-11 00:00:32 +00:00 committed by The Qt Project
commit c18c63033e
13 changed files with 147 additions and 30 deletions

94
dist/changes-5.11.3 vendored Normal file
View File

@ -0,0 +1,94 @@
Qt 5.11.3 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.11.0 through 5.11.2.
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.11 series is binary compatible with the 5.10.x series.
Applications compiled for 5.10 will continue to run with 5.11.
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.
****************************************************************************
* Third-Party Components *
****************************************************************************
- libpng was updated to version 1.6.35
- PCRE2 was updated to version 10.32.
- Added documentation for the SLJIT part of pcre2, which is available
under the BSD-2-Clause license.
****************************************************************************
* Documentation *
****************************************************************************
- Fixed the icons for the "file save" action that were inaccurate
representations of a 3.5-inch floppy disk (the cut edge was on the wrong
side). Now all floppy representations are physically accurate.
****************************************************************************
* QtCore *
****************************************************************************
- QCommandLineParser:
* [QTBUG-70174] Fixed a bug that caused the help output to show two
options or more in the same line if the options didn't have a
description.
- QDateTime:
* [QTBUG-70823] Fixed parsing of date/time strings when the day is the
start of daylight savings and that starts at midnight on the
timezone.
- QPluginLoader:
* [QTBUG-70560] Fixed a bug in parsing certain plugins, which might
conclude a valid plugin wasn't valid.
- QPointer:
* [QTBUG-71412] Fixed a race condition that would cause an assertion
failure when two threads created a QPointer for the same QObject.
- QUrl:
* Fixed a bug that caused QUrl::matches to incorrectly compare two URLs
with different hostnames or different usernames as equal, if certain
QUrl::RemoveXxx options were passed.
* [QTBUG-70386][QTBUG-70852] Updated the public DNS suffix list.
****************************************************************************
* QtGui *
****************************************************************************
- QPicture:
* [QTBUG-71208] Fix crash reading malformed picture file
****************************************************************************
* QtNetwork *
****************************************************************************
- SSL:
* [QTBUG-68156] OpenSSL >= 1.0 is now required to build Qt with OpenSSL
support.
****************************************************************************
* Linux *
****************************************************************************
- Fixed a number of incompatibilities with Linux C libraries due to use of
new kernel system calls statx(2) and renameat2(2). In order to enable
them now in Qt, they need to be provided in the C library's own
headers. Currently, glibc 2.28 contains them.
****************************************************************************
* macOS *
****************************************************************************
- Offline renderers will be disabled when the application is
using Qt WebEngine and running on one of the late 2013 Mac Pro models.

View File

@ -5,5 +5,6 @@ SUBDIRS = \
ipc \
mimetypes \
serialization \
threads \
tools
qtConfig(thread): SUBDIRS += threads

View File

@ -73,17 +73,14 @@ for(resource, RESOURCES) {
}
!isEmpty(RESOURCES):contains(TEMPLATE, .*lib):plugin:static {
pluginName = $$lower($$replace(_PRO_FILE_, .*/([^/.]+)\\.[^/.]+, \\1))
resource_init_function = $${pluginName}_plugin_resource_init
resource_init_function = $$lower($$basename(TARGET))_plugin_resource_init
DEFINES += "QT_PLUGIN_RESOURCE_INIT_FUNCTION=$$resource_init_function"
RESOURCE_INIT_CPP = $$OUT_PWD/$${pluginName}_plugin_resources.cpp
RESOURCE_INIT_CPP = $$OUT_PWD/$$lower($$basename(TARGET))_plugin_resources.cpp
GENERATED_SOURCES += $$RESOURCE_INIT_CPP
QMAKE_DISTCLEAN += $$RESOURCE_INIT_CPP
!build_pass {
isEmpty(BUILDS)|build_pass {
RESOURCE_INIT_CONT = \
"// This file is autogenerated by qmake. It contains a function that" \
"// references all resources the plugin includes and the function is" \

View File

@ -553,12 +553,13 @@ void NmakeMakefileGenerator::writeImplicitRulesPart(QTextStream &t)
QDirIterator dit(sourceDir, sourceFilesFilter, QDir::Files | QDir::NoDotAndDotDot);
while (dit.hasNext()) {
dit.next();
QString &duplicate = fileNames[dit.fileName()];
const QFileInfo fi = dit.fileInfo();
QString &duplicate = fileNames[fi.completeBaseName()];
if (duplicate.isNull()) {
duplicate = dit.filePath();
duplicate = fi.filePath();
} else {
warn_msg(WarnLogic, "%s conflicts with %s", qPrintable(duplicate),
qPrintable(dit.filePath()));
qPrintable(fi.filePath()));
duplicatesFound = true;
}
}

View File

@ -48,7 +48,7 @@
#include <errno.h>
#if !QT_CONFIG(getentropy) && !defined(Q_OS_BSD4) && !defined(Q_OS_WIN)
#if !QT_CONFIG(getentropy) && (!defined(Q_OS_BSD4) || defined(__GLIBC__)) && !defined(Q_OS_WIN)
# include "qdeadlinetimer.h"
# include "qhashfunctions.h"
@ -259,7 +259,7 @@ static void fallback_fill(quint32 *, qsizetype) Q_DECL_NOTHROW
// no fallback necessary, getentropy cannot fail under normal circumstances
Q_UNREACHABLE();
}
#elif defined(Q_OS_BSD4)
#elif defined(Q_OS_BSD4) && !defined(__GLIBC__)
static void fallback_update_seed(unsigned) {}
static void fallback_fill(quint32 *ptr, qsizetype left) Q_DECL_NOTHROW
{

View File

@ -214,7 +214,7 @@ private:
};
class Q_AUTOTEST_EXPORT QFontCache : public QObject
class Q_GUI_EXPORT QFontCache : public QObject
{
public:
// note: these static functions work on a per-thread basis

View File

@ -866,7 +866,7 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
// reason, we will search a few common paths (see findAllLibSsl() above) in hopes
// we find one that works.
//
// If that fails, for OpenSSL 1.0 we also try a fallback -- just look up
// If that fails, for OpenSSL 1.0 we also try some fallbacks -- look up
// libssl.so with a hardcoded soname. The reason is QTBUG-68156: the binary
// builds of Qt happen (at the time of this writing) on RHEL machines,
// which change SHLIB_VERSION_NUMBER to a non-portable string. When running
@ -899,15 +899,24 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl()
}
#if !QT_CONFIG(opensslv11)
// first-and-half attempt: for OpenSSL 1.0 try to load an hardcoded soname.
libssl->setFileNameAndVersion(QLatin1String("ssl"), QLatin1String("1.0.0"));
libcrypto->setFileNameAndVersion(QLatin1String("crypto"), QLatin1String("1.0.0"));
// first-and-half attempts: for OpenSSL 1.0 try to load some hardcoded sonames:
// - "1.0.0" is the official upstream one
// - "1.0.2" is found on some distributions (e.g. Debian) that patch OpenSSL
static const QLatin1String fallbackSonames[] = {
QLatin1String("1.0.0"),
QLatin1String("1.0.2")
};
for (auto fallbackSoname : fallbackSonames) {
libssl->setFileNameAndVersion(QLatin1String("ssl"), fallbackSoname);
libcrypto->setFileNameAndVersion(QLatin1String("crypto"), fallbackSoname);
if (libcrypto->load() && libssl->load()) {
return pair;
} else {
libssl->unload();
libcrypto->unload();
}
}
#endif
#endif

View File

@ -53,11 +53,13 @@
#include "qcocoahelpers.h"
#include <QtCore/qfileinfo.h>
#include <QtGui/private/qfont_p.h>
#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/private/qcoregraphics_p.h>
#include <QtGui/qpainter.h>
#include <QtGui/qtextformat.h>
#include <QtFontDatabaseSupport/private/qcoretextfontdatabase_p.h>
#include <QtFontDatabaseSupport/private/qfontengine_coretext_p.h>
#include <QtThemeSupport/private/qabstractfileiconengine_p.h>
#include <qpa/qplatformdialoghelper.h>
#include <qpa/qplatformintegration.h>
@ -162,6 +164,11 @@ void QCocoaTheme::handleSystemThemeChange()
m_systemPalette = qt_mac_createSystemPalette();
m_palettes = qt_mac_createRolePalettes();
if (QCoreTextFontEngine::fontSmoothing() == QCoreTextFontEngine::FontSmoothing::Grayscale) {
// Re-populate glyph caches based on the new appearance's assumed text fill color
QFontCache::instance()->clear();
}
QWindowSystemInterface::handleThemeChange(nullptr);
}

View File

@ -46,7 +46,7 @@ haiku {
SUBDIRS += haiku
}
wasm: SUBDIRS = wasm
wasm: SUBDIRS += wasm
qtConfig(mirclient): SUBDIRS += mirclient

View File

@ -382,13 +382,21 @@ bool QWindowsSystemTrayIcon::winEvent(const MSG &message, long *result)
emit activated(DoubleClick); // release we must ignore it
break;
case WM_CONTEXTMENU: {
// QTBUG-67966: Coordinates may be out of any screen in PROCESS_DPI_UNAWARE mode
// since hi-res coordinates are delivered in this case (Windows issue).
// Default to primary screen with check to prevent a crash.
const QPoint globalPos = QPoint(GET_X_LPARAM(message.wParam), GET_Y_LPARAM(message.wParam));
const QPlatformScreen *screen = QWindowsContext::instance()->screenManager().screenAtDp(globalPos);
const auto &screenManager = QWindowsContext::instance()->screenManager();
const QPlatformScreen *screen = screenManager.screenAtDp(globalPos);
if (!screen)
screen = screenManager.screens().value(0);
if (screen) {
emit contextMenuRequested(globalPos, screen);
emit activated(Context);
if (m_menu)
m_menu->trackPopupMenu(message.hwnd, globalPos.x(), globalPos.y());
}
}
break;
case NIN_BALLOONUSERCLICK:
emit messageClicked();

View File

@ -756,6 +756,7 @@ void QOpenGLWidgetPrivate::recreateFbo()
fbo->bind();
context->functions()->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
flushPending = true; // Make sure the FBO is initialized before use
paintDevice->setSize(deviceSize);
paintDevice->setDevicePixelRatio(q->devicePixelRatioF());

View File

@ -725,7 +725,6 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem,
// Draw Outline
painter->setPen( QPen(hasFocus ? highlightedOutline : outline));
painter->setBrush(option->palette.base());
painter->drawRoundedRect(r.adjusted(0, 0, -1, -1), 2, 2);
if (hasFocus) {

View File

@ -553,7 +553,7 @@ void QDateTimeEdit::setMaximumTime(const QTime &max)
{
Q_D(QDateTimeEdit);
if (max.isValid()) {
const QDateTime m(d->maximum.toDate(), max);
const QDateTime m(d->maximum.toDate(), max, d->spec);
setMaximumDateTime(m);
}
}