Commit Graph

29022 Commits

Author SHA1 Message Date
Olivier Goffart
34de4f6a15 moc: Fix a crash with malformed input
Do not increment 'data' past the buffer in case of invalid token.

Remove the left over qDebug so we can make a test.

Task-number: QTBUG-54609
Change-Id: I8f0dd3381fbdea3f07d3c05c9a44a16d92538117
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-07-15 09:37:45 +00:00
Friedemann Kleint
9a00ae8e24 Windows QPA: Add warning to setHasBorderInFullScreen()
Emit a warning when the function is called before show()
as it does not have any effect in that case.

Amends change 69839e55c1.

Task-number: QTBUG-41309
Change-Id: I7c2bb21735d8e41d525c5e00213b0e278ae5c774
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-07-15 09:08:32 +00:00
Friedemann Kleint
6bb0bc73c8 QWindowsTheme: Fix the available file icon sizes
Previously, QWindowsTheme had a hardcoded list of of available file icon sizes.
As the sizes depend on the Windows display scale factor, this can lead to
undesired scaling of icons.

Maintain an array of the standard sizes against which the sizes are
matched; refresh in display change.

Task-number: QTBUG-54561
Change-Id: If36de2f30c8a230cc7bd8eeb4dfc9f201aeda5e4
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-07-15 09:07:59 +00:00
Lars Knoll
8ee2a659d6 Don't mention private classes in our docs.
Change-Id: I2cb7443ffa9afac8160b9510df95a304936a01c9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-07-15 08:58:53 +00:00
Jędrzej Nowacki
493d4a0b65 Do not spin cpu unnecessarily in qhttpnetworkconnection test
QTRY_VERIFY seems to be a better solution.

Change-Id: I92f9d11c393d9a464716b9224da1fd9c2be956a7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-15 08:57:26 +00:00
Anton Kudryavtsev
e46e112eb1 Optimize string usage
Use QStringBuilder more.
Use QL1S directly, without QString construction.

Change-Id: Iad844391367681fc1013b9725403d009e7c346e6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-15 08:23:04 +00:00
Lars Knoll
c81f957457 Fix the linkerSupportsFlag configure test type
Change-Id: Iefc874958d1f6d2447f9774a9c3cdf6d7a3b885b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2016-07-15 06:52:25 +00:00
Olivier Goffart
120ba68882 QReadWriteLock fast path for tryLock without timeout
When one tries to lock without a timeout, there is no need to allocate
a QReadWriteLockPrivate as we will not wait on it.

Change-Id: I37c96a7fbc0c66fbdffe372f6089708cb2466fe3
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-15 06:33:56 +00:00
Andy Shaw
5d8a33a86c [iOS] Blacklist iOS with regards to bgra support
A number of devices are indicating that there is a problem with using
bgra so instead of blacklisting all of them individually it is best to
blacklist them all on the iOS platform. This ensures
QQuickItem::grabToImage() will work then.

Task-number: QTBUG-45902
Change-Id: I900857cfa996924469aaaeeee8037dc84a4fd575
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-07-15 06:05:44 +00:00
Thiago Macieira
a372cf5a80 Enable -WX (warnings are errors) for MSVC 2015
Change-Id: Ib57b52598e2f452985e9fffd1458b565f9bda0f8
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2016-07-15 01:54:06 +00:00
Allan Sandfeld Jensen
f222206e8d Remove unused NativeImage
Only the static method systemFormat of NativeImage was used, and only
from raster pixmaps for default formats.

This patch moves the method to qpixmap_raster.cpp.

Change-Id: Ic3cb673775693ea0595bad5e5f267a8dd1e8b0ec
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-07-14 21:50:46 +00:00
Oleksandr Tymoshenko
39da34853f Added QInputDeviceManager device tracking for bsdkeyboard and bsdmouse
After initialization bsdkeyboard and bsdmouse didn't notify
QInputDeviceManager about new input devices so parts of Qt that relied
on these notifications (like QFbCursor) were not aware about new
functionality.

