Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev
This commit is contained in:
commit
c18c63033e
94
dist/changes-5.11.3
vendored
Normal file
94
dist/changes-5.11.3
vendored
Normal 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.
|
@ -5,5 +5,6 @@ SUBDIRS = \
|
||||
ipc \
|
||||
mimetypes \
|
||||
serialization \
|
||||
threads \
|
||||
tools
|
||||
|
||||
qtConfig(thread): SUBDIRS += threads
|
||||
|
@ -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" \
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ haiku {
|
||||
SUBDIRS += haiku
|
||||
}
|
||||
|
||||
wasm: SUBDIRS = wasm
|
||||
wasm: SUBDIRS += wasm
|
||||
|
||||
qtConfig(mirclient): SUBDIRS += mirclient
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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());
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user