Our iOS deployment target is now 8, so this code will never be executed.
Change-Id: I7dd4001c01d7c8c2e8e977753cb3fa246b19ce06
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
This allows us to retrieve the current OS type without constructing an
instance of the class, and it's also constexpr.
Change-Id: I8b32a1aebeb8139fe3fcf146e5de558fa1060bb8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The leap second record sizes were not properly taken into account. The
comments in the code were right, but not the code itself. Fortunately,
on most Linux systems the leap seconds are not stored in the tzfiles, so
we never ran into a parsing issue.
Task-number: QTBUG-63205
Change-Id: I6e1fe42ae4b742a7b811fffd14e4a57f5d142f97
Reviewed-by: Maximilian Baumgartner
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Now that we accept STL datatypes in our ABI, expose a factory
function that takes a std::future<void>, and hide the QThread
subclass in our implementation. This also solves the problem
of a non-exported polymorphic class that would generate duplicate
vtables / typeinfo in all TUs.
Change-Id: I70a5c301e7c589de1a4a189db39b86b956d1ba0d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Avoid an unnecessary call to the slow base implementation on
buffered TCP socket.
Change-Id: Icc823b416b267aa8e0c1106b20872df9ef0e22d7
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
"generate" is better than "get", and we already have "generate(it, it)"
which uses std::generate(). This changes:
- get32() → generate()
- get64() → generate64() and QRandomGenerator64::generate()
- getReal() → generateDouble()
Change-Id: I6e1fe42ae4b742a7b811fffd14e5d7bd69abcdb3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
It was an oversight in 83729ad7a1
that this constructor is still in use in other modules. And in fact
we cannot remove public constructors without deprecating them first.
Task-number: QTBUG-63355
Change-Id: I64dbf9bc54c0bf6be7157f047b548d3b2c5bc2ed
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
It was already revamped a fair bit 2 years ago
Replaced Q_NULLPTR with nullptr.
Added a minimum size to the progressbar dialog.
Update the label if a redirect is rejected.
Improve the overwrite dialog message.
Replaced the documentation image.
Task-number: QTBUG-60628
Change-Id: I0fb70d90e1d6ca84a8307bd6ea4ea1ce220feeaf
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Remaining uses of Q_DECL_FINAL are in:
src/corelib/global/qcompilerdetection.h
src/corelib/global/qglobal.cpp
(definition and documentation of Q_DECL_FINAL)
src/tools/moc/moc.cpp
tests/auto/tools/moc/
(supported for moc for Q_DECL_FINAL)
Change-Id: I0d28946c9c3f9d37d0b303db86079129014de1f3
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
We should only copy the minimum bytes-per-line when saving an image.
Task-number: QTBUG-30515
Change-Id: Idd34a389cf88210c3f127599ccf54d27d3ec9a06
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Fix copyrights, update signal-slot connection syntax, use some simple
C++11 features (member-initializers, 'auto'), delete some data-members
(where a local variable is enough), where possible - use data-memebrs
as sub-objects (instead of heap allocated).
Task-number: QTBUG-60628
Change-Id: Ia440d8471eafb47481c0d010175c907037bae841
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
From the announcement[1]
- The GNU C Library will now detect when /etc/resolv.conf has been
modified and reload the changed configuration. The new resolver
option “no-reload” (RES_NORELOAD) disables this behavior.
Since glibc can do it, we don't have to call res_init before every
single getaddrinfo() call. And since we don't need to call res_init, we
don't need to load libresolv.so at all, until we need res_ninit.
We won't do it even if the user configured "no-reload" in
/etc/resolv.conf or RES_NORELOAD in the res variable -- let's assume
that it is the intent, like when /etc/resolv.conf is known to never
change.
[1] https://sourceware.org/ml/libc-alpha/2017-08/msg00010.html
Change-Id: I3868166e5efc45538544fffd14d738d40c375fd1
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Due to the complex event forwarding logic between QCompleter,
QComboBox, QLineEdit and QWidgetLineControl, in some cases the
same single user return key press could result in duplicated
activated() signals being emitted by QComboBox. The first one
would be emitted because QLineEdit emitted editingFinished()
as a result of QCompleter::eventFilter() having forwarded the
return key press event to QComboBox. The second one, would
happen right after, as QCompleter::eventFilter() would process
the same event on behalf of its popup.
(We recall that QCompleter is installed as its own popup event
filter. That's also the case for the completer's widget, although
the purpose there is limited to focus-out events).
The current fix consists on skipping the emit as a result of
QLineEdit::editingFinished() if the completer's popup is still
active. For this to be accurate, it helps to test whether the
completer's popup is visible, so we will not be hiding it in
QWidgetLineControl::processKeyEvent() anymore. Indeed, we know
that if the popup is visible, that means that processKeyEvent()
was called after being forwarded by the completer's popup event
filter. Furthermore, the popup will be hidden by its event filter
shortly after it returns from said event forwarding call.
Based on a patch by Alexey Chernov <4ernov@gmail.com>.
Task-number: QTBUG-51858
Task-number: QTBUG-51889
Change-Id: I013f6c3000ae37b5b0ec20eaf5cf7746c9c903e3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
QCompleter::popup() is used to lazily create the popup itself.
However, we oftentimes call this function only to check if the
popup is visible.
Change-Id: I55531e1e6810c02a44f5f65124cf641b1a89de69
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
We end up calling setUpLayout() quite a few times and, in
particular, every time we add a new tab. Even if the tab
widget is hidden, we set the layout item margins to ensure
that whatever layout will contain the tab widget can get
the proper sizing.
For all practical purposes, layout item margins don't depend
on the contents itself, but are rather a simple constant
returned by the style. This means that QStyleOptionTabWidgetFrame
::tabBarSize, among a few other properties, is not needed
right away. This property in particular is quite expensive
to compute because it requires measuring the text size of each
tab. This can lead to a quadratic behavior: the size of each
tab's text will be computed for each tab we add. Besides, text
size computing has become a relatively expensive function in
itself (see QTBUG-53151, for example).
The current solution just uses a partially initialized style
option object for the sole purpose of getting the tab widget's
layout item margins from the style. The performance improvements
detailed show the creation time for QTabWidget with the specified
amount of tabs (times in ms):
Tabs Before After
-------------------
1 6 5
5 6 6
10 8 6
50 57 17
100 178 21
200 673 33
Task-number: QTBUG-55126
Change-Id: I79505dbd0014f6ed185da28047d8b68f9462ba94
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Previously we pretended that there is only one touch device; but in fact,
different trackpads have different deviceIDs, and this may be useful
in some scenarios to tell them apart, as on other platforms.
So far we don't expect to get touch events from actual touchscreens
though, because macOS only turns single-touch events into mouse events
and does not interpret gestures on touchscreens. So there isn't API
which can distinguish touchscreens from touchpads as far as we know.
QCocoaTouch::getTouchDevice() takes the type as a parameter, just in
case this changes some day.
Change-Id: I56228471363235c5d0cc2a55a35a3c3288f3b1a1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
QtQuick is beginning to have a use for this, to distinguish native
gestures which come from actual trackpad rather than from the "core pointer".
It might as well use a real device ID instead of making one up,
as it has to do for the core pointer.
So far on macOS, the device ID isn't a real one; but that can be fixed,
as the qCDebug lines demonstrate (different trackpads have different IDs).
Change-Id: I5841deb1c4cc0b77a3b1df70904f70b3d2d71853
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
MariaDB allows only a single call to mysql_library_end(), all subsequent calls
to mysql_library_init() or any other API call will fail. Since QMYSQLDriver
calls mysql_library_end() function whenever the refcount drops to 0, this
breaks applications that close and reopen database connections.
This change registers call to mysql_library_init() via qAddPostRoutine()
when compiled against MariaDB, so that we only call it once.
Task-number: QTBUG-63108
Change-Id: I22c1f0c5b081216f12596a32748dca25cae919e9
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
The libraries are now 'libssl-1_1' and 'libcrypto-1_1', not 'ssleay32' or
'libeay32'. 64-bit versions also have -x64 suffix in their names.
Task-number: QTBUG-62692
Change-Id: Ic15bf8f8271d0f6266cb9d2143e292ddba643ded
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
All Qt applications crash on startup on macOS 10.13 with an
infinite recursion in -[QNSWindow sendEvent:].
This reverts commit a980250a66.
Change-Id: I155a89e61b1695f18627bf158389eb130b98751a
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
It's included unconditionally from qxcbconnection.cpp and qxcbscreen.h.
Task-number: QTBUG-53537
Change-Id: I6e1fe42ae4b742a7b811fffd14e5d374155660f3
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
When QT_SCALE_FACTOR=1.5 or other decimal, QWidget
draw QGraphicsEffect in error size. Use QPaintDevice::devicePixelRatioF
instead QPaintDevice::devicePixelRatio() will fix it.
Change-Id: I423e224d73b948ecdeca0e6b24c51f12a724a0ba
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
IBus engines that call HidePreeditText() or ShowPreeditText() not work
correctly on Qt5 because the ibus platforminputcontext plugin does not
implement this functions.
Patch-By: Fuminobu Takeyama
Task-number: QTBUG-48412
Change-Id: I936d4c46518b5bee7c5ad2b03d8c24202ab1074e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Takao Fujiwara <takao.fujiwara1@gmail.com>
Commit 12c5264d9a fixed the calculation of
SHA-3 in QCryptographicHash: we were previously calculating Keccak.
Unfortunately, turns out that replacing the algorithm wasn't the best
idea: there are people who need to compare with the result obtained from
a previous version of Qt and stored somewhere. This commit restores the
enum values 7 through 10 to mean Keccak and moves SHA-3 to 12 through
15. The "Sha3_nnn" enums will switch between the two according to the
QT_SHA3_KECCAK_COMPAT macro.
[ChangeLog][Important Behavior Changes] This version of Qt restores
compatibility with pre-5.9.0 calculation of QCryptographicHash
algorithms that were labelled "Sha3_nnn": that is, applications compiled
with old versions of Qt will continue using the Keccak algorithm.
Applications recompiled with this version will use SHA-3, unless
QT_SHA3_KECCAK_COMPAT is #define'd prior to #include
<QCryptographicHash>.
[ChangeLog][Binary Compatibility Note] This version of Qt changes the
values assigned to enumerations QCryptographicHash::Sha3_nnn.
Applications compiled with this version and using those enumerations
will not work with Qt 5.9.0 and 5.9.1, unless QT_SHA3_KECCAK_COMPAT is
defined.
Task-number: QTBUG-62025
Discussed-at: http://lists.qt-project.org/pipermail/development/2017-September/030818.html
Change-Id: I6e1fe42ae4b742a7b811fffd14e418fc04f096c3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Nowadays, there is no need for this additional timer. It was intended to
forcibly disconnect the socket if an appropriate write notification has
not arrived. After several fixes in the notification system this does
not occur anymore, because otherwise we might have seen the hangs in the
regular data transmitting.
Also, it can break a delaying disconnect of the socket, if a write chunk
is large enough.
Task-number: QTBUG-63000
Change-Id: I9b9fd46af0209f9ce006a6d5ee5bfac9ea85482d
Reviewed-by: Anthony Groyer <anthony.groyer@airliquide.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Introduce nullptr and override. Change the ready/valid columns to
use check marks. Right-align the numerical columns. Add a shortcut
to refresh. Sort by path, making sure the root volume is first.
Task-number: QTBUG-60635
Change-Id: I74cda7647f544902aaf4d2a0ab76986f1523aa6f
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
The comment was back-to-front on the meaning it needed to address; and
the #if-ery used a deprecated define, now changed to match what
sanity-bot asked for.
Change-Id: I0a971ab2e405e5908066da86964d67c8b852f114
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This autotest is blacklisted as it is deemed flaky.
Task-number: QTBUG-63262
Change-Id: I216985e81d1c1cb3528fd8a005be48cad2a31ab7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This autotest is blacklisted as it is deemed flaky.
Task-number: QTBUG-63260
Change-Id: I3e83bcb0dbbe4fbf9d5c16f764fbeeca2b52d10c
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
When focus is put back onto an itemview and the current item is editable
then the WA_InputMethodEnabled attribute should be set. Likewise this
should be set/unset when the current index changes too, depending on
whether the index is editable or not.
Change-Id: Iaea075e669efd21bdaa89a49c500c449272d098b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Log only relevant input events which are ignored. This reduces the
output when COIN re-runs failing item view tests with full debug
output enabled.
Change-Id: Ifce9a56fdf313b7572baff9de8fb298b38e8b33a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Remaining uses of Q_NULLPTR are in:
src/corelib/global/qcompilerdetection.h
(definition and documentation of Q_NULLPTR)
tests/manual/qcursor/qcursorhighdpi/main.cpp
(a test executable compilable both under Qt4 and Qt5)
Change-Id: If6b074d91486e9b784138f4514f5c6d072acda9a
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Remaining uses of Q_DECL_OVERRIDE are in:
src/corelib/global/qcompilerdetection.h
src/corelib/global/qglobal.cpp
doc/global/qt-cpp-defines.qdocconf
(definition and documentation of Q_DECL_OVERRIDE)
tests/manual/qcursor/qcursorhighdpi/main.cpp
(a test executable compilable both under Qt4 and Qt5)
Change-Id: Ib9b05d829add69e98a86238274b6a1fcb19b49ba
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
...to the screen, where it belongs.
Task-number: QTBUG-63088
Change-Id: I4bfc4c259f91431d12851f888a7d044e43856d63
Reviewed-by: Andy Nichols <andy.nichols@qt.io>