Commit Graph

33731 Commits

Author SHA1 Message Date
Edward Welbourne
515b905150 Adapt qmake's raw-string parser to avoid confusion by macros
A macro name ending in R might expand to a string; if this precedes a
string constant, we're juxtaposing the strings.  My first parser for
raw strings would mistake it for a raw string instead, ignoring the
part of the identifier before R.  Re-worked the exploration of what
came before the string to catch these cases, too.

The backwards parsing would also allow any messy jumble of [RLUu8]* as
prefix for the string; but in fact R must (if present) be last in the
prefix and *it* can have at most one prefix, [LUu] or u8.  Anything
else is an identifier that happens to precede the string.  Reworked
the parsing to allow only one prefix and not treat R specially unless
it's immediately (modulo BSNL) before the string's open-quotes.

Add link to the cppreference page about string literals, on which the
grammar now parsed is based.

Added a test for the issue this addresses.
Verified that this fails on 5.6, dev and 5.9 without the fix.
Expanded the existing test to cover R-with-prefix cases.

Task-number: QTBUG-55633
Change-Id: I541486c2ec909cfb42050907c84bee83ead4a2f4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-08-24 14:27:50 +00:00
Thiago Macieira
797530c3f8 QHostInfo: Remove Darwin refusal to use getnameinfo(3)
This #if has been there since 0248ec4054b (Oct 2005), presumably due to
bugs reported after the Qt 4.0 release (the first containing QHostInfo).
Any macOS issues with getnameinfo() have long since been gone. I've
confirmed that it works on 10.9, 10.10, 10.11 and 10.12, so I'm
dropping the #ifndef.

[ChangeLog][Deprecation Notice] Starting with Qt 5.10, IPv6 support will
be mandatory for all platforms. Systems without proper IPv6 support,
such as the getaddrinfo() function or the proper socket address
structures, will not be able to build QtNetwork anymore.

Change-Id: I320d9d2f42284a69a4cbfffd14dd5bf479e5f678
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-08-24 03:47:14 +00:00
Thiago Macieira
643d19f87b QNetworkInterface: Fold the test for if_nameindex into the config test
No need to make workarounds for Android in the .cpp source. Just let it
fail (if it still has to fail).

Change-Id: Iaf4157b7efa2416d898cfffd14d94ebcb4d979be
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-08-24 03:47:12 +00:00
Thiago Macieira
94c4827a9f configure: Disable warnings in configure tests
No need to log them.

Change-Id: I3868166e5efc45538544fffd14d8c3cc0012ba12
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-08-24 03:47:10 +00:00
Giuseppe D'Angelo
f537dc0da2 PCRE2: upgrade to version 10.30
Minimal adjustments to config.h are necessary.

[ChangeLog][Third-Party Code] PCRE2 has been updated to version 10.30.

Change-Id: Iaca6a5ceffe4f5029212411eca8e2965ca7d9410
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2017-08-23 14:35:56 +00:00
Sérgio Martins
6522d4c487 Fix invalid placeholder name in tst_qsqlthread.cpp
Change-Id: I88c0c48888b86b58d85223ad1dc4cafdaea01d77
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2017-08-23 12:48:32 +00:00
BogDan Vatra
09ea013ae1 Use libc++ instead of libstdc++ when compiling with android-clang mkspec
clang+libc++ is the only supported way by Google nowadays.
libstdc++ is too old and already fails to build some C++11 apps
e.g. missing std::to_string().

android-g++ mkspec still uses libstdc++ and g++.

Use -isystem to include system headers instead of QMAKE_INCDIR_POST (-I).

