Some of the tests expect QDir::homePath() and QDir::currentPath()
to be different, so we just set the current path to something
other than QDir::homePath().
Change-Id: Ib048d323f4745369821765230b995a73b8a97145
Reviewed-by: BogDan Vatra <bogdan@kde.org>
This test may not be possible on Android, since the file system
can be mounted with noatime or relatime which means read access
will not be registered.
Change-Id: I40f587e1a1f131ee06f0e3700e908ccaa19c83ce
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Since there's no way to deploy files directly to the file file
system on Android, we put them in a qrc file and extract them
on startup.
Change-Id: I6a42aa5e0372bfd9fb2f7ccfea964c9c3c2e45d8
Reviewed-by: BogDan Vatra <bogdan@kde.org>
This test requires that the resources are also available
in the file system. Since it's not possible to deploy directly
to the file system using Android, we extract the files on
startup instead.
Change-Id: I1d1fe7d62c4c618a89713e3a7d1903e42bfb10b8
Reviewed-by: BogDan Vatra <bogdan@kde.org>
There's no way to install files automatically into the file
system on Android, so to test QDir on the file system, we have
to bundle the files in qrc and then copy them into the file system
on startup. This adds some complexity, but at least it will detect
regressions.
We also need to make sure the current directory is the same as
the data path, since the test assumes this, and /usr/ does not
exist on Android, so we have to use a different path to find the
root path.
Change-Id: I18d79b5ed99a0afff573beb30c61745c403f8991
Reviewed-by: BogDan Vatra <bogdan@kde.org>
This will arbitrarily fail at certain points. Adjusting the
timeouts helps, but it's very unpredictable, so it's better
to do what we do on Windows and just expect-fail the results
that we get.
Change-Id: Ie6033c73539c2dd69115b06096919e173f097367
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Add all test data to resources.
Change-Id: Id42a4c033b75409f65cb4d56ebf1161336b93832
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
We must add all test data to resources.
Change-Id: Ic12f8fce9afb965aff32e7141516c8d223e64491
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
We must add all test data to resources.
Change-Id: I7f9e7650156b174b7c16270d86b78e9408dff254
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Add test data to resources.
Change-Id: Ib8a5688e7caab8434b8f0676f53a2a79ec94b264
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
According to the Desktop Entry Specification, “If $XDG_CURRENT_DESKTOP is
set then it contains a colon-separated list of strings”. For example, on
GNOME Flashback session that variable is set to “GNOME-Flashback:GNOME”.
The value returned by QGenericUnixServices::desktopEnvironment() is in
most cases the uppercase variant of $XDG_CURRENT_DESKTOP variable.
In qgenericunixthemes.cpp, we need to support multiple names in the
return result of that function. If at least one part is in the list of
Gtk+-based desktop environments, then we should use gtk2 platform theme.
Change-Id: I0c9de68756d41b031e822be8cf100ca5c0b202ae
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
The enum values are different for the default framebuffer and non-default
ones. With QOpenGLWidget there is always a non-default fb bound, so the
correct way is to use GL_COLOR_ATTACHMENT0 etc. GL_COLOR_EXT and friends
are only allowed when the default framebuffer is bound, as per spec.
Change-Id: Ia8c27038dc899e44d1a95eb88adbc1cac72652b0
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Supports relative pointer, axis, keyboard and touch events.
libinput support is only available in combination with libudev.
libxkbcommon is required to perform key mapping. For now the
default keymap is used always (selected when building xkbcommon).
[ChangeLog][QtGui] Added a plugin to get mouse, keyboard and touch events
via libinput.
Change-Id: I469d8992c0cd3e79225cefaeb931697baf86a92b
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
They aren't needed. The template version for QList in qdatastream.h is
sufficient.
This is binary compatible, since the functions were never exported. It's
also source compatible, provided no one tried to do:
QDataStream & (*fptr)(QDataStream &, QStringList &) = &operator>>;
Change-Id: I8a4449b416154b34c007ef6abacf2b112451028f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
qstringlist.h no longer includes qiodevice.h
Change-Id: I08b83400316cb0b43bde0b390a9430e589e79e10
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Even though the compiler supports it, the MSVC headers might do
something wrong and make compilation fail later due to attempting to
overload unsigned short with char16_t.
The _CHAR16_T definition comes from <cstddef>, so include that instead
of <stddef.h> in C++ mode.
Change-Id: Ifaeb1c92bde2db4ed4129507462391904afd6510
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
icl.exe behaves like cl.exe (MSVC), so we should use the MSVC-style of
__pragma instead of _Pragma.
Change-Id: Ieee740c430589c3bb1b964138f8bf7f58b8d2892
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
We cannot use override in the Q_OBJECT macro, so tell Clang not to warn
about our lack of use of the keyword in the three virtuals that Q_OBJECT
overrides when the user uses Q_DECL_OVERRIDE in their own functions.
We can't use Q_DECL_OVERRIDE for two reasons:
1) because that would trigger the warning in any and all virtual
overrides the user may have in their own class (and most of Qt)
2) because when Q_OBJECT is used in QObject, it's not overriding
anything -- it's the base declaration
For #2, we could add a different macro exclusively for QObject that moc
would expand, but it's unnecessary work.
Change-Id: Ic9cb7896f93f06f4e86b6a42dc08f96d257f7550
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
There's a lot of code now requiring it. Any compiler that doesn't
support the keyword is too old for Qt now. The last time anyone asked
about this macro was for QTBUG-27393 and we don't know which compiler
that was.
As a necessity, this patch contains a reversal of
a0c3a57aed
[ChangeLog][Compiler Specific Changes] Qt 5.5 now unconditionally uses
the "using" keyword. Compilers that do not support this keyword are
deprecated and will not be able to build Qt. Previous versions of Qt may
or may not compile, as no testing was done to ensure it worked.
Change-Id: Ief042f34aba555a095d1f342a0ee7ee9feadf42d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
This allows the time to be synchronized between different programs, as
opposed to how long it has been since the message pattern was first
parsed...
Change-Id: If8bdfa0d997ca418a5fcae40f8c34fb77f90d2aa
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Now it will say "MSVC 2015" instead of "MSVC _MSC_VER 1900".
Change-Id: I1546929aec205d0a9a62dcc39f20093664951048
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Wait for the subprocess to print "ready" before assuming that it is
ready to receive calls. waitForStarted() will return as soon as the
child is running, but it may not have registered on D-Bus yet.
This also solves the synchronization problem more elegantly than how
tst_qdbusmarshall.cpp was trying to do it.
Change-Id: I548dfba2677cc5a34ba50f4310c4d5baa98093b2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
The executables are not in the same dir as on Unix, so we need to use
QFINDTESTDATA to find them. The DESTDIR setting prevents qmake from
placing the executables in a "debug/" subdir.
Change-Id: I1d6d10e6f6f109f55fd9809dcf83da0386f38772
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Rohan was right in e88f9a92b7 to stabilize
the test and reset the state, but killing the subprocess is overkill.
All we need is to reset the state in both applications, which includes
disconnecting and reconnecting to the peer, to discard any sent but not
yet received messages.
Change-Id: Ie01392e6e63bd70ef8345217d3fc641ed63c7aba
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
QDBusServer::address() will return an empty QString, which caused the
tests to fail later with no apparent reason.
Change-Id: I86f448dfc67a6cdb27ecda2d490f335766cfaf4f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
This allows the tests to be run on Windows too by using TCP socket
connections instead of requiring Unix sockets. The tests shouldn't have
hardcoded the path, which came from QDBusServer anyway. Now the tests
simply defer to QDBusServer.
This is a slight behavior change for Windows, but not one that should
matter since anyone who was using the default constructor resulted in a
QDBusServer that failed to listen.
[ChangeLog][QtDBus][QDBusServer] Fixed a bug that made QDBusServer's
default constructor try to bind to a Unix socket on non-Unix systems.
Now QDBusServer will attempt to bind to a TCP socket instead.
Change-Id: I2a126019671c2d90257e739ed3aff7938d1fe946
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
QLibrary does not append the version suffix on Windows by itself, since
there's no established practice on how to do this. The MinGW builds of
dbus-1 call it "libdbus-1-3.dll", so we need append the suffix
ourselves.
Unfortunately, other names like "dbus-1.dll" have been seen in the wild,
so we need to try both basenames (Windows doesn't prepend the "lib"
prefix). Both basenames work on Unix, so give "libdbus-1" on Unix since
that will result in one fewer stat.
Change-Id: I92506df5fd30c7674216568406bf86b25bf646b8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
No need to loop twice to add the "native" entries, since they are added
by the helper function anyway.
Change-Id: I9caabc6fc4973a90b483840815769b1351947a89
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Basically, introduce a small check for this corner-case situation.
Setting a model doesn't just store a pointer, but also resets the current
index, changes the line edit completion model, and so on, and seems silly
to trigger changes in such cases.
[ChangeLog][QtWidgets][QComboBox] A QComboBox does not reset itself any
more when setting the same model more than once.
Change-Id: If028b36cdfaa5552c156dd900e123ca9a04d4e3d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Added the function pointer to addTransition to take
advantage of the new connect syntax.
[ChangeLog][QtCore][State Machine] Added an addTransition() overload that
takes a pointer-to-member for the signal triggering the transition.
Change-Id: Ic97f7983839217ca0c8484b269d38221cbe804e3
Task-number: QTBUG-40293
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
[ChangeLog][QPA][Xcb] GLX and EGL code paths are now dynamically
resolved, making it possible for one build of a plugin to use both code
paths. Default is to use the GLX code path if available. This can be
overwritten by specifying QT_XCB_GL_INTEGRATION=xcb_egl as an
evnironment variable. Enable qt.xcb.glintegration.debug to get debug log
output of what integration is used
Change-Id: Ia9fa95fcca3d901b91dadb8c98a695fea0ae3b1e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
The cookies may contain sensitive information. so we should not store cookies in disk cache.
Task-number: QTBUG-42546
Change-Id: I6331bdd766445af41f55bfaf0e9132b75dd7957f
Reviewed-by: Jeongmin Kim <jm86.kim@lge.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Glibc will use the intrinsics for 32- and 64-bit, but didn't for 16-bit
(probably because GCC didn't document it until version 4.8), so this
commit will make us access the intrinsics directly the intrisincs for
all type sizes.
Additionally, this will get us access to the compiler intrisics even
without Glibc, such as when building against uclibc or Bionic.
Another benefit is that both Clang and ICC will use the MOVBE
instruction on Atom and Haswell architectures.
Change-Id: I39d1891f479887d719d69ebe4ac92ac9bfeda8af
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
QFile::readAll could be asked to read a file that is over 1 GB in size
and thus cause an assertion:
ASSERT failure in qAllocMore: "Requested size is too large!", ...
The idea behind the existing code was correct, but the value was wrong.
It prevented overflow of the integer size request, but didn't prevent
overflowing the storage size.
Change-Id: I072e6e419f47b639454f3fd96deb0f88d03e960c
Reviewed-by: Martin Smith <martin.smith@digia.com>
The BSD4 code (including OS X) calls sysctl and if that fails, it sets
cores to -1. Similarly, the generic Unix code calls sysconf() and
assigns the returned value to cores, but sysconf can return -1 on
failure.
Change-Id: I9e521d366e9c42f36c2ba20a37e7a74539ddb8f4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Put also processing of control activation into initial timer check for possibly
pending mouse release event.
[ChangeLog][QtWidgets][QScrollBar] Fixed a bug where the valueChanged() signal
was emitted twice if a connected slot took too much time.
Task-number: QTBUG-42871
Change-Id: I7bad5279ef84463a033b55256d241d4445374081
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Add a functions to dump out texts character by character and
as code.
Task-number: QTBUG-43191
Change-Id: I1ac17f2485563f909b71bb1fbd1fd595d1d94223
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
On Android, none of the file system paths used for QFINDTESTDATA
currently are suitable. We do have the possibility of putting
test data in qrc, but in cases where the test is specifically
testing access to the regular file system, we need a way to
find files there as well. We add a fifth step when all other
fail, which searches the current active directory for the data.
Change-Id: I4f02f8530b5843eb282bd112ea03ed6a476593d6
Reviewed-by: BogDan Vatra <bogdan@kde.org>
QStandardPaths::writableLocation() is documented to return the
empty string if no matching writable location can be determined.
This is the case for e.g. FontsLocation and ApplicationsLocation on
Android. We need to still accept this as a valid response.
Change-Id: I2824e9dcfd41b1c24dbf3896b7ae9b5260e9accd
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
The test expects all the files to reside in the file system,
both for loading the runtime resources and for comparisons.
Since we can't deploy directly to the file system on Android,
we go via qrc and extract the files on startup instead.
Change-Id: I17ff8985cb17dbfc45f0fb692ca46558bb5c5cdc
Reviewed-by: BogDan Vatra <bogdan@kde.org>
This fixes a regression introduced with
c09e9f71173a698670d6c728291ee24f53d50800 which caused the lineedit to
clear the whole text when an invalid character was entered into a lineedit
with an echo mode that was not Normal and a validator was set.
Now if undo() is called directly then it will still clear the text as it
is considered to be called as a user. Whereas the validation will take
care of the invalid entry by using internalUndo() as before which avoids
the clearing of the entire text.
Task-number: QTBUG-29318
Change-Id: I5ff5777a75ab864de2217441b5f518f50646bd8f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>