Set number of keyboard/pointer devices to 1 when bsdkeyboard and
bsdmouse plugins successfully initialized

Change-Id: I440826d2b7f3653fd43e58df8239346ba1e8a223
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-07-14 18:32:40 +00:00
Lars Knoll
a013bec13e Add qtprintsupportglobal_p.h and fix qtprintsupportglobal.h
Include qtwidgetsglobal.h from qtprintsupportglobal.h.
Add qtprintsupportglobal_p.h.
Include those headers from all header files in the module.

Change-Id: I8d8b2012ee7d513172b985e13fdfeb3493d26d23
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-14 13:46:15 +00:00
Lars Knoll
8fc1cd085c Add qtwidgetsglobal.h and qtwidgetsglobal_p.h
The new modular configuration system requires one global
header per module, that is included by all other files in
this module.

That header will later on #include the configuration file
for Qt Widgets. For now it defines the Q_WIDGETS_EXPORT
macro for this library.

Change-Id: I6698989b952b9bac94d086d9f219e03c000f7d53
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-14 13:46:07 +00:00
Lars Knoll
64507c7165 Clean up qwindowdefs_win.h
The file lives in Qt Gui, but declares a few methods from
Qt Core and Widgets. All of those methods are actually mostly
unused, not documented and pretty trivial.

This patch removes the last few places the methods got used and
removes the declarations. The implementations should get removed
in a future release.

Change-Id: I2b609c29f403d2ed4824ff4346008be08b3fd067
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-07-14 13:46:03 +00:00
Lars Knoll
994d04883c Remove dead code
Change-Id: I4ece8a94c1ce8cac65fb1d90bb18267e22a4ea7a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-07-14 13:45:52 +00:00
Martin Smith
4038c07e5f qdoc: Documentation for qFuzzyIsNull() is added
The two versions of this function are now documented on the
global variables page.

Change-Id: Iee95e251d616f6c8b1b42458d23cbf64a70a5315
Task-number: QTBUG-50654
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-14 13:41:54 +00:00
Timur Pocheptsov
d7cb2fd44b QMacStyle::styleHint - test pixmap sizes
styleHint for SH_FocusFrame_Mask calls drawControl with a painter created
for pixmap. We only test pixmapSize.isValid(), but the size (0,0) is also 'isValid',
and we end up with a QPainter with an invalid paintEngine (null) crashing in
drawControl.

Task-number: QTBUG-54630
Change-Id: I84d1785f04ffb3e608812076a6d1bc36ffb92adc
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2016-07-14 11:03:14 +00:00
Timur Pocheptsov
205ff27260 HTTP2 - autotest
Add autotest for QHttp2ProtocolHandler. This patch contains  a very simplistic
"in-process HTTP2 server" for testing the protocol's basic logic/flow control/error
handling and emulating possible scenarios.

Task-number: QTBUG-50956
Change-Id: Ie02d3329c5182277a3c7c84f1bae8d02308e945d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-14 10:20:36 +00:00
Marc Mutz
5d935dca0c Remove (private) QString::expand(), port to (new) QString::resize(int, QChar)
We cannot really remove the function, since it's called from
inline code (QCharRef::op=(QChar)), but we can schedule it for
removal in Qt 6, and inline it into existing in-tree callers.

Change-Id: I3499f101dcb5ae908726b3673bf3526a04408db6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-14 06:54:16 +00:00
Marc Mutz
c2f4705f23 Add qHash(QHash) and qHash(QMultiHash)
The hash function is carefully designed to give the same result
as the straight-forward implementation of qHash(unordered_map),
which we'll probably add at some point, namely: std::accumulate
over a container of std::pair.

This is one reason to use std:: and not QPair in the implemen-
tation of qHash(QHash). The other is that qHash(QPair) uses a
bad hash combiner, which may xor out the 'seed' from the result.