Task-number: QTBUG-60455
Change-Id: Iba8b04594c2e5e2832e6cf480e4e52ff31ad4106
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2017-08-23 12:47:58 +00:00
Leena Miettinen
2740584e6d Doc: Update Qt Creator Manual link targets to match version 4.4
Change-Id: Ib784779b09f4bce38ada4833777f873ee510af16
Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2017-08-23 12:18:14 +00:00
Robert Loehning
a576954f9b QTableGenerator: Fix handling of illegal characters in fromBase8
Task-number: QTBUG-60387
Change-Id: I084c2b4a86439857e898e9adc7370c19961d0126
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-08-23 12:11:03 +00:00
Gabriel de Dietrich
b65e30c861 QWidget: Call appropriate QWindow method from setGeometry_sys()
When calling resize() from showEvent(), we'd set the full geometry
on the widget's QWindow. This resulted in the top-level window
being moved to the top-left corner, even though no other call to
move() or setGeometry() had happened before.

The solution consists on calling the proper QWindow methods depending
on whether setGeometry_sys() is called for a move, a resize or both.

Furthermore, this needs QWindow::resize() to set its position policy
to frame-exclusive. The documentation states that is already the case
and we're setting the full geometry on the platform window, so we need
to convey that bit of information.

This also solves the age-old conundrum: "### why do we have isMove as
a parameter?"

Change-Id: I2e00fd632929ade14b35ae5e6495ed1ab176d32f
Task-number: QTBUG-56277
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-08-23 08:42:44 +00:00
Friedemann Kleint
1bbad92e83 tst_QPrinter: Share printers in testPageRectAndPaperRect/testMargin
Speeds up testing by a factor of 2.

Task-number: QTBUG-61827
Change-Id: I9d6c9d9786d35af3083bc7e98beb9a79dbcc7e11
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2017-08-23 08:09:12 +00:00
Andy Shaw
c1cd8df84e Fix the test for non-English based setups
Unsetting the SOFTWARE environment variable will force lpstat to use
English for the output, so we can ensure that the test will pass
regardless of the language used for the machine.

Change-Id: Iddf5e8aadaa546ae3e0dd172df84e4e43ee02c2a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-08-23 08:07:37 +00:00
Friedemann Kleint
82e7bd689a tst_QPrinter: Disambiguate all file names
Introduce helper function which uses a number to build
unique names. Remove helper for deleting files since it
now uses a temporary directory. Add a few cases
that were overlooked in 88c68f4d9e.

Task-number: QTBUG-61827
Change-Id: I53355f99ffc3bfe6ad6994a5439710c9fa8cdad5
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2017-08-23 08:05:17 +00:00
Thiago Macieira
189e9c93d7 QTemporaryFile: Add support for Linux's O_TMPFILE
That means a file is never created, unless you ask for the name. There's
no chance of left-over temporary files being left behind. QSaveFile also
benefits from this, since the save file is not present on disk until
commit(). Unfortunately, QSaveFile must go through a temporary name
because linkat(2) cannot overwrite -- we need rename(2) for that (for
now).

[ChangeLog][Important Behavior Changes][QTemporaryFile] On Linux,
QTemporaryFile will attempt to create unnamed temporary files. If that
succeeds, open() will return true but exists() will be false. If you
call fileName() or any function that calls it, QTemporaryFile will give
the file a name, so most applications will not see a difference.

Change-Id: I1eba2b016de74620bfc8fffd14cc843e5b0919d0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-08-23 04:02:19 +00:00
Edward Welbourne
b6a6121128 Deprecate QDate methods using MonthNameType
These introduce an unwanted locale-dependency; clients should use
suitable QLocale methods instead.

Task-number: QTBUG-28581
Change-Id: Ie7dfe712c50b9f5da94e4b20af7b231d8963cbc9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-22 09:47:22 +00:00
Morten Johan Sørvig
8b3a120a3b macOS: Simplify and correct style mask determination
This function had accumulated a fair bit of accidental
complexity over the years.

- No early returns, make sure to preserve fullscreen
  state for all windows.

- Use windowIsPopupType() directly to set borderless
  for Qt::Popup (but not Qt::Tool).

- Handle Qt::Tool explicitly.

- Deduplicate Qt::CustomizeWindowMask handling.

- Remove case that used the absence of NSResizableWindowMask
  to remove the maximize button. Maximize is now
  disabled elsewhere (setWindowZoomButton). All windows
  now get NSResizableWindowMask by default.

