-ldl option was used unconditionally while libdl is not supported
when libc is static.
Add build test to configure which checks if libdl is supported.
QMAKE_LIBS_DYNLOAD in "src/corelib/plugin/plugin.pri" is now used only
if libdl is available.
qt_linux_find_symbol_sys from qlibrary_unix is now used only if
QT_NO_DYNAMIC_LIBRARY is not defined.
Initially reported by Buildroot autobuilder here:
http://autobuild.buildroot.net/results/a85/a85a1839a45fb6102e53131ecc8f6dadf92bcdc2
Change-Id: I0397472456efdc4f3ab5f24d01253bee8048a9d1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
In a case of having a non English system locale, then the face and name of
the font may be localized but will not match up what is in the registry.
Therefore we need to try with the English name if is possible that there
is one, so in the case of when registerAlias is false we should try to get
the English name if necessary.
Change-Id: Id1064b6f5263677320374dbddfad852f30f041c5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Otherwise platform backingstores providing QImages with extra pixels
would break horribly. The only such platform is wayland for now.
Previously the need to support this case was masked by the RGBA8888
image conversion that happened always with wayland due to its ARGB32_Pre
format. With the recent improvements this is not done anymore and so
the problems became apparent.
Task-number: QTBUG-50894
Change-Id: I27d7a1c8e25d152ca1227af1e2c38f7d4b6acbab
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
This fixes the crash introduced by
75b705fec8. The drag only needs to be ended
on the hide if it is actually in the middle of dragging. This enables the
case of dragging the dock widget out with the mouse to continue to work.
Task-number: QTBUG-50890
Change-Id: I72309dd40ee670319f2ff607ae201c46f8de4652
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
These functions appear to have been dead code always - even in the
earliest Qt4 releases!
Change-Id: Ie2a458092b45113782284cf8ed3aa11a018b60d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Also use the target window ("win") as context instead
of d->window.
Change-Id: I5b0fa3bb857526e4a4bc9c5e44670593da1dfe7c
Task-number: QTBUG-50487
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
A malformed bmp file header could specify a negative color table
size. The bmp handler would then return a QImage that claimed to be
valid, but actually was invalid, having an empty color table. This
would cause crash later, e.g. when attempting to paint it.
Change-Id: I7df7c40867557a82dbcee44c7de061226ff232c0
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
interface is a define under wince. This define is included even
with standard header includes already. It needs to be undefined
for using it.
Task-number: QTBUG-50853
Change-Id: Ie44681f03709848e9747a8aec11835c8d62aa409
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The depth cannot change. This means that RGB16 cannot be upgraded
to 8565 for example as that would be a 24 bit format whereas the
backingstores and the underlying platform may expect a 16 bit
format.
Task-number: QTBUG-50869
Change-Id: I648b39287d43a80fae8097a33bbf3b8bbdcb8816
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
The patch causes the window creation on reshowing nested QWidget
with native windows to create child windows with 0-parent handles,
which can have adverse effects on the various platforms.
The patch might be re-applied on top of
73c86fcb40.
This reverts commit 470c8b68df.
Task-number: QTBUG-43344
Task-number: QTBUG-50854
Change-Id: I2ad837c3800fc71cccf04d455d1b9c3600b233e7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
While investigating an unrelated rendering bug I noticed that the call
to drawRect here is essentially dead code. However, the original intent
seems to have been to draw a very subtle shadow within the scrollbar
groove, so let's re-enable it. Subjectively, it does add a nice touch,
especially with higher dpi screens.
Change-Id: Iebffe69ecf9c26be617f7e85bd95f85ed7b0fafe
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Jens Bache-Wiig <jensbw@gmail.com>
This is a convenient function which waits (timoutMS) for the runnable to be executed.
Change-Id: I2c0f262d3795c29961e8182b7ffc35a2c6f8a1f6
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Regression introduced in e3689949ba
Change-Id: I9d3e37733d933e037f04d3a6efaf05607e16d9c5
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Iterate only once over QJsonObject, create key list by
existing loop instead of create by QJsonObject::keys(),
which contains internal loop.
In common case if loop's statement is lightweight,
then effect of optimization is significant, and vice versa.
Also make addJsonArray() and addJsonObject() functions
more homogeneous.
Use reserve to optimize memory allocation.
Change-Id: Id122cd1becfd34bb06640876b1c79e1d396d2a6b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Set the right sub role (NSAccessibilitySecureTextFieldSubrole) and
return the bullet point character for the text contents. This alignes
the behavior with native widgets.
Change-Id: I7305e08dca61097dd8c050aed64c792c06de0a4d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
accessible\iaccessible2.cpp(1708,40) : warning: comparison of two values with different enumeration types ('IA2Role' and 'QAccessible::Role') [-Wenum-compare]
Q_STATIC_ASSERT(IA2_ROLE_COLOR_CHOOSER == QAccessible::ColorChooser);
Task-number: QTBUG-50804
Change-Id: I25a1f00fdbd687ff23f875542a6aa0cc0cab3d23
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
The enum needed a name to make that possible, of course.
The one overt int return -1 needed to be made explicitly Neither, too.
Change-Id: I3930bf03a7ee5e1619a1c74f9ca54faf6a6c5b2f
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
If argumentTypes is NULL then it is indeed not equal to the address of
a local static variable, so there is no need to follow the NULL-check
with a check that it's not equal to that non-NULL address.
Change-Id: I62362db747c0620b2195f7997368f026f535d57c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
When the window flags are changed for the widget then it is possible to
minimize the dockwidget via the titlebar. This will cause it to be ready
to start a drag internally but since the dockwidget never gets a mouse
release event it doesn't end it. Therefore it ends up being in an invalid
state later on when restored, so the endDrag() needs to happen in the hide
event to ensure this is not an issue later on.
Change-Id: Ia84bee96b9eed49896869e6a15d4de6d01964264
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Normally setting the mode again and again on each application startup
is not desirable as it takes time and considerably affects the application
startup experience.
However, in some cases (like shutting down the X server) the output
gets powered down and there seems to be no way to detect this. Here
setting the mode again becomes necessary. Until there is a better
solution, add an environment variable QT_QPA_EGLFS_ALWAYS_SET_MODE
which, upon a non-zero value, leads to always calling drmModeSetCrtc.
The issue is not specific to Qt, the same is visible with the NV examples
as they try to minimize redundant mode set calls in the same manner.
Change-Id: If2b5e3fda74e077a747dd03cee65c936560a5026
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Add qstrntod as an overload for qstrtod, which takes a len parameter,
so one can pass character arrays which are not null-terminated.
Change-Id: I8c1c6c3627043c1d6ec6eb712efa3abc9e5e9e00
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Similar to the existing methods for QDBusPlatformMenuItem. These methods
will be needed for implementing the D-Bus platform menu bar.
Change-Id: Iae3a5892b71fa9a7c72c323ee4b3ab2afd7d4d76
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Add support for ABS_MT_ORIENTATION value. Linux kernel multi-touch
protocol allows it to be in a wide range:
https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt,
but we need only to know whether the touch point rect is rotated
by 90 degress. So adjust the angle to the closest axis.
Change-Id: Ie20725dc4bef509e2f9b19571efc69502d00c019
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
It's only supposed to be included by clients of the library, and
confuses qmake's dependency resolution into thinking the header-only
features such as qtestkeyboard.h and qtestmouse.h are dependencies
of this source file.
Change-Id: I5fe73b752c1c491ee0088bced77f997696d96c62
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
To calculate the real count we need to use the actual fixed point
increment and can not use the floating point value increment wass based
on since it might round differently.
Includes auto-test by Gabriel de Dietrich.
Task-number: QTBUG-50153
Change-Id: Ia973088f361c90370fa20bac14a4b8f373b5d234
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The deprecation was introduced in 5.6
Change-Id: Ief6b749b40ec75c3c9f904caed8447bfb5ef5439
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Modern FreeBSD doesn't come with GCC by default anymore and doesn't even
provide the "gcc" or "g++" falback that OS X does. So there's no point
in keeping the freebsd-clang mkspec in unsupported/ since it's the only
one that works, or keeping the freebsd-g++* ones outside, as they won't
compile.
I'm not removing the GCC mkspecs because you can still install GCC from
the ports tree.
[ChangeLog][FreeBSD] The "freebsd-clang" mkspec is no longer in the
unsupported/ subdir. If you have scripts you use to build Qt, you'll need to
update them to say -platform freebsd-clang or remove the -platform argument.
Change-Id: I7a9e11d7b64a4cc78e24ffff142dfc11d3aabb1e
Reviewed-by: Raphael Kubo da Costa <rakuco@FreeBSD.org>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
On FreeBSD, this variable is defined as a common symbol in the object file
/usr/lib/crt1.o, which is injected into the final application by the
compiler. This means when linking any library, 'environ' cannot be found
and we can't use -Wl,-no-undefined on FreeBSD.
I don't know why this wasn't caught before. Most likely, we failed to
pass the linker flag until some recent change to the buildsystem.
qprocess_unix.cpp:279: undefined reference to `environ'
Change-Id: I7a9e11d7b64a4cc78e24ffff142e02dbf188bca5
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The qversiontagging.h inline assembly expands to:
.long qt_version_tag@GOTPCREL
Which, with GCC, Clang >= 3.7 and with the option -no-integrated-as in
previous versions, produces the proper relocation (a R_X86_64_GOTPCREL).
With Clang < 3.7, it instead produces a R_X86_64_32, which is unsuitable
for use in shared libraries: 32-bit displacement is insufficiently wide
and would produce linker errors like
obj/qftp.o: requires dynamic R_X86_64_32 reloc against 'qt_version_tag' which may overflow at runtime; recompile with -fPIC
Instead, force a 64-bit relocation (an R_X86_64_GOT64), which like the
32-bit version is simply an offset into the GOT of where the address of
the symbol is stored.
Task-number: QTBUG-50749
Change-Id: I7a9e11d7b64a4cc78e24ffff142e039c172b802c
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>