We can't fix that until Qt 6, but the qHash(std::pair) overload
uses the well-known boost::hash_combine algorithm (implemented
in Qt as QtPrivate::QHashCombine), so we can use that.

I also trust std::pair to work without problems with reference
template arguments, while QPair only very recently gained a very
basic auto-test for reference parameters.

[ChangeLog][QtCore] Added qHash() overloads for QHash, QMultiHash.

Change-Id: I90879d8a99cf1aadb6e84ecc0c3704f52f3691da
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-14 06:53:48 +00:00
Lars Knoll
89152c57d8 Remove the -version-override command line arguments in configure.exe
Those are not supported on Unix configure and are not something
we should support IMO.

Also cleaned up setting a QMAKE_QT_VERSION_OVERRIDE variable
in qconfig.pri that's never used.

Change-Id: I470483660118368abf7bd8aba4a53a25d9ab8a40
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-14 06:07:09 +00:00
Lars Knoll
24f770ba24 Add qtdbusglobal.h and qtdbusglobal_p.h
The new modular configuration system requires one global
header per module, that is included by all other files in
this module.

QtDBus already had such a header, but its name (qdbusmacros.h) was
not in line with what's being used in all other modules. So
add a qtdbusglobal.h header, and turn qdbusmacros.h into a a forwarding
header to that new global header file.

Change-Id: Ib7eb2484c7b8b588eb89bf3290cb6c1c7c391fe2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-14 06:06:43 +00:00
Anton Kudryavtsev
7682542b4b Factor out qt_getImageText() and qt_getImageTextFromDescription()
... and re-use them in QImageReader, QJpegHandler, QPngHandler.

Change-Id: Iec89e47205f3c420e1e7eb4a2d3c1fbfe887fd8c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-14 05:53:48 +00:00
Thiago Macieira
aca0e367be Fix the Q_ATOMIC_xxx_IS_www_NATIVE macros with C++11
When I introduced this code in Qt 5.0, I made INT and POINTER be
SOMETIMES_NATIVE, but then later I made the specific sizes be
ALWAYS_NATIVE. That doesn't make sense.

Instead, use the macros from the C++11 <atomic> header.

Note that the member isXxxxNative() functions should not have been
constexpr. That's a defect I introduced in Qt 5.0.

Task-number: QTBUG-51315
Change-Id: I0c94a5c2846b48c8aea7ffff1436013e8686c153
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-13 21:15:30 +00:00
Lars Knoll
4cb3c3e15a Replace EXTRA_LIBS with EXTRA_LIBDIR and EXTRA_FRAMEWORKPATH
Now that -l and -fw options are gone, using a combined EXTRA_LIBS
makes no sense anymore and only complicates things.

Change-Id: Ic12bf482f3bed041aff7f0891f008b1f34ae2b4d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 19:51:34 +00:00
Lars Knoll
6f1ad48a91 Remove -fw and -l command line arguments
These arguments were nonsensical, as they would lead to every single Qt
module linking to those libraries. This was probably some left-over from
old times, when Qt was just a single library.

Change-Id: I0343a6df270fd0d2efa5333ba4e457670f5d0910
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 19:51:17 +00:00
Lars Knoll
1f3eab5536 Set QMAKE_DEFAULT_INC/LIBDIRS on MSVC
Change-Id: I19b60e178e7cc3cc5f73e5a9f252f886c8678c3d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 19:50:58 +00:00
Lars Knoll
c32ef0a725 Don't error out on preprocessor concatenation of two strings
"foo" ## "bar" doesn't make a lot of sense, but MSVC allows them
(although gcc errors out on them). Simply ignore the ## in this case
instead of aborting with an error.

Fixes parsing of the Windows winsock2.h header.

Task-number: QTBUG-54560
Change-Id: I84cd5fbb56a006cf379430708c955cf0da475cff
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-07-13 19:50:48 +00:00
Simon Hausmann
31b6760e64 Add missing logical bitwise operators to the little-endian storage classes
These make the (future) usage in declarative even more convenient.