- Qt::ForeignWindow now gets a standard window style
  mask instead of NSBorderlessWindowMask. The old
  code did not handle this case and left the mask
  value unmodified.

Change-Id: I56499e9f05c3f481b5a96e0507da2fb195f207fa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-22 08:06:31 +00:00
Giuseppe D'Angelo
12c5264d9a QCryptographicHash: re-add support for Keccak hashing
88a8feeacb fixed QCryptographicHash's
implementation of SHA-3 -- before, QCryptographicHash was
calculating Keccak, not SHA-3. The change however breaks downstreams
that were relying on the "wrong" values calculated by earlier
versions of Qt. To restore compatibility with such calculations,
add the support for Keccak back, as deprecated and to-be-removed
in Qt 6.

[ChangeLog][QtCore][QCryptographicHash] In order to preserve
compatibility with earlier versions of Qt, QCryptographicHash is
now able to calculate Keccak message digests.

Task-number: QTBUG-59770
Change-Id: I740684cb3d0774292fa837a06b444c73fb4eed52
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-22 07:54:31 +00:00
Thiago Macieira
9c112a37ba QFileSystemEngine::cloneFile: expand the Linux cloning process
FICLONE only works on (currently) btrfs and xfs, and then only if it's
the same mount, so it's of very limited use. There are a couple other
techniques we may try that do not involve I/O through user-space, though
not immediate:
 - sendfile(2) can be used on regular files, even across mountpoints
 - sendfile(2) can be used on block devices too, but we need to get the
   device's size first
 - splice(2) can be used on pipes (FIFOs)

We only implement the first technique (earlier iterations of this patch
implemented all).

Change-Id: I81480fdb578d4d43b3fcfffd14d4b47cd70495a3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-08-22 06:56:25 +00:00
Thiago Macieira
974b3adf8a QFileSystemEngine::cloneFile: add support for fcopyfile(3) on macOS
For some reason, fcopyfile(3) works on directories, so we need to make
we aren't operating in one.

Change-Id: I81480fdb578d4d43b3fcfffd14d4f2f485348515
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-08-22 06:56:16 +00:00
Thiago Macieira
26094982f8 Move the file-cloning code from QFSFileEngine to QFileSystemEngine
Change-Id: I02d22222fff64d4dbda4fffd14d1c1bbf48385ff
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-08-22 06:56:08 +00:00
Friedemann Kleint
1fc9c8d8f3 Windows QPA: Call raise unconditionally for popups
A case of nested Qt::WindowStaysOnTopHint may occur when
context menus are created on windows with Qt::WindowStaysOnTopHint
set. Raise the popup in that case.

Amends 329a029c36.

Task-number: QTBUG-62004
Change-Id: Ifb761edbd42b1447bec30735810c006d02e1aa97
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-08-22 06:18:03 +00:00
Jake Petroules
0f4cce2630 QOperatingSystemVersion: add Android Oreo (v8.0, API level 26)
[ChangeLog][Binary Compatibility Note] The variable
QOperatingSystemVersion::AndroidOreo was added in this release.
Code that uses this variable will not run under Qt 5.9.1.
If backwards compatibility is desired, use instead
  QOperatingSystemVersion(QOperatingSystemVersion::Android, 8)

Change-Id: I1da5a5577bf6b719e543a1ded1f9b912a83665c3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-22 05:45:17 +00:00
Morten Johan Sørvig
750a252b89 Blacklist tst_QMessageBox::defaultButton on osx ci
Has become flaky on CI. Does not fail locally.

Change-Id: I42938849571938db78b16a72c215442a69f7c2d5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-22 05:10:54 +00:00
Morten Johan Sørvig
d044b0b1e3 Remove timer checks from testQuitLock
This test sets up two timers:
	- a 100ms recurring timer
	- a series of 10 200ms single-shot timers.

After quitLock lets exec() return it then uses a signal
spy to check if the 100ms timer fired at least 17/20
of the times it should.

