GCC said:
qtldurl.cpp:51:50: error: loop exit may only be reached after undefined behavior [-Werror=aggressive-loop-optimizations]
qtldurl.cpp:51:48: note: possible undefined statement is here
while (tldIndices[index] >= tldChunks[chunk] && chunk < tldChunkCount) {
^
That's because we check whether chunk is still valid (less than
tldChunkCount) after we've dereferenced tldChunks[chunk]. That is, we've
already read tldChunk[2].
Change-Id: I79b6a1ea9a2454813d6cce7596fc2bb6d972d097
Reviewed-by: David Faure <david.faure@kdab.com>
Platformsupport doesn't need network in order to compile and link.
Change-Id: Ifda2db9c39d89619ff21cbcd21dc5bf97fe58f55
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
This update explains how to use the optional 'square bracket' argument
for the link command (\l), the new single execution mode for qdoc, and
how to generate and use the QA pages.
Change-Id: I7232e05677c6ea97636cdb4fb20bd9708c83f311
Task-number: QTBUG-35495
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Commit 99357e32a0 introduces a change that
causes <cstddef> to be included instead of <stddef.h> under QNX. That causes
symbols such as size_t to be placed on the std namespace only - QNX does not
put those in the global namespace, since it is not really required by the
standard, and therefore the build fails.
Merry Xmas!
Change-Id: I70c6976203a9d7beadd0076e122e2ac633a4ba69
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The toolchain is basically the same as on Linux, so we can get the
program interpreter and print the build information when Qt5Core.so
is run.
Change-Id: I02a910e691622e24e882015716c5f74dd5a20c4a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Extend the support for pre-MIPS32 architectures (done mostly in
60b6b28c21) also to orderedMemoryFence.
Change-Id: I50b9091c16166b8434a07988053c1f901d528237
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When running the compositor on xcb the compositor backend will call
nativeResourceForWindow with EglDisplay as resource. When this is done
the window->handle() will be null and result in a crash. By returning
just the eglDisplay() when the window->handle() is null solves the
problem and also makes the compositor work.
Change-Id: I72f4341402facc8c44a41151c4f76d6447bd8070
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
...and get rid of workarounds for older versions,
which also makes the code more readable.
Change-Id: I087110c5f60cd664dad241776e1a0df901989c75
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Replace C-style cast with static_cast for casts from void*.
Change-Id: I4d6c602037e70afe2746a179a31fea4c5043c3d5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
There is no point in modifying font tables, so mark them RO for clarity.
Change-Id: I8ddbda9ace9c5a0eeabc0c5e5f64558060b5ee69
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This fixes the tst_QSqlQuery::isNull test case when run against a
MySQL database driver.
Change-Id: I8248ba956472bae97a64247594055e6f02840557
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
With toString(), it was printing "0.0.0.0", which is the same as
QHostAddress::AnyIPv4, making it difficult to tell the two apart.
Change-Id: I4668ec3337c25ddfdc2fa3bbacc83b9d34316b1f
Reviewed-by: Richard J. Moore <rich@kde.org>
There's no reason not to have it, and it allows better debug output.
[ChangeLog][QtWidgets][QSizePolicy] QSizePolicy::ControlTypes is now
introspectable through QSizePolicy's meta object.
Change-Id: Ia274c708f31e735e4605bd4769aa65a9b78d690f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Was including qtest_gui.h instead, for QT_WIDGETS_LIB.
Not a problem in practice, since qtest_widgets.h doesn't
currently add anything on top of qtest_gui.h. But that will
change soon.
Change-Id: I942870cddc7b1ccfda262e2fe26834594336dd0b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
qwindowsprintdevice.cpp:182:85: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
&& DeviceCapabilities((LPWSTR)m_id.utf16(), NULL, DC_PAPERSIZE, NULL, NULL) == paperCount
MinGW DeviceCapabilities is returning an int, although microsoft documents it as returning DWORD.
Change-Id: I3acd76dde0b8b83f8a785ec84e3413115c847cb2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QUdpSocket doesn't support binding to QHostAddress::Any and then joining
an IPv4 multicat group since QHostAddress::Any is really an IPv6 socket
with v6only = false. The test did check this case, but failed to ignore
the warning.
Change-Id: I62d782408319a6e566e0ff1a6081b706ac1f669c
Reviewed-by: Richard J. Moore <rich@kde.org>
The previous change (SHA 82c2118c) to provide better
than 1ms accuracy for timers on QNX is not safe.
According to the docs, ClockCycles is not guaranteed to
return consistent information if called from different
CPUs. While this can be addressed by locking the thread
to a single CPU, you wouldn't want to do that here.
On some systems (e.g. BB10) the behavior is extremely bad
since ClockCycles only has 32 bits of precision. This
results in overflows in the calculations making short
timers run very slowly (16ms timers were around 1s). Also
ClockCycles wraps in under three minutes causing even
more problems.
I've talked to the kernel developers and there is currently
nothing that will give you better than 1ms accuracy. An
individual program could use ClockCycles to calculate more
accurate times if they want.
It's not clear to me what benefit one would get with
increased accuracy. Unless I've missed something, these
times are only used to calculate timeouts for calls such as
select. These timeouts will themselves have the same
resolution as clock_gettime provides so the increased
accuracy would appear to be for naught.
Change-Id: Ia38b154ca41949becbd0b8558a9ff4ddd5e01a43
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
LOGFONT docs clearly states `lfFaceName` member is a null-terminated
string of length not longer than LF_FACESIZE, including trailing null.
This patch covers two cases at once:
1. If family name is longer than LF_FACESIZE - 1, it would be truncated
and terminated with null, to prevent memory access beyond
the LOGFONT instance.
2. If family name is a fromRawData QString, we don't assume it is
null-terminated either and guarantee trailing null ourselves.
Change-Id: I8f607efc7d0901537a4179e36cc51df94203f08d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
[ChangeLog][QtCore][QThreadPool] Added QThreadPool::cancel() which allows
removing from the job queue a job that hasn't been started yet.
Change-Id: Ib8f1c1f32a34f5eec8338c641d820b928e470164
Reviewed-by: Nick Shaforostoff <shafff@ukr.net>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
384388f2 introduced some checks, and used an assignment in an assert;
that sets off compiler warnings about expressions with side effects
into an assertion. Hence, that code needs to be reworked a bit.
Unfortunately, there's no single define we can use to know if
assertions are enabled or not in Qt, so simply use QT_NO_DEBUG
to enable/disable those checks. The actual "thread" data member
is kept around to avoid break ABI depending on debugging flags.
Change-Id: I8b07e7ff6f81359d6b0653a1d9cc2b720541d1b9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
This also unbreaks matching for scripts not covered
by qt_script_for_writing_system().
Change-Id: Iddf015281a57a9dbae2e09f0408359441b020df8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
When looking for engine of non-Common script and lookup in
the font cache failed, first check if we have already loaded that engine
for the same request but different script.
In general, this gives an arbitrary font engine a chance to be re-used
multiple times when request only differs in script, which saves a LOT
of memory (~10MB on my win7, after scrolling the QFontComboBox'es list).
Change-Id: I9c752ce65c27142237a0ed74b33742b6a8d90a24
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Behavior will agree with the docs.
[ChangeLog][QtGui][QWindow] lastWindowClosed will be emitted even if
quitOnLastWindowClosed is not set
Task-number: QTBUG-32956
Change-Id: I7bb269d53894859fee27e171eea7ad472ea86af0
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Previously QPlatformScreen was automatically deleting its QScreen
in ~QPlatformScreen(). That means that we cannot use QScreen's
methods when the screen is being removed, because doing so would
call virtual methods of QPlatformScreen. By that point the
QPlatformScreen subclass object does not exist anymore, and we
call the default implementation instead of the subclassed one, or
get a crash for the pure virtual methods. This happens for example
when removing a screen which contains a QWindow with some QML item
using QQuickScreenAttached.
This patch adds a QPlatformIntegration::destroyScreen() function,
which deletes the QScreen and later the QPlatformScreen.
~QPlatformScreen will still delete the QScreen if it was not deleted
with destroyScreen(), so code not ported to the new approach
will continue to work as before, with only a warning added.
Task-number: QTBUG-41141
Change-Id: Ie4a03dee08ceb4c3e94a81875411f6f723273fe1
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
The order is:
1) own header
2) own private header, if any
3) other headers
Commit f17d7a124f broke the order.
Change-Id: I7225024691db91fd936a057accdad65bacb3f979
Reviewed-by: Richard J. Moore <rich@kde.org>
Gesture events sent to a disappearing tooltip can crash. This can most
easily be seen by scrolling over a tooltip on OSX with a magic mouse
middle scroll gesture.
Task-number: QTBUG-42826
Change-Id: Id5510895f63297ca157e3d24a3f4e3a6034586e8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Include statvfs.h on all non-Linux and non-Solaris systems.
* Fix type of stat_buf structure on BSD.
Change-Id: I6336503082fafd7f6108cf95c079bdd329d2ea0f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
In case the foundry name was empty and foundry lookup has failed, don't
look for *any* foundry since it does exactly the same as previous call.
Change-Id: I2a81949df06c31e1ae6999a6bbbe973408d4b814
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
According to the documentation, the argument is called COPYONLY instead
of COPY_ONLY.
Fixes warning and ensures it works properly.
Change-Id: I643f5ea808aaaf94c3ee666ec39485e84ed38df1
Reviewed-by: Vishesh Handa <vhanda@kde.org>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
The EglDisplay and the Display is normally a PlatformIntegration wide
resource
Change-Id: Ie5382a2a0b34fbe1c506b5134bf581afbd7f5d99
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Fixes combo-boxes being too big and some alignment issues
that were not present in Qt4.
See screenshot in JIRA task.
Tested with QT_SMALL_COLORDIALOG too.
Task-number: QTBUG-43501
Change-Id: I2aefb64be1c5f3c4894149d85e1a12c9c0cc3d62
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This reverts commit 8c538d10da.
This patch, unfortunately, do not combine well with another
problematic code producing, as a result, a serious regression.
While the proper/better fix in Cocoa menu not found, I'm reverting
this patch.
Change-Id: I1ff03dbe12805da447cb3cfe3e2f231528bf1a16
Task-number: QTBUG-43471
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@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>