Change-Id: I12c0fec1ea843d8acd2ee3fdf2a2189939bebd95
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-13 18:17:32 +00:00
Gabriel de Dietrich
21c8a66a15 QCocoaMenuBar: Sync items only when they are attached to a menu
Another one of Cocoa's capricious behaviors. Evidence shows that
the menu item's submenu property needs to be set before we can
set the item's hidden property. We ensure this is the case by
getting the NSMenuItem through QCocoaMenu::attachedItem() instead
of QCocoaMenuBar::nativeItemForMenu() in QCocoaMenuBar::syncMenu().

Change-Id: Id50356dae5f556fa3d745ba9a5982e5a72bf0ac2
Task-number: QTBUG-54637
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Jason Haslam <jason@scitools.com>
2016-07-13 17:48:06 +00:00
Andy Shaw
1e843b41b6 Mac: Read in the string with QString::fromUtf8() as it is UTF8 encoded
Task-number: QTBUG-47358
Change-Id: I50943867d3a57c4db4fe20e55e60d097742e9104
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: jian liang <jianliang79@gmail.com>
2016-07-13 16:55:48 +00:00
Jake Petroules
5cbe16be78 Set library strip flags on Apple platforms
This was missed in ab599a3931 when
QMAKE_STRIP was set as a side effect of adding support for separate
debug info.

Task-number: QTBUG-54212
Change-Id: I86dd040dbefec4c58879c7d029ed89dd8bad3daf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 16:50:47 +00:00
Oswald Buddenhagen
a42c9cfc28 generalize references to exclusive builds
exclusive_builds_post.prf (via default_post.prf) processes
debug_and_release into BUILDS, so .prfs which can rely on being
executed later (because they are loaded via CONFIG) can rely on BUILDS
and related variables.

Change-Id: I5677079ad5145bf493af17b4b60347208572fd21
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 14:27:07 +00:00
Oswald Buddenhagen
fc57a6587b remove redundant condition from private module use warning
the whole point of the check is ensuring that the message is printed
only once for each sub-project, so !build_pass alone is fully adequate.

Change-Id: Ib8f821ead6709efc9bfa935e1d05f8caba02a814
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-07-13 14:27:04 +00:00
Oswald Buddenhagen
3c8134958c fix raw data leak in $$absolute_path()
when the file name is empty, the path will be returned verbatim. this
must be considered when constructing the return value.

Task-number: QTBUG-54550
Change-Id: Ie108ed52275e66a154ef63bd6f7193f55b3e0454
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-07-13 14:27:01 +00:00
Oswald Buddenhagen
d459a6b0e0 fix calculations of worst-case size requirements for token buffer
Change-Id: I3aa4c736acec44f95a0a33c7baae9276568f684f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 14:26:58 +00:00
Oswald Buddenhagen
dacf3994ba fix custom functions inheriting other functions' arguments
Task-number: QTBUG-41830
Change-Id: Iba3eee4975a1ee671b7190e52c0efc9a18147c62
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 14:26:54 +00:00
Oswald Buddenhagen
1b4ea11332 make error() propagate from requires() and REQUIRES=
that can make sense if a function which determines the availability of
a dependency fails to do so for unexpected reasons.

Change-Id: If6cd113df25aee66830c120a2fab067c822a4543
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-07-13 14:26:49 +00:00
Oswald Buddenhagen
339b9706cc make error() propagate from custom replace functions
it didn't, which is rather unexpected.

Change-Id: I8cdb7b1490a8c2207809812b93cc65fbe23a1b98
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-07-13 14:26:46 +00:00
Oswald Buddenhagen
b27d4835c2 fix error() not propagating through if()
if() would simply "downgrade" a fatal error to a false condition, which
is certainly not expected.