However there is no guarantee that the 100ms timer
will fire more often than the 200ms timer. If the
native timer callbacks happen at 500ms intervals then
Qt will fire both timers (once) at that interval.

In practice this seems to happen on macOS CI under
system load and/or with the test app napping.

The primary goal for the test is to verify that exec()
returns when it should; we can remove the timer signal
spy.

Remove testQuitLock from BLACKLIST.

Timely timer:

  524429311.389913 runLoopTimerCallback
  524429311.389979 200ms fire
  524429311.389997 100ms fire
  524429311.490056 runLoopTimerCallback
  524429311.490130 100ms fire
  524429311.589752 runLoopTimerCallback
  524429311.589929 200ms fire
  524429311.589976 100ms fire

Delayed timer:

  524429428.690887 runLoopTimerCallback
  524429428.691002 100ms fire
  524429428.691143 200ms fire
  524429433.692103 runLoopTimerCallback
  524429433.692205 100ms fire
  524429433.692331 200ms fire

Change-Id: Iff4faaa1de3741cf4e217949d5ed17d4e70c6af2
Task-number: QTBUG-61499
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-22 05:10:48 +00:00
Morten Johan Sørvig
1497e5853b QTestLib: Disable App Nap on macOS
App Nap may cause stalls or timer delays during test runs.

Change-Id: I828282d12127918439a9a2a4f7d7be6cac457b42
Task-number: QTBUG-61499
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-22 05:10:43 +00:00
Morten Johan Sørvig
8b8578a155 macOS: Add support for OpenGL Core Profile 4.1
NSOpenGLProfileVersion4_1Core is available starting
with macOS 10.10.

Task-number: QTBUG-62333
Change-Id: I75d8c3bc1093ff38c6ca1db2d2da50fd448a149f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-22 05:08:04 +00:00
Topi Reinio
2ea3c0d5f6 Doc: Clean up Qt::ApplicationAttribute docs
Move deprecated and obsoleted enum values to the end, as there already
was a category for them.

Fix linking to 'Q(Gui)Application'.

Update the usage of the name macOS.

To make the table more readable in online style, add zero-width spaces
to long strings, allowing browsers to word-break them, thus avoiding
text overflow/horizontal scroll bar.

Task-number: QTWEBSITE-783
Change-Id: I0a96156d24cba4a0405c4edd8d3829def30c69bf
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2017-08-21 12:31:56 +00:00
Tor Arne Vestbø
0a7eb034f4 macOS: Restore support for layered mode
After 871966 we now do drawing as a result of drawRect calls, but layer
backed mode was not taken into account. This restores support for both
pull and push-mode drawing in layer-backed mode.

Change-Id: I35039ee9eb4486206f9f92f8230df104473368c9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2017-08-21 10:18:12 +00:00
Paul Olav Tvete
4700a32f21 Android: stop composing before pasting new text
We have to exit composition mode before inserting text. Otherwise, the
state of the input method will be out of sync with the contents of the
text editor.

Task-number: QTBUG-61717
Change-Id: I58bf3988ae9e0acf3302e810e46bb0ebeda30d17
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-08-21 07:26:00 +00:00
David Faure
2282ca44e4 Fix compilation on 64-bit CPUs when QPROCESS_DEBUG is enabled
Change-Id: Iad4bea50805b59bd6e985f5830315a7437880b99
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-20 21:23:51 +00:00
Pier Luigi Fiorini
4e3917587b kms: Send enter and leave events to all screens
Propage event to all sibling screens resulting in enter and leave
events being properly sent.

Change-Id: Ia89d53105f6303fae3f304ce0920b5a4a24f86ae
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-08-20 10:38:13 +00:00
Tor Arne Vestbø
23697466ca Reduce usage of QDesktopWidget to resolve screen properties in QtWidgets
Removes the need to initialize QDesktopWidget, just to look up which
screen a widget would map to, the geometry of a screen, number of
screens, etc.

