Merge remote-tracking branch 'origin/5.11' into dev

Conflicts:
	src/plugins/platforms/ios/quiview.mm

Change-Id: I0fd0adeca1590fffddd577873172f6d987a60412
This commit is contained in:
Liang Qi 2018-04-11 09:34:23 +02:00
commit 093290a662
15 changed files with 72 additions and 22 deletions

View File

@ -23,9 +23,29 @@ QMAKE_MAKE_NAME = $$basename(QMAKE_MAKE)
# Make sure we don't inherit MAKEFLAGS - -i in particular is fatal.
QMAKE_MAKE = "$${SETENV_PFX}MAKEFLAGS=$$SETENV_SFX $$QMAKE_MAKE"
QMAKE_PERSIST_LOG = false
QMAKE_PERSISTED_LOG =
defineTest(qtLog) {
write_file($$QMAKE_CONFIG_LOG, 1, append)
$$QMAKE_CONFIG_VERBOSE: for (l, 1): log("$$l$$escape_expand(\\n)")
$$QMAKE_PERSIST_LOG {
QMAKE_PERSISTED_LOG += $$1
export(QMAKE_PERSISTED_LOG)
}
}
defineTest(qtPersistLog) {
QMAKE_PERSIST_LOG = true
QMAKE_PERSISTED_LOG =
export(QMAKE_PERSIST_LOG)
export(QMAKE_PERSISTED_LOG)
}
defineReplace(qtPersistedLog) {
QMAKE_PERSIST_LOG = false
export(QMAKE_PERSIST_LOG)
return($$QMAKE_PERSISTED_LOG)
}
defineTest(qtRunLoggedCommand) {

View File

@ -53,7 +53,9 @@ contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") {
CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
}
!exists($$first(QT.$${MODULE}_private.includes)): CMAKE_NO_PRIVATE_INCLUDES = true
isEmpty(QT.$${MODULE}_private.includes)| \
!exists($$first(QT.$${MODULE}_private.includes)): \
CMAKE_NO_PRIVATE_INCLUDES = true
CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
contains(CMAKE_LIB_DIR,"^\\.\\./.*") {

View File

@ -710,13 +710,14 @@ defineTest(qtConfHandleLibrary) {
}
use_args = $$eval($${lpfx}.literal_args)
qtConfLoadResult($${lpfx}, $$1) {
qtConfLoadResult($${lpfx}, $$1, "library") {
$$eval($${lpfx}.result): \
qtConfExportLibrary($$1)
return()
}
qtLogTestIntro($${lpfx}, "looking for library $${1}")
qtPersistLog()
result = false
for (s, $${lpfx}.sources._KEYS_) {
@ -768,6 +769,9 @@ defineTest(qtConfHandleLibrary) {
break()
}
$${lpfx}.msgs = $$qtPersistedLog()
export($${lpfx}.msgs)
qtLogTestResult($${lpfx}, $$result)
$${lpfx}.result = $$result
@ -1023,7 +1027,7 @@ defineTest(qtLogTestIntro) {
label = $$eval($${1}.label)
isEmpty(label): return()
log("Checking for $${label}... ")
isEmpty(3): log("Checking for $${label}... ")
$$QMAKE_CONFIG_VERBOSE: log("$$escape_expand(\\n)")
write_file($$QMAKE_CONFIG_LOG, 2, append)
}
@ -1043,14 +1047,14 @@ defineTest(qtLogTestResult) {
msg = "test $$1 FAILED"
}
$$QMAKE_CONFIG_VERBOSE: log_msg = $$msg
logn("$$log_msg")
isEmpty(3): logn("$$log_msg")
write_file($$QMAKE_CONFIG_LOG, msg, append)
}
defineTest(qtConfSaveResult) {
equals($${1}.cache, -): \
return()
keys = result $$eval($${1}.cache)
keys = result msgs $$eval($${1}.cache)
cont = "cache.$${2}._KEYS_ = $$keys"
cache.$${2}._KEYS_ = $$keys
export(cache.$${2}._KEYS_)
@ -1073,6 +1077,12 @@ defineTest(qtConfLoadResult) {
$${1}.$${k} = $$eval(cache.$${2}.$${k})
export($${1}.$${k})
}
# we could print the cached result, but that's basically just noise -
# the explicitly generated summary is supposed to contain all relevant
# information.
qtLogTestIntro($$1, "loaded result for $$3 $$1", false)
qtLog($$eval($${1}.msgs))
qtLogTestResult($$1, $$eval($${1}.result), false)
return(true)
}
@ -1153,14 +1163,18 @@ defineTest(qtRunSingleTest) {
# note: we do this only after resolving the dependencies and the
# preparation (which may resolve libraries), so that caching does
# not alter the execution order (and thus the output).
qtConfLoadResult($${tpfx}, $$1): \
qtConfLoadResult($${tpfx}, $$1, "config test"): \
return()
qtLogTestIntro($${tpfx}, "executing config test $${1}")
qtPersistLog()
result = false
$${call}($${tpfx}): result = true
$${tpfx}.msgs = $$qtPersistedLog()
export($${tpfx}.msgs)
qtLogTestResult($${tpfx}, $$result)
$${tpfx}.result = $$result

View File

@ -419,15 +419,15 @@ QString qt_readEscapedFormatString(QStringView format, int *idx);
bool qt_splitLocaleName(const QString &name, QString &lang, QString &script, QString &cntry);
int qt_repeatCount(QStringView s);
enum { AsciiSpaceMask = (1 << (' ' - 1)) |
(1 << ('\t' - 1)) | // 9: HT - horizontal tab
(1 << ('\n' - 1)) | // 10: LF - line feed
(1 << ('\v' - 1)) | // 11: VT - vertical tab
(1 << ('\f' - 1)) | // 12: FF - form feed
(1 << ('\r' - 1)) }; // 13: CR - carriage return
enum { AsciiSpaceMask = (1u << (' ' - 1)) |
(1u << ('\t' - 1)) | // 9: HT - horizontal tab
(1u << ('\n' - 1)) | // 10: LF - line feed
(1u << ('\v' - 1)) | // 11: VT - vertical tab
(1u << ('\f' - 1)) | // 12: FF - form feed
(1u << ('\r' - 1)) }; // 13: CR - carriage return
Q_DECL_CONSTEXPR inline bool ascii_isspace(uchar c)
{
return c >= 1U && c <= 32U && (uint(AsciiSpaceMask) >> uint(c - 1)) & 1U;
return c >= 1u && c <= 32u && (AsciiSpaceMask >> uint(c - 1)) & 1u;
}
#if defined(Q_COMPILER_CONSTEXPR)

View File

@ -1282,7 +1282,7 @@
"label": "XCB",
"section": "Platform plugins",
"autoDetect": "!config.darwin",
"enable": "input.xcb == 'system' || input.xcb == 'qt'",
"enable": "input.xcb == 'system' || input.xcb == 'qt' || input.xcb == 'yes'",
"condition": "libs.xcb",
"output": [ "privateFeature" ]
},

View File

@ -61,6 +61,8 @@ namespace
return ""; // Although fragment shaders for <=2 only have fixed outputs
case QShaderLanguage::Uniform:
return "uniform";
case QShaderLanguage::BuiltIn:
return "//";
}
} else {
switch (qualifier) {
@ -72,6 +74,8 @@ namespace
return "out";
case QShaderLanguage::Uniform:
return "uniform";
case QShaderLanguage::BuiltIn:
return "//";
}
}

View File

@ -64,6 +64,7 @@ namespace QShaderLanguage
enum StorageQualifier : char {
Const = 1,
Input,
BuiltIn,
Output,
Uniform
};

View File

@ -445,7 +445,7 @@ Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet")
}
if (m_activeTouches.isEmpty())
return;
QWindowSystemInterface::handleTouchEvent<QWindowSystemInterface::SynchronousDelivery>(self.platformWindow->window(), timeStamp, iosIntegration->touchDevice(), m_activeTouches.values());
if (!static_cast<QUIWindow *>(self.window).sendingEvent) {
// The event is likely delivered as part of delayed touch delivery, via
// _UIGestureEnvironmentSortAndSendDelayedTouches, due to one of the two

View File

@ -639,6 +639,8 @@ QFunctionPointer QGLXContext::getProcAddress(const char *procName)
extern const QString qt_gl_library_name();
// QLibrary lib(qt_gl_library_name());
QLibrary lib(QLatin1String("GL"));
if (!lib.load())
lib.setFileNameAndVersion(QLatin1String("GL"), 1);
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
#endif
}

View File

@ -1160,14 +1160,14 @@ static void qLibraryInit()
# endif // MYSQL_VERSION_ID
#endif // Q_NO_MYSQL_EMBEDDED
#ifdef MARIADB_BASE_VERSION
#if defined(MARIADB_BASE_VERSION) || defined(MARIADB_VERSION_ID)
qAddPostRoutine([]() { mysql_server_end(); });
#endif
}
static void qLibraryEnd()
{
#if !defined(MARIADB_BASE_VERSION)
#if !defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID)
# if !defined(Q_NO_MYSQL_EMBEDDED)
# if MYSQL_VERSION_ID > 40000
# if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003

View File

@ -68,6 +68,7 @@
#include <qstack.h>
#include <qmap.h>
#include <qtimer.h>
#include <qpointer.h>
#ifndef QT_NO_DEBUG_STREAM
# include <qdebug.h>
@ -1654,7 +1655,7 @@ void QMainWindowLayout::keepSize(QDockWidget *w)
class QMainWindowTabBar : public QTabBar
{
QMainWindow *mainWindow;
QDockWidget *draggingDock; // Currently dragging (detached) dock widget
QPointer<QDockWidget> draggingDock; // Currently dragging (detached) dock widget
public:
QMainWindowTabBar(QMainWindow *parent);
protected:
@ -1665,7 +1666,7 @@ protected:
};
QMainWindowTabBar::QMainWindowTabBar(QMainWindow *parent)
: QTabBar(parent), mainWindow(parent), draggingDock(0)
: QTabBar(parent), mainWindow(parent)
{
setExpanding(false);
}

View File

@ -1198,8 +1198,8 @@ QWidget *QSplitter::replaceWidget(int index, QWidget *widget)
/*!
\fn int QSplitter::indexOf(QWidget *widget) const
Returns the index in the splitter's layout of the specified \a widget. This
also works for handles.
Returns the index in the splitter's layout of the specified \a widget,
or -1 if \a widget is not found. This also works for handles.
Handles are numbered from 0. There are as many handles as there
are child widgets, but the handle at position 0 is always hidden.

View File

@ -586,7 +586,6 @@ void tst_QEventLoop::deliverInDefinedOrder()
}
}
QTest::qWait(30);
for (int o = 0; o < NbObject; o++) {
QTRY_COMPARE(objects[o].count, int(NbEvent));
}

View File

@ -372,6 +372,8 @@ namespace {
return "const";
case QShaderLanguage::Input:
return "varying";
case QShaderLanguage::BuiltIn:
return "//";
case QShaderLanguage::Output:
return ""; // Although fragment shaders for <=2 only have fixed outputs
case QShaderLanguage::Uniform:
@ -383,6 +385,8 @@ namespace {
return "const";
case QShaderLanguage::Input:
return "in";
case QShaderLanguage::BuiltIn:
return "//";
case QShaderLanguage::Output:
return "out";
case QShaderLanguage::Uniform:

View File

@ -471,6 +471,9 @@ void tst_QFiledialog::completer()
for (int i = 0; i < 10; ++i) {
TemporaryFilePtr file(new QTemporaryFile(startPath + QStringLiteral("/rXXXXXX")));
QVERIFY2(file->open(), qPrintable(file->errorString()));
// Force the temporary file to materialize with the requested name
(void) file->fileName();
QVERIFY(file->exists());
files.append(file);
}
}