Change-Id: Ie9c54f2bddf588856498bf795007b341b7c9363a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-07-13 14:26:42 +00:00
Samuel Gaist
07d3cbbe84 Add warning when using pkg-config with a Qt build with it disabled
This patch adds a warning that will be shown when link_pkgconfig is used
in a project but Qt's configuration has it disabled. This can happen
when Qt is built before pkg-config has been installed or if it's not
detected.

This will avoid user losing time trying to make pkg-config work while Qt
just ignores it.

Change-Id: Ieeff8dd6784b9430cfebef355855ec1be91bc96e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 14:26:38 +00:00
Friedemann Kleint
9131f6e561 QCompleter::setModel(): Restore completion role
When setting a QFileSystemModel as model, the completion role
is set to QFileSystemModel::FileNameRole. This needs to be reset
to the default Qt::EditRole when setting another model.

Task-number: QTBUG-54642
Change-Id: Ie78d5d417e008ad05a2f995bdbc218b3ad1bc49c
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2016-07-13 13:45:44 +00:00
Allan Sandfeld Jensen
690d6be542 Handle QVariantHash in QJsonDocument::fromVariant
It absence is just an oversight. The patch also adds test for the valid
inputs of the method.

[ChangeLog][QtCore][QJsonDocument] fromVariant can now take a QVariantHash argument.

Task-number: QTBUG-39751
Change-Id: I7e051413f930023db3cbb81452e77c56a7ceffe8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-13 10:58:02 +00:00
Friedemann Kleint
69b37630d1 Add "We mean it." warning to HTTP2 protocol handler headers
QtNetwork: qtbase/src/network/access/http2/http2frames_p.h does not have the "We mean it." warning
QtNetwork: qtbase/src/network/access/http2/http2protocol_p.h does not have the "We mean it." warning
QtNetwork: qtbase/src/network/access/http2/http2streams_p.h does not have the "We mean it." warning

Amends change  b2c0f9713c.

Task-number: QTBUG-50956
Change-Id: Ia266a4f8625d89745b3a2dcaff6b15a712e9cadc
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-13 10:45:08 +00:00
Friedemann Kleint
b767c26fb2 QtSql: Fix qmake warning about missing qsql.h
qsql.h is superseded by qtsqlglobal.h.
Amends change 7331d22c6f.

Change-Id: I6391f10c17649d52c598b24ea71f453a43ca1b0f
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2016-07-13 07:18:21 +00:00
Jędrzej Nowacki
aeb64c3e24 Avoid busy wait in qnetworkreply test
Change-Id: Ie45d298cbb2ec3854d3ca3d416b9ebeff6d363f1
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-13 07:11:36 +00:00
Ralf Nolden
4397a1b26c FreeBSD: move order of includes for compiling
The previous patch works for FreeBSD 10 but however not for 9 and 11
due to the order of includes. Move <sys/user.h> down to fix those compile
issues due to unknown types when user.h is included first.

Change-Id: Ica3d3ddf335a543c4a473e8b80d1667cb81667cf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-13 06:50:05 +00:00
Ralf Nolden
d6177b55ea OpenBSD: add X11R6/lib to QMAKE_RPATHDIR
As OpenBSD ships its own X11, linker errors occur when not explicitly
adding the X11R6/lib dir to rpath dirs.

Change-Id: I75991e9d7de115d2d212a017d9c8f9aa93cecc27
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-07-13 06:50:00 +00:00
Marc Mutz
5c46d07a7c Optimize QString::insert()
When the insertion position is not beyond end(), call
resize() instead of expand(), which fills the new size
with spaces, which, however would just be overwritten
by the following memmove().

Add some Q_UNLIKELY to indicate that we strongly
expect the resize() case to be the more common.

Change-Id: Iaf3215dd53c2cbd18f2fd8a5f80af8f6844944da
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Anton Kudryavtsev <a.kudryavtsev@netris.ru>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-07-13 06:33:07 +00:00