Change-Id: Ieb153b9ff6d3fba645fc528d6e430e8392f990bf
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-18 13:10:23 +00:00
Tor Arne Vestbø
52ad5afe1c macOS: Redraw window bottom corners after synchronous backing store flush
Flushing outside of the display cycle does not care about any ordering
between views, including the NSThemeFrame responsible for drawing the
rounded corners of the window.

Since Qt Widgets is doing a lot of synchronous flushing (for now, until
we plumb update() to requestUpdate(), or enable layer-backing), we add
a workaround that explicitly draws the corners after flushing, just like
the logic in [NSView displayIfNeeded]. This is the same workaround used
by WebKit: https://trac.webkit.org/changeset/85376/webkit

Change-Id: I884152cdb2685569704e577b64b5ae278ed82c21
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-18 13:10:21 +00:00
Shawn Rutledge
dfdb94410a Revert "macOS: Create NSView as initially hidden, to match QWindow behavior"
It seems to break the ability to grab an offscreen QQuickView.
That in turn breaks the tst_qquickimage::hugeImages autotest.
This reverts commit 096b56f336.

Task-number: QTBUG-62548
Change-Id: I11ce452341bfc2cc3cbc832b613c7366049b31d5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-18 12:40:01 +00:00
Eirik Aavitsland
73573fce29 Fix huge painting artefact of certain dashed lines
The artefacts appeared for square-capped dashed pens when the end of
the line fell a tiny fraction into the start of a new dash. At that
point in the dashing algorithm, accumulated precision errors in the
'length' variable could make it slightly differ from the actual length
between the start and end points of the line fragment. Although both
values would be "almost zero", the rasterizeLine() function's square
capping would make the error very visible; see the bug report.
Fix by calculating the precise length of the last line fragment.

Task-number: QTBUG-56969
Change-Id: I7b69c0d465649be61fb87ac7b8348f0c299486ee
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-08-18 11:37:19 +00:00
Joerg Bornemann
5f7287cfb6 Add MSVC manifest backup file to "clean" target
The $${TARGET}_manifest.bak file was not removed on "nmake clean".

Task-number: QTBUG-59827
Change-Id: Ia5b636f4917f3e7a2df8d753824b72e63d278005
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-08-18 10:46:59 +00:00
Oswald Buddenhagen
7cbd13b76a fix configure PSQL_*= being ignored, take 2
amends 09e2fc43ab.

Task-number: QTBUG-62402
Change-Id: I63ca700b12646e8be97735b67c1519b0b4625798
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-08-18 10:45:06 +00:00
Mårten Nordheim
7c4c93a76a Avoid dereferencing nullptr
Change-Id: Id9558fa1db6a7a8f29149e26c761450f58b74b81
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-08-18 10:36:01 +00:00
Eskil Abrahamsen Blomfeldt
b5d762ae87 macOS: Fix padding around tab label with icon
Change c12072c685 fixed a problem
where tab labels would overlap with the icons if the tab became
too small to contain the text. But it did not properly account
for the full area occupied by the icon, because the horizontal
padding is hardcoded to 4 in the mac style, whereas in the
common style (where the icon is drawn) it uses the pixel metric
for this.

In addition, the change only allocated space on the left side,
causing the label to no longer be centered.

Task-number: QTBUG-61235
Change-Id: Ieec4f7044584361f92045addbc8bbd81bd5c9fc7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2017-08-18 07:27:52 +00:00
Alex Trotsenko
362466c7d2 QProcess/Unix: fix possible race condition inside waitForXXX() loops
Calling QCoreApplication::processEvents() from a slot connected to the
readyRead() signal might cause desynchronization in the waitForXXX()
loop, if the process has been finished during the event processing.
This results in unnecessary timeouts and causes waitForFinished() to
fail unexpectedly.

So, a proposed solution is to check the state on each iteration of the
loop, as Windows implementation does.

Given issue is tested by tst_QProcess::processEventsInAReadyReadSlot()
which was unstable in CI.

Task-number: QTBUG-62584
Change-Id: I7438cf67b0163bbf49314008a9dc660c0977fb7b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-18 07:25:52 +00:00
BogDan Vatra
1cd91a0ee5 Android: Fix compile using ndkr15 clang and unified headers
Add missing includes

