Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts: src/corelib/global/qglobal.cpp src/corelib/global/qrandom.cpp tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp Change-Id: Icc10543a1f2db5d640d01796bfec70a63517a6b2
This commit is contained in:
commit
c97eb3e18e
@ -1,4 +1,4 @@
|
||||
contains(TEMPLATE, ".*app"):!build_pass: {
|
||||
contains(TEMPLATE, ".*app"):!build_pass:!android-embedded {
|
||||
|
||||
defineReplace(emitString) {
|
||||
return("\"$$replace(1, \\\\, \\\\)\"")
|
||||
|
@ -80,7 +80,7 @@
|
||||
# include <envLib.h>
|
||||
#endif
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
#include <private/qjni_p.h>
|
||||
#endif
|
||||
|
||||
@ -2358,7 +2358,7 @@ static bool findUnixOsVersion(QUnixOSVersion &v)
|
||||
# endif // USE_ETC_OS_RELEASE
|
||||
#endif // Q_OS_UNIX
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
static const char *osVer_helper(QOperatingSystemVersion)
|
||||
{
|
||||
/* Data:
|
||||
@ -2839,7 +2839,7 @@ QString QSysInfo::productVersion()
|
||||
*/
|
||||
QString QSysInfo::prettyProductName()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID) || defined(Q_OS_DARWIN) || defined(Q_OS_WIN)
|
||||
#if (defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)) || defined(Q_OS_DARWIN) || defined(Q_OS_WIN)
|
||||
const auto version = QOperatingSystemVersion::current();
|
||||
const char *name = osVer_helper(version);
|
||||
if (name)
|
||||
|
@ -1572,7 +1572,7 @@ static void syslog_default_message_handler(QtMsgType type, const char *message)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
static void android_default_message_handler(QtMsgType type,
|
||||
const QMessageLogContext &context,
|
||||
const QString &message)
|
||||
@ -1620,7 +1620,7 @@ static void qDefaultMessageHandler(QtMsgType type, const QMessageLogContext &con
|
||||
#elif QT_CONFIG(syslog)
|
||||
syslog_default_message_handler(type, logMessage.toUtf8().constData());
|
||||
return;
|
||||
#elif defined(Q_OS_ANDROID)
|
||||
#elif defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
android_default_message_handler(type, context, logMessage);
|
||||
return;
|
||||
#endif
|
||||
|
@ -45,7 +45,7 @@
|
||||
#include <qversionnumber.h>
|
||||
#include <qdebug.h>
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
#include <private/qjni_p.h>
|
||||
#endif
|
||||
|
||||
@ -163,7 +163,7 @@ QOperatingSystemVersion QOperatingSystemVersion::current()
|
||||
{
|
||||
QOperatingSystemVersion version;
|
||||
version.m_os = currentType();
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
const QVersionNumber v = QVersionNumber::fromString(QJNIObjectPrivate::getStaticObjectField(
|
||||
"android/os/Build$VERSION", "RELEASE", "Ljava/lang/String;").toString());
|
||||
|
@ -74,7 +74,7 @@ DECLSPEC_IMPORT BOOLEAN WINAPI SystemFunction036(PVOID RandomBuffer, ULONG Rando
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
# include <private/qjni_p.h>
|
||||
#endif
|
||||
|
||||
@ -1285,7 +1285,7 @@ void QRandomGenerator::_fillRange(void *buffer, void *bufferEnd)
|
||||
std::generate(begin, end, [this]() { return storage.engine()(); });
|
||||
}
|
||||
|
||||
#if defined(Q_OS_ANDROID) && (__ANDROID_API__ < 21)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED) && (__ANDROID_API__ < 21)
|
||||
typedef QThreadStorage<QJNIObjectPrivate> AndroidRandomStorage;
|
||||
Q_GLOBAL_STATIC(AndroidRandomStorage, randomTLS)
|
||||
|
||||
@ -1314,7 +1314,7 @@ Q_GLOBAL_STATIC(SeedStorage, randTLS) // Thread Local Storage for seed value
|
||||
*/
|
||||
void qsrand(uint seed)
|
||||
{
|
||||
#if defined(Q_OS_ANDROID) && (__ANDROID_API__ < 21)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED) && (__ANDROID_API__ < 21)
|
||||
if (randomTLS->hasLocalData()) {
|
||||
randomTLS->localData().callMethod<void>("setSeed", "(J)V", jlong(seed));
|
||||
return;
|
||||
@ -1370,7 +1370,7 @@ void qsrand(uint seed)
|
||||
*/
|
||||
int qrand()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID) && (__ANDROID_API__ < 21)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED) && (__ANDROID_API__ < 21)
|
||||
AndroidRandomStorage *randomStorage = randomTLS();
|
||||
if (!randomStorage)
|
||||
return rand();
|
||||
|
@ -165,7 +165,7 @@ win32 {
|
||||
} else {
|
||||
LIBS += -framework MobileCoreServices
|
||||
}
|
||||
} else:android {
|
||||
} else:android:!android-embedded {
|
||||
SOURCES += \
|
||||
io/qstandardpaths_android.cpp \
|
||||
io/qstorageinfo_unix.cpp
|
||||
|
@ -200,7 +200,7 @@ qnx:qtConfig(qqnx_pps) {
|
||||
kernel/qppsobjectprivate_p.h
|
||||
}
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
SOURCES += \
|
||||
kernel/qjnionload.cpp \
|
||||
kernel/qjnihelpers.cpp \
|
||||
|
@ -95,7 +95,7 @@
|
||||
#endif
|
||||
#endif // QT_NO_QOBJECT
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
# include <private/qjni_p.h>
|
||||
# include <private/qjnihelpers_p.h>
|
||||
#endif
|
||||
@ -180,7 +180,7 @@ QString QCoreApplicationPrivate::appVersion() const
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
# ifdef Q_OS_DARWIN
|
||||
applicationVersion = infoDictionaryStringProperty(QStringLiteral("CFBundleVersion"));
|
||||
# elif defined(Q_OS_ANDROID)
|
||||
# elif defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QJNIObjectPrivate context(QtAndroidPrivate::context());
|
||||
if (context.isValid()) {
|
||||
QJNIObjectPrivate pm = context.callObjectMethod(
|
||||
@ -2236,7 +2236,7 @@ QString QCoreApplication::applicationFilePath()
|
||||
}
|
||||
#endif
|
||||
#if defined( Q_OS_UNIX )
|
||||
# if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID)
|
||||
# if defined(Q_OS_LINUX) && (!defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_EMBEDDED))
|
||||
// Try looking for a /proc/<pid>/exe symlink first which points to
|
||||
// the absolute path of the executable
|
||||
QFileInfo pfi(QString::fromLatin1("/proc/%1/exe").arg(getpid()));
|
||||
|
@ -237,22 +237,35 @@ static bool findPatternUnloaded(const QString &library, QLibraryPrivate *lib)
|
||||
if (lib)
|
||||
lib->errorString = file.errorString();
|
||||
if (qt_debug_component()) {
|
||||
qWarning("%s: %s", (const char*) QFile::encodeName(library),
|
||||
qWarning("%s: %s", QFile::encodeName(library).constData(),
|
||||
qPrintable(QSystemError::stdString()));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QByteArray data;
|
||||
const char *filedata = 0;
|
||||
ulong fdlen = file.size();
|
||||
filedata = (char *) file.map(0, fdlen);
|
||||
const char *filedata = reinterpret_cast<char *>(file.map(0, fdlen));
|
||||
|
||||
if (filedata == 0) {
|
||||
// try reading the data into memory instead
|
||||
if (uchar *mapdata = file.map(0, 1)) {
|
||||
file.unmap(mapdata);
|
||||
// Mapping is supported, but failed for the entire file, likely due to OOM.
|
||||
// Return false, as readAll() would cause a bad_alloc and terminate the process.
|
||||
if (lib)
|
||||
lib->errorString = QLibrary::tr("Out of memory while loading plugin '%1'.").arg(library);
|
||||
if (qt_debug_component()) {
|
||||
qWarning("%s: %s", QFile::encodeName(library).constData(),
|
||||
qPrintable(QSystemError::stdString(ENOMEM)));
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
// Try reading the data into memory instead.
|
||||
data = file.readAll();
|
||||
filedata = data.constData();
|
||||
fdlen = data.size();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
ELF and Mach-O binaries with GCC have .qplugin sections.
|
||||
@ -745,7 +758,7 @@ void QLibraryPrivate::updatePluginState()
|
||||
if (qt_debug_component()) {
|
||||
qWarning("In %s:\n"
|
||||
" Plugin uses incompatible Qt library (%d.%d.%d) [%s]",
|
||||
(const char*) QFile::encodeName(fileName),
|
||||
QFile::encodeName(fileName).constData(),
|
||||
(qt_version&0xff0000) >> 16, (qt_version&0xff00) >> 8, qt_version&0xff,
|
||||
debug ? "debug" : "release");
|
||||
}
|
||||
|
@ -198,7 +198,7 @@
|
||||
|
||||
// SSE intrinsics
|
||||
#if defined(__SSE2__) || (defined(QT_COMPILER_SUPPORTS_SSE2) && defined(QT_COMPILER_SUPPORTS_SIMD_ALWAYS))
|
||||
#if defined(QT_LINUXBASE)
|
||||
#if defined(QT_LINUXBASE) || defined(Q_OS_ANDROID_EMBEDDED)
|
||||
/// this is an evil hack - the posix_memalign declaration in LSB
|
||||
/// is wrong - see http://bugs.linuxbase.org/show_bug.cgi?id=2431
|
||||
# define posix_memalign _lsb_hack_posix_memalign
|
||||
|
@ -11626,7 +11626,7 @@ QString QString::toHtmlEscaped() const
|
||||
This cost can be avoided by using QStringLiteral instead:
|
||||
|
||||
\code
|
||||
if (node.hasAttribute(QStringLiteral("http-contents-length"))) //...
|
||||
if (node.hasAttribute(QStringLiteral(u"http-contents-length"))) //...
|
||||
\endcode
|
||||
|
||||
In this case, QString's internal data will be generated at compile time; no
|
||||
@ -11646,6 +11646,10 @@ QString QString::toHtmlEscaped() const
|
||||
if (attribute.name() == QLatin1String("http-contents-length")) //...
|
||||
\endcode
|
||||
|
||||
\note Some compilers have bugs encoding strings containing characters outside
|
||||
the US-ASCII character set. Make sure you prefix your string with \c{u} in
|
||||
those cases. It is optional otherwise.
|
||||
|
||||
\sa QByteArrayLiteral
|
||||
*/
|
||||
|
||||
|
@ -62,9 +62,9 @@ static QTimeZonePrivate *newBackendTimeZone()
|
||||
#else
|
||||
#if defined Q_OS_MAC
|
||||
return new QMacTimeZonePrivate();
|
||||
#elif defined Q_OS_ANDROID
|
||||
#elif defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
return new QAndroidTimeZonePrivate();
|
||||
#elif defined Q_OS_UNIX
|
||||
#elif defined(Q_OS_UNIX) || defined(Q_OS_ANDROID_EMBEDDED)
|
||||
return new QTzTimeZonePrivate();
|
||||
// Registry based timezone backend not available on WinRT
|
||||
#elif defined Q_OS_WIN
|
||||
@ -89,9 +89,9 @@ static QTimeZonePrivate *newBackendTimeZone(const QByteArray &ianaId)
|
||||
#else
|
||||
#if defined Q_OS_MAC
|
||||
return new QMacTimeZonePrivate(ianaId);
|
||||
#elif defined Q_OS_ANDROID
|
||||
#elif defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
return new QAndroidTimeZonePrivate(ianaId);
|
||||
#elif defined Q_OS_UNIX
|
||||
#elif defined(Q_OS_UNIX) || defined(Q_OS_ANDROID_EMBEDDED)
|
||||
return new QTzTimeZonePrivate(ianaId);
|
||||
// Registry based timezone backend not available on WinRT
|
||||
#elif defined Q_OS_WIN
|
||||
|
@ -68,7 +68,7 @@ Q_FORWARD_DECLARE_OBJC_CLASS(NSTimeZone);
|
||||
#include <qt_windows.h>
|
||||
#endif // Q_OS_WIN
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
#include <QtCore/private/qjni_p.h>
|
||||
#endif
|
||||
|
||||
@ -266,7 +266,7 @@ private:
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined Q_OS_UNIX && !defined Q_OS_MAC && !defined Q_OS_ANDROID
|
||||
#if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN) && (!defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_EMBEDDED))
|
||||
struct QTzTransitionTime
|
||||
{
|
||||
qint64 atMSecsSinceEpoch;
|
||||
@ -443,7 +443,7 @@ private:
|
||||
};
|
||||
#endif // Q_OS_WIN
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
class QAndroidTimeZonePrivate Q_DECL_FINAL : public QTimeZonePrivate
|
||||
{
|
||||
public:
|
||||
|
@ -161,7 +161,7 @@ qtConfig(timezone) {
|
||||
tools/qtimezoneprivate.cpp
|
||||
!nacl:darwin: \
|
||||
SOURCES += tools/qtimezoneprivate_mac.mm
|
||||
else: android: \
|
||||
else: android:!android-embedded: \
|
||||
SOURCES += tools/qtimezoneprivate_android.cpp
|
||||
else: unix: \
|
||||
SOURCES += tools/qtimezoneprivate_tz.cpp
|
||||
|
@ -2048,7 +2048,7 @@ void QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyE
|
||||
QWindow *window = e->window.data();
|
||||
modifier_buttons = e->modifiers;
|
||||
if (e->nullWindow()
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
|| e->key == Qt::Key_Back || e->key == Qt::Key_Menu
|
||||
#endif
|
||||
) {
|
||||
@ -2084,7 +2084,7 @@ void QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyE
|
||||
|
||||
if (window && !window->d_func()->blockedByModalWindow)
|
||||
QGuiApplication::sendSpontaneousEvent(window, &ev);
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
else
|
||||
ev.setAccepted(false);
|
||||
|
||||
|
@ -1002,6 +1002,7 @@ bool QOpenGLContext::makeCurrent(QSurface *surface)
|
||||
if (rendererString)
|
||||
needsWorkaround =
|
||||
qstrncmp(rendererString, "Mali-4xx", 6) == 0 // Mali-400, Mali-450
|
||||
|| qstrcmp(rendererString, "Mali-T880") == 0
|
||||
|| qstrncmp(rendererString, "Adreno (TM) 2xx", 13) == 0 // Adreno 200, 203, 205
|
||||
|| qstrncmp(rendererString, "Adreno 2xx", 8) == 0 // Same as above but without the '(TM)'
|
||||
|| qstrncmp(rendererString, "Adreno (TM) 30x", 14) == 0 // Adreno 302, 305
|
||||
|
@ -541,12 +541,14 @@ QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
|
||||
directories << ministroPath;
|
||||
nameFilters << QLatin1String("*.der");
|
||||
platformEncodingFormat = QSsl::Der;
|
||||
# ifndef Q_OS_ANDROID_EMBEDDED
|
||||
if (ministroPath.isEmpty()) {
|
||||
QList<QByteArray> certificateData = fetchSslCertificateData();
|
||||
for (int i = 0; i < certificateData.size(); ++i) {
|
||||
systemCerts.append(QSslCertificate::fromData(certificateData.at(i), QSsl::Der));
|
||||
}
|
||||
} else
|
||||
# endif //Q_OS_ANDROID_EMBEDDED
|
||||
# endif //Q_OS_ANDROID
|
||||
{
|
||||
currentDir.setNameFilters(nameFilters);
|
||||
|
@ -209,7 +209,7 @@ public:
|
||||
private:
|
||||
static bool ensureLibraryLoaded();
|
||||
static void ensureCiphersAndCertsLoaded();
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
static QList<QByteArray> fetchSslCertificateData();
|
||||
#endif
|
||||
|
||||
|
@ -82,7 +82,7 @@ qtConfig(ssl) {
|
||||
|
||||
darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp
|
||||
|
||||
android: SOURCES += ssl/qsslsocket_openssl_android.cpp
|
||||
android:!android-embedded: SOURCES += ssl/qsslsocket_openssl_android.cpp
|
||||
|
||||
# Add optional SSL libs
|
||||
# Static linking of OpenSSL with msvc:
|
||||
|
@ -45,7 +45,7 @@
|
||||
#include <QtPlatformHeaders/QEGLNativeContext>
|
||||
#include <QDebug>
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
#include <QtCore/private/qjnihelpers_p.h>
|
||||
#endif
|
||||
#ifndef Q_OS_WIN
|
||||
@ -332,7 +332,7 @@ void QEGLPlatformContext::updateFormatFromGL()
|
||||
QByteArray version = QByteArray(reinterpret_cast<const char *>(s));
|
||||
int major, minor;
|
||||
if (QPlatformOpenGLContext::parseOpenGLVersion(version, major, minor)) {
|
||||
#ifdef Q_OS_ANDROID
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
// Some Android 4.2.2 devices report OpenGL ES 3.0 without the functions being available.
|
||||
static int apiLevel = QtAndroidPrivate::androidSdkVersion();
|
||||
if (apiLevel <= 17 && major >= 3) {
|
||||
|
@ -6,6 +6,6 @@ QT_FOR_CONFIG += network-private
|
||||
SUBDIRS += connman networkmanager
|
||||
}
|
||||
|
||||
android:SUBDIRS += android
|
||||
android:!android-embedded: SUBDIRS += android
|
||||
|
||||
isEmpty(SUBDIRS):SUBDIRS = generic
|
||||
|
@ -117,7 +117,7 @@ void QEglFSWindow::create()
|
||||
QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
|
||||
if (screen->primarySurface() != EGL_NO_SURFACE) {
|
||||
if (Q_UNLIKELY(!isRaster() || !compositor->targetWindow())) {
|
||||
#if !defined(Q_OS_ANDROID)
|
||||
#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_EMBEDDED)
|
||||
// We can have either a single OpenGL window or multiple raster windows.
|
||||
// Other combinations cannot work.
|
||||
qFatal("EGLFS: OpenGL windows cannot be mixed with others.");
|
||||
|
@ -59,13 +59,13 @@
|
||||
#include <QtInputSupport/private/qlibinputhandler_p.h>
|
||||
#endif
|
||||
|
||||
#if QT_CONFIG(evdev) && !defined(Q_OS_ANDROID)
|
||||
#if QT_CONFIG(evdev)
|
||||
#include <QtInputSupport/private/qevdevmousemanager_p.h>
|
||||
#include <QtInputSupport/private/qevdevkeyboardmanager_p.h>
|
||||
#include <QtInputSupport/private/qevdevtouchmanager_p.h>
|
||||
#endif
|
||||
|
||||
#if QT_CONFIG(tslib) && !defined(Q_OS_ANDROID)
|
||||
#if QT_CONFIG(tslib)
|
||||
#include <QtInputSupport/private/qtslib_p.h>
|
||||
#endif
|
||||
|
||||
@ -162,7 +162,7 @@ void QLinuxFbIntegration::createInputHandlers()
|
||||
new QTsLibMouseHandler(QLatin1String("TsLib"), QString());
|
||||
#endif
|
||||
|
||||
#if QT_CONFIG(evdev) && !defined(Q_OS_ANDROID)
|
||||
#if QT_CONFIG(evdev)
|
||||
new QEvdevKeyboardManager(QLatin1String("EvdevKeyboard"), QString(), this);
|
||||
new QEvdevMouseManager(QLatin1String("EvdevMouse"), QString(), this);
|
||||
#if QT_CONFIG(tslib)
|
||||
|
@ -1,7 +1,7 @@
|
||||
TEMPLATE = subdirs
|
||||
QT_FOR_CONFIG += gui-private
|
||||
|
||||
android: SUBDIRS += android
|
||||
android:!android-embedded: SUBDIRS += android
|
||||
|
||||
!android: SUBDIRS += minimal
|
||||
|
||||
|
@ -134,7 +134,11 @@ static void updateFormatFromContext(QSurfaceFormat &format)
|
||||
}
|
||||
|
||||
format.setProfile(QSurfaceFormat::NoProfile);
|
||||
const bool isStereo = format.testOption(QSurfaceFormat::StereoBuffers);
|
||||
format.setOptions(QSurfaceFormat::FormatOptions());
|
||||
// Restore flags that come from the VisualInfo/FBConfig.
|
||||
if (isStereo)
|
||||
format.setOption(QSurfaceFormat::StereoBuffers);
|
||||
|
||||
if (format.renderableType() == QSurfaceFormat::OpenGL) {
|
||||
if (format.version() < qMakePair(3, 0)) {
|
||||
|
@ -201,9 +201,11 @@ qtConfig(gui) {
|
||||
src_plugins.depends += src_gui src_platformsupport src_platformheaders
|
||||
src_testlib.depends += src_gui # if QtGui is enabled, QtTest requires QtGui's headers
|
||||
qtConfig(widgets) {
|
||||
SUBDIRS += src_tools_uic src_widgets src_printsupport
|
||||
SUBDIRS += src_tools_uic src_widgets
|
||||
!android-embedded: SUBDIRS += src_printsupport
|
||||
TOOLS += src_tools_uic
|
||||
src_plugins.depends += src_widgets src_printsupport
|
||||
src_plugins.depends += src_widgets
|
||||
!android-embedded: src_plugins.depends += src_printsupport
|
||||
src_testlib.depends += src_widgets # if QtWidgets is enabled, QtTest requires QtWidgets's headers
|
||||
qtConfig(opengl) {
|
||||
SUBDIRS += src_opengl
|
||||
@ -215,7 +217,7 @@ SUBDIRS += src_plugins
|
||||
|
||||
nacl: SUBDIRS -= src_network src_testlib
|
||||
|
||||
android: SUBDIRS += src_android src_3rdparty_gradle
|
||||
android:!android-embedded: SUBDIRS += src_android src_3rdparty_gradle
|
||||
|
||||
TR_EXCLUDE = \
|
||||
src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_uic src_tools_qlalr \
|
||||
|
@ -775,16 +775,14 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem,
|
||||
painter->setPen(QPen(checkMarkColor, 1));
|
||||
painter->setBrush(gradient);
|
||||
painter->drawRect(rect.adjusted(checkMarkPadding, checkMarkPadding, -checkMarkPadding, -checkMarkPadding));
|
||||
|
||||
} else if (checkbox->state & (State_On)) {
|
||||
} else if (checkbox->state & State_On) {
|
||||
qreal penWidth = QStyleHelper::dpiScaled(1.8);
|
||||
penWidth = qMax(penWidth , 0.18 * rect.height());
|
||||
penWidth = qMin(penWidth , 0.30 * rect.height());
|
||||
QPen checkPen = QPen(checkMarkColor, penWidth);
|
||||
checkMarkColor.setAlpha(210);
|
||||
painter->translate(-0.8, 0.5);
|
||||
painter->setPen(checkPen);
|
||||
painter->setPen(QPen(checkMarkColor, penWidth));
|
||||
painter->setBrush(Qt::NoBrush);
|
||||
painter->translate(-0.8, 0.5);
|
||||
|
||||
// Draw checkmark
|
||||
QPainterPath path;
|
||||
|
@ -3973,10 +3973,11 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
|
||||
x += reverse ? -chunkWidth : chunkWidth;
|
||||
--chunkCount;
|
||||
};
|
||||
} else {
|
||||
} else if (chunkWidth > 0) {
|
||||
const int chunkCount = ceil(qreal(fillWidth)/chunkWidth);
|
||||
int x = reverse ? r.left() + r.width() - chunkWidth : r.x();
|
||||
|
||||
for (int i = 0; i < ceil(qreal(fillWidth)/chunkWidth); ++i) {
|
||||
for (int i = 0; i < chunkCount; ++i) {
|
||||
r.setRect(x, rect.y(), chunkWidth, rect.height());
|
||||
r = m.mapRect(QRectF(r)).toRect();
|
||||
subRule.drawRule(p, r);
|
||||
|
@ -1265,18 +1265,8 @@ void QXmlInputSource::fetchData()
|
||||
} else if (device->isOpen() || device->open(QIODevice::ReadOnly)) {
|
||||
rawData.resize(BufferSize);
|
||||
qint64 size = device->read(rawData.data(), BufferSize);
|
||||
|
||||
if (size != -1) {
|
||||
// We don't want to give fromRawData() less than four bytes if we can avoid it.
|
||||
while (size < 4) {
|
||||
if (!device->waitForReadyRead(-1))
|
||||
break;
|
||||
int ret = device->read(rawData.data() + size, BufferSize - size);
|
||||
if (ret <= 0)
|
||||
break;
|
||||
size += ret;
|
||||
}
|
||||
}
|
||||
if (size == 0 && device->waitForReadyRead(-1))
|
||||
size = device->read(rawData.data(), BufferSize);
|
||||
|
||||
rawData.resize(qMax(qint64(0), size));
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ SOURCES = tst_qdatastream.cpp
|
||||
|
||||
TESTDATA += datastream.q42
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
testdata.qrc
|
||||
}
|
||||
|
@ -8,6 +8,6 @@ TESTDATA += testdir testData searchdir resources entrylist types tst_qdir.cpp
|
||||
|
||||
contains(CONFIG, builtin_testdata): DEFINES += BUILTIN_TESTDATA
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += android_testdata.qrc
|
||||
}
|
||||
|
@ -228,13 +228,13 @@ private:
|
||||
Q_DECLARE_METATYPE(tst_QDir::UncHandling)
|
||||
|
||||
tst_QDir::tst_QDir()
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
: m_dataPath(QStandardPaths::writableLocation(QStandardPaths::CacheLocation))
|
||||
#elif !defined(BUILTIN_TESTDATA)
|
||||
: m_dataPath(QFileInfo(QFINDTESTDATA("testData")).absolutePath())
|
||||
#endif
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QString resourceSourcePath = QStringLiteral(":/android_testdata/");
|
||||
QDirIterator it(resourceSourcePath, QDirIterator::Subdirectories);
|
||||
while (it.hasNext()) {
|
||||
@ -2186,7 +2186,7 @@ void tst_QDir::equalityOperator_data()
|
||||
QString pathinroot(QDir::rootPath() + QLatin1String("assets/.."));
|
||||
#elif defined (Q_OS_WIN)
|
||||
QString pathinroot("c:/windows/..");
|
||||
#elif defined(Q_OS_ANDROID)
|
||||
#elif defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QString pathinroot("/system/..");
|
||||
#elif defined(Q_OS_HAIKU)
|
||||
QString pathinroot("/boot/..");
|
||||
|
@ -118,7 +118,7 @@ private:
|
||||
|
||||
void tst_QDirIterator::initTestCase()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QString testdata_dir = QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
|
||||
QString resourceSourcePath = QStringLiteral(":/");
|
||||
QDirIterator it(resourceSourcePath, QDirIterator::Subdirectories);
|
||||
|
@ -1186,7 +1186,7 @@ void tst_QFileInfo::fileTimes()
|
||||
QCOMPARE(fileInfo.birthTime(), birthTime); // mustn't have changed
|
||||
QVERIFY(readTime.isValid());
|
||||
|
||||
#if defined(Q_OS_WINRT) || defined(Q_OS_QNX) || defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_WINRT) || defined(Q_OS_QNX) || (defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED))
|
||||
noAccessTime = true;
|
||||
#elif defined(Q_OS_WIN)
|
||||
//In Vista the last-access timestamp is not updated when the file is accessed/touched (by default).
|
||||
@ -1623,7 +1623,7 @@ void tst_QFileInfo::isWritable()
|
||||
void tst_QFileInfo::isExecutable()
|
||||
{
|
||||
QString appPath = QCoreApplication::applicationDirPath();
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
appPath += "/libtst_qfileinfo.so";
|
||||
#else
|
||||
appPath += "/tst_qfileinfo";
|
||||
|
@ -89,7 +89,7 @@ tst_QFileSystemWatcher::tst_QFileSystemWatcher()
|
||||
m_tempDirPattern += QStringLiteral("tst_qfilesystemwatcherXXXXXX");
|
||||
#endif // QT_NO_FILESYSTEMWATCHER
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QDir::setCurrent(QStandardPaths::writableLocation(QStandardPaths::CacheLocation));
|
||||
#endif
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ SOURCES = tst_qiodevice.cpp
|
||||
TESTDATA += tst_qiodevice.cpp
|
||||
MOC_DIR=tmp
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
android_testdata.qrc
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ private:
|
||||
|
||||
void tst_QIODevice::initTestCase()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QVERIFY(QFileInfo(QStringLiteral("./tst_qiodevice.cpp")).exists()
|
||||
|| QFile::copy(QStringLiteral(":/tst_qiodevice.cpp"), QStringLiteral("./tst_qiodevice.cpp")));
|
||||
#endif
|
||||
|
@ -72,7 +72,7 @@ public:
|
||||
|
||||
void tst_QLockFile::initTestCase()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("This test requires deploying and running external console applications");
|
||||
#elif !QT_CONFIG(process)
|
||||
QSKIP("This test requires QProcess support");
|
||||
|
@ -7,7 +7,7 @@ QT = core core-private testlib
|
||||
SOURCES += tst_qloggingregistry.cpp
|
||||
TESTDATA += qtlogging.ini
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
android_testdata.qrc
|
||||
}
|
||||
|
@ -18,6 +18,6 @@ TESTDATA += \
|
||||
testqrc/*
|
||||
GENERATED_TESTDATA = $${runtime_resource.target}
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += android_testdata.qrc
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ class tst_QResourceEngine: public QObject
|
||||
|
||||
public:
|
||||
tst_QResourceEngine()
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
: m_runtimeResourceRcc(QFileInfo(QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QStringLiteral("/runtime_resource.rcc")).absoluteFilePath())
|
||||
#else
|
||||
: m_runtimeResourceRcc(QFINDTESTDATA("runtime_resource.rcc"))
|
||||
@ -64,7 +64,7 @@ private:
|
||||
|
||||
void tst_QResourceEngine::initTestCase()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QString sourcePath(QStringLiteral(":/android_testdata/"));
|
||||
QString dataPath(QStandardPaths::writableLocation(QStandardPaths::CacheLocation));
|
||||
|
||||
@ -121,7 +121,7 @@ void tst_QResourceEngine::checkStructure_data()
|
||||
<< QLatin1String("test")
|
||||
<< QLatin1String("withoutslashes");
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
rootContents.insert(1, QLatin1String("android_testdata"));
|
||||
#endif
|
||||
|
||||
|
@ -290,7 +290,7 @@ void tst_QTemporaryDir::nonWritableCurrentDir()
|
||||
{
|
||||
#ifdef Q_OS_UNIX
|
||||
|
||||
# if defined(Q_OS_ANDROID)
|
||||
# if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
const char nonWritableDir[] = "/data";
|
||||
# else
|
||||
const char nonWritableDir[] = "/home";
|
||||
|
@ -5,6 +5,6 @@ SOURCES = tst_qtemporaryfile.cpp
|
||||
TESTDATA += tst_qtemporaryfile.cpp
|
||||
RESOURCES += qtemporaryfile.qrc
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += android_testdata.qrc
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ void tst_QTemporaryFile::initTestCase()
|
||||
QVERIFY(QDir("test-XXXXXX").exists() || QDir().mkdir("test-XXXXXX"));
|
||||
QCoreApplication::setApplicationName("tst_qtemporaryfile");
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QString sourceDir(":/android_testdata/");
|
||||
QDirIterator it(sourceDir, QDirIterator::Subdirectories);
|
||||
while (it.hasNext()) {
|
||||
@ -351,7 +351,7 @@ void tst_QTemporaryFile::nonWritableCurrentDir()
|
||||
|
||||
ChdirOnReturn cor(QDir::currentPath());
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QDir::setCurrent("/data");
|
||||
#else
|
||||
QDir::setCurrent("/home");
|
||||
@ -571,7 +571,7 @@ void tst_QTemporaryFile::renameFdLeak()
|
||||
{
|
||||
#ifdef Q_OS_UNIX
|
||||
|
||||
# if defined(Q_OS_ANDROID)
|
||||
# if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
ChdirOnReturn cor(QDir::currentPath());
|
||||
QDir::setCurrent(QStandardPaths::writableLocation(QStandardPaths::CacheLocation));
|
||||
# endif
|
||||
@ -780,7 +780,7 @@ void tst_QTemporaryFile::createNativeFile_data()
|
||||
QTest::addColumn<bool>("valid");
|
||||
QTest::addColumn<QByteArray>("content");
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
const QString nativeFilePath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QStringLiteral("/resources/test.txt");
|
||||
#else
|
||||
const QString nativeFilePath = QFINDTESTDATA("resources/test.txt");
|
||||
|
@ -4,6 +4,6 @@ QT = core testlib
|
||||
SOURCES = tst_qtranslator.cpp
|
||||
RESOURCES += qtranslator.qrc
|
||||
|
||||
android: RESOURCES += android_testdata.qrc
|
||||
android:!android-embedded: RESOURCES += android_testdata.qrc
|
||||
else: TESTDATA += dependencies_la.qm hellotr_la.qm msgfmt_from_po.qm
|
||||
|
||||
|
@ -65,7 +65,7 @@ tst_QTranslator::tst_QTranslator()
|
||||
|
||||
void tst_QTranslator::initTestCase()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QString sourceDir(":/android_testdata/");
|
||||
QDirIterator it(sourceDir, QDirIterator::Subdirectories);
|
||||
while (it.hasNext()) {
|
||||
|
@ -10,7 +10,7 @@ mac {
|
||||
LIBS += -framework Foundation
|
||||
}
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
android_testdata.qrc
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ SOURCES = tst_qchar.cpp
|
||||
|
||||
TESTDATA += data/NormalizationTest.txt
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
testdata.qrc
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ void tst_QCollator::compare()
|
||||
|
||||
QCollator collator(locale);
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
if (collator.locale() != QLocale())
|
||||
QSKIP("Posix implementation of collation only supports default locale");
|
||||
#endif
|
||||
|
@ -512,7 +512,7 @@ void tst_QCommandLineParser::testVersionOption()
|
||||
#if !QT_CONFIG(process)
|
||||
QSKIP("This test requires QProcess support");
|
||||
#else
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("Deploying executable applications to file system on Android not supported.");
|
||||
#endif
|
||||
|
||||
@ -578,7 +578,7 @@ void tst_QCommandLineParser::testHelpOption()
|
||||
#if !QT_CONFIG(process)
|
||||
QSKIP("This test requires QProcess support");
|
||||
#else
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("Deploying executable applications to file system on Android not supported.");
|
||||
#endif
|
||||
|
||||
@ -625,7 +625,7 @@ void tst_QCommandLineParser::testQuoteEscaping()
|
||||
{
|
||||
#if !QT_CONFIG(process)
|
||||
QSKIP("This test requires QProcess support");
|
||||
#elif defined(Q_OS_ANDROID)
|
||||
#elif defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("Deploying executable applications to file system on Android not supported.");
|
||||
#else
|
||||
QCoreApplication app(empty_argc, empty_argv);
|
||||
|
@ -5,7 +5,7 @@ SOURCES = tst_qcryptographichash.cpp
|
||||
|
||||
TESTDATA += data/*
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
testdata.qrc
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ SOURCES = tst_qtextboundaryfinder.cpp
|
||||
|
||||
TESTDATA += data
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
testdata.qrc
|
||||
}
|
||||
|
@ -5,6 +5,6 @@ SOURCES += tst_qimage.cpp
|
||||
QT += core-private gui-private testlib
|
||||
qtConfig(c++11): CONFIG += c++11
|
||||
|
||||
android: RESOURCES+=qimage.qrc
|
||||
android:!android-embedded: RESOURCES += qimage.qrc
|
||||
|
||||
TESTDATA += images/*
|
||||
|
@ -5,7 +5,7 @@ MOC_DIR=tmp
|
||||
QT += core-private gui-private network testlib
|
||||
RESOURCES += qimagereader.qrc
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += android_testdata.qrc
|
||||
}
|
||||
|
||||
|
@ -3,5 +3,5 @@ TARGET = tst_qimagewriter
|
||||
QT += testlib
|
||||
SOURCES += tst_qimagewriter.cpp
|
||||
MOC_DIR=tmp
|
||||
android: RESOURCES+= qimagewriter.qrc
|
||||
android:!android-embedded: RESOURCES += qimagewriter.qrc
|
||||
TESTDATA += images/*
|
||||
|
@ -9,7 +9,7 @@ SOURCES += tst_qpainter.cpp
|
||||
TESTDATA += drawEllipse/* drawLine_rop_bitmap/* drawPixmap_rop/* drawPixmap_rop_bitmap/* \
|
||||
task217400.png
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
testdata.qrc
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ private slots:
|
||||
|
||||
void tst_QProcess_and_GuiEventLoop::waitForAndEventLoop()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("Not supported on Android");
|
||||
#else
|
||||
|
||||
|
@ -84,7 +84,7 @@ void tst_QSidebar::addUrls()
|
||||
QAbstractItemModel *model = qsidebar.model();
|
||||
QDir testDir = QDir::home();
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
// temp and home is the same directory on Android
|
||||
testDir.mkdir(QStringLiteral("test"));
|
||||
QVERIFY(testDir.cd(QStringLiteral("test")));
|
||||
|
@ -2657,7 +2657,7 @@ void tst_QGraphicsScene::render()
|
||||
|
||||
void tst_QGraphicsScene::renderItemsWithNegativeWidthOrHeight()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("Test only works on platforms with resizable windows");
|
||||
#endif
|
||||
|
||||
@ -2736,7 +2736,7 @@ protected:
|
||||
|
||||
void tst_QGraphicsScene::contextMenuEvent_ItemIgnoresTransformations()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("Test fails on some Android devices (QTBUG-44430)");
|
||||
#endif
|
||||
|
||||
@ -4009,7 +4009,7 @@ void tst_QGraphicsScene::polishItems2()
|
||||
|
||||
void tst_QGraphicsScene::isActive()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("Fails on Android (QTBUG-44430)");
|
||||
#endif
|
||||
|
||||
|
@ -12,7 +12,7 @@ android {
|
||||
DEFINES += SRCDIR=\\\"$$PWD/\\\"
|
||||
}
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
testdata.qrc
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ void tst_QDirModel::getSetCheck()
|
||||
|
||||
void tst_QDirModel::initTestCase()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QString dataPath = SRCDIR;
|
||||
QString resourceSourcePath = QStringLiteral(":/android_testdata");
|
||||
QDirIterator it(resourceSourcePath, QDirIterator::Subdirectories);
|
||||
@ -614,7 +614,7 @@ void tst_QDirModel::task196768_sorting()
|
||||
view.setSortingEnabled(true);
|
||||
index2 = model.index(path);
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QEXPECT_FAIL("", "QTBUG-43818", Continue);
|
||||
#else
|
||||
if (EmulationDetector::isRunningArmOnX86())
|
||||
|
@ -6,7 +6,7 @@ QT += widgets widgets-private testlib testlib-private
|
||||
SOURCES += tst_qlayout.cpp
|
||||
TESTDATA += baseline/*
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
testdata.qrc
|
||||
}
|
||||
|
@ -337,7 +337,7 @@ void tst_QLayout::adjustSizeShouldMakeSureLayoutIsActivated()
|
||||
|
||||
void tst_QLayout::testRetainSizeWhenHidden()
|
||||
{
|
||||
#if defined(Q_OS_ANDROID)
|
||||
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
|
||||
QSKIP("Test does not work on platforms which default to showMaximized()");
|
||||
#endif
|
||||
|
||||
|
@ -3,7 +3,7 @@ TARGET = tst_qstyle
|
||||
QT += widgets testlib testlib-private
|
||||
SOURCES += tst_qstyle.cpp
|
||||
|
||||
android {
|
||||
android:!android-embedded {
|
||||
RESOURCES += \
|
||||
testdata.qrc
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ private slots:
|
||||
void reset() const;
|
||||
void resetSimplified() const;
|
||||
void waitForReadyIODevice() const;
|
||||
void inputFromSlowDevice() const;
|
||||
};
|
||||
|
||||
/*!
|
||||
@ -207,5 +208,88 @@ void tst_QXmlInputSource::waitForReadyIODevice() const
|
||||
QVERIFY(sv.success);
|
||||
}
|
||||
|
||||
// This class is used to emulate a case where less than 4 bytes are sent in
|
||||
// a single packet to ensure it is still parsed correctly
|
||||
class SlowIODevice : public QIODevice
|
||||
{
|
||||
public:
|
||||
SlowIODevice(const QString &expectedData, QObject *parent = 0)
|
||||
: QIODevice(parent), currentPos(0), readyToSend(true)
|
||||
{
|
||||
stringData = expectedData.toUtf8();
|
||||
dataTimer = new QTimer(this);
|
||||
connect(dataTimer, &QTimer::timeout, [=]() {
|
||||
readyToSend = true;
|
||||
emit readyRead();
|
||||
dataTimer->stop();
|
||||
});
|
||||
dataTimer->start(1000);
|
||||
}
|
||||
bool open(SlowIODevice::OpenMode) override
|
||||
{
|
||||
setOpenMode(ReadOnly);
|
||||
return true;
|
||||
}
|
||||
bool isSequential() const override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
qint64 bytesAvailable() const override
|
||||
{
|
||||
if (readyToSend && stringData.size() != currentPos)
|
||||
return qMax(3, stringData.size() - currentPos);
|
||||
return 0;
|
||||
}
|
||||
qint64 readData(char *data, qint64 maxSize) override
|
||||
{
|
||||
if (!readyToSend)
|
||||
return 0;
|
||||
const qint64 readSize = qMin(qMin((qint64)3, maxSize), (qint64)(stringData.size() - currentPos));
|
||||
if (readSize > 0)
|
||||
memcpy(data, &stringData.constData()[currentPos], readSize);
|
||||
currentPos += readSize;
|
||||
readyToSend = false;
|
||||
if (currentPos != stringData.size())
|
||||
dataTimer->start(1000);
|
||||
return readSize;
|
||||
}
|
||||
qint64 writeData(const char *, qint64) override { return 0; }
|
||||
bool waitForReadyRead(int msecs) override
|
||||
{
|
||||
// Delibrately wait a maximum of 10 seconds for the sake
|
||||
// of the test, so it doesn't unduly hang
|
||||
const int waitTime = qMax(10000, msecs);
|
||||
QTime t;
|
||||
t.start();
|
||||
while (t.elapsed() < waitTime) {
|
||||
QCoreApplication::processEvents();
|
||||
if (readyToSend)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private:
|
||||
QByteArray stringData;
|
||||
int currentPos;
|
||||
bool readyToSend;
|
||||
QTimer *dataTimer;
|
||||
};
|
||||
|
||||
void tst_QXmlInputSource::inputFromSlowDevice() const
|
||||
{
|
||||
QString expectedData = QStringLiteral("<foo><bar>kake</bar><bar>ja</bar></foo>");
|
||||
SlowIODevice slowDevice(expectedData);
|
||||
QXmlInputSource source(&slowDevice);
|
||||
QString data;
|
||||
while (true) {
|
||||
const QChar nextChar = source.next();
|
||||
if (nextChar == QXmlInputSource::EndOfDocument)
|
||||
break;
|
||||
else if (nextChar != QXmlInputSource::EndOfData)
|
||||
data += nextChar;
|
||||
}
|
||||
QCOMPARE(data, expectedData);
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_QXmlInputSource)
|
||||
#include "tst_qxmlinputsource.moc"
|
||||
|
Loading…
Reference in New Issue
Block a user