Change-Id: I6fd58c9ebb5a8099c99928e3a7a0cbf3aa23ba43
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-18 04:47:42 +00:00
BogDan Vatra
0027d73b02 Android: Dissable internal hack when using libc++
libc++ has proper wstring support

Change-Id: Ifae98676974bfd660b7f849d4466efc5486d3fca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-18 04:47:32 +00:00
Alex Trotsenko
3ce555a3de QProcessPrivate::tryReadFromChannel(): remove dead code
'readBytes == 0' condition is checked in the code above.

Change-Id: I9448f47939b174fdef9f0cd5413254d41a8b4273
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-17 18:27:23 +00:00
Andreas Hartmetz
90749ecf09 QLineEdit: Create a separate undo entry for each middle-click paste
Previously, a sequence of middle-click pastes produced just one undo
item to undo/redo all of the pastes at once.
The new code seems to be the intended way to paste the selection anyway.

Change-Id: Ifc2e9714628da9e394053ff8c34709578656f54d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-17 18:05:53 +00:00
BogDan Vatra
b525ec2eb0 Android: Fix compile with unified headers
Unified headers now defines _POSIX_THREAD_SAFE_FUNCTIONS but not all
libc functions are available in all Android API versions.

Change-Id: I01c94f0b89e7f8aa8575e7bbda28d9fe41a68ff1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-17 17:21:35 +00:00
BogDan Vatra
39852ce60f Android: Fix warning for __fp16
Change-Id: I65cd64dfc0ed357555e8b5276109303377a67e0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-08-17 15:19:28 +00:00
Paul Olav Tvete
2e1ad4335c Don't send extra mouse press to popups on dblClick
QWidget::event() will turn an unhandled double click into a
mouse press. Therefore, we must avoid sending a separate mouse press
in that case.

This copies the logic from 9063edef79,
the previous fix for QTBUG-25831, which only applied to the non-popup
case.

Task-number: QTBUG-25831
Change-Id: I616f398a5ebe1f95d4b65b9f6ce2fe39a6fad83e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-08-17 12:25:10 +00:00
Edward Welbourne
b9557296cb Fix crash when reading a PKCS12 file with no private key
The only reason our code wants PKCS12 files is for a private key, but
a valid file needn't contain one; and reading a file without lead to a
crash in QSslKeyPrivate::fromEVP_PKEY().  So check for missing key and
fail the load, since the file is useless to us.  Also ensure the
caller's pkey is initialized, as we aren't promised that
PKCS12_parse() will set it when there is no private key.

Add a test for this case (it crashes without the fix) and update the
instructions for how to generate test data to cover it also.
(Corrected the wording there, too; at the interactive prompt,
"providing no password" really provides an empty password.)

Task-number: QTBUG-62335
Change-Id: I617508b903f6d9dee40d539b7136b0be8bc2c747
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-08-17 06:43:49 +00:00
Thiago Macieira
0dee566e98 QFileSystemEngine: verify that the file name isn't empty
Making system calls with empty file names is not a good idea. When you
run qmake $srcdir, you see this in strace:

 stat("", 0x7ffed229e250)                = -1 ENOENT (No such file or directory)
(twice)

I've also inlined the isEmpty() function for better code generation.

Some functions take QSystemError and some don't. That needs to be
corrected at some point, possibly with something like std::expected.

Change-Id: I1eba2b016de74620bfc8fffd14ccbfa162f93631
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-08-17 04:45:29 +00:00
Giuseppe D'Angelo
d7db2b4359 QPicture: check that pictureFormat doesn't return dangling pointers
The function returns a const char * out of a QByteArray. We must
be sure that the QByteArray outlives the function, otherwise the
pointer returned would be dangling. Add an assertion for that.

Found by clazy.

Change-Id: I3416af4eb5ec79ddb3e4baf3bdcfe046b44d4225
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2017-08-16 16:19:52 +00:00