Commit Graph

28186 Commits

Author SHA1 Message Date
Friedemann Kleint
d2c6294bd5 Diaglib: Add class LogWidget.
Add a class to display debug messages, providing convenience functions for
installing and formatting parameters like indentation. It prints a startup
message containing relevant information about Qt.

Change-Id: Id0a19adbb5953a6ded1a8e692f242b63748e7273
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-06-09 20:16:47 +00:00
Thiago Macieira
b05741937c Plug padding holes in QHostAddressPrivate
On ABIs where quint64 is aligned on 8-byte boundaries (such 32-bit
Windows and all 64-bit systems), there was a padding hole of 4 bytes
between QHostAddressPrivate::a and the anonymous union. If we move the
member to after the union, there is no hole anymore.

That operation causes the tail padding to grow from 3 to 7 bytes. Since
we also don't need full 32 bits for the protocol, we can shrink the
structure by 8 bytes on those architectures and by 4 bytes on 32-bit
Unix systems.

Change-Id: I461e9fc7199748faa187ffff1415d6601a7bd777
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-06-09 15:59:24 +00:00
Thiago Macieira
7835b260a9 configure: check whether std::atomic<T> works for function pointers
And ask the user to apply one of the patches we're carrying to their
Standard Libraries.

Change-Id: I7e6338336dd6468ead24ffff141139c79056922e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-06-09 15:58:23 +00:00
Thiago Macieira
0a78d918f0 Replace qAllocMore with a pair of more useful functions
The first is "exact", not "more": qCalculateBlockSize. It ensures that
there's no overflow in multiplying, adding the header size or when
converting back to an int.

The second is the replacement for qAllocMore: it calculates the block
size like the first, but increases the block size to accommodate future
appends. The number of elements that fit in the block is also returned.

Task-number: QTBUG-41230
Change-Id: I52dd43c12685407bb9a6ffff13f5da09f816e667
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-06-09 15:32:14 +00:00
Thiago Macieira
43ff604f94 x86: Fix build with BMI but no LZCNT extensions
The GCC builtins for clzs and ctzs are enabled when the x86 extension
for LZCNT and TZCNT are enabled. The use of only __BMI__ in commit
f5f47987ce was incorrect.

But GCC needs both BMI and LZCNT enabled to enable this builtin.

Change-Id: I1cc7601489634e96833cfffd145647e9fc9f2f51
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2016-06-09 15:29:25 +00:00
Anton Kudryavtsev
7a4ce3cbcc QString: remove unnecessary copy in replace()
When a copy is needed, replace_helper() takes
care of that for us.

Change-Id: I9e5c89cb70b2902c96062a9edaf77fedda6ddb2c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-08 06:24:08 +00:00
Louai Al-Khanji
cd21da3922 examples/corelib/mimetypebrowser: Fix no-widgets build
Change-Id: Iea8cbc791bc2bb990c4d550c890ccd5f5ca17bd6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-06-07 17:55:28 +00:00
Liang Qi
57057f76ad Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	.qmake.conf
	config.tests/unix/nis/nis.cpp
	mkspecs/unsupported/freebsd-g++/qplatformdefs.h
	src/corelib/tools/qdatetime.cpp
	src/corelib/tools/qsimd.cpp
	src/corelib/tools/qsimd_p.h
	src/network/access/access.pri
	src/network/access/qnetworkreplynsurlconnectionimpl.mm
	src/network/access/qnetworkreplynsurlconnectionimpl_p.h
	src/plugins/platforms/cocoa/qnsview.mm
	src/plugins/printsupport/windows/qwindowsprintdevice.cpp
	tests/auto/corelib/kernel/qobject/tst_qobject.cpp
	tests/auto/network/access/qnetworkreply/BLACKLIST
	tests/auto/widgets/widgets/qopenglwidget/BLACKLIST

Change-Id: I4b32055bbf922392ef0264fd403405416fffee57
2016-06-06 09:04:55 +02:00
Volker Krause
dc0ae02ebc CMake: Add imported target for qdoc.
Change-Id: Ic950a4171830c83fb44cab13f79e593e5ea1ed52
Reviewed-by: Stephen Kelly <ske@ableton.com>
2016-06-05 08:38:38 +00:00
Friedemann Kleint
fd70978693 Diaglib: Extend class information for QWidget dumps.
Output the class hierarchy until a base class within QtWidgets is found.

Change-Id: I0ecee22e2ead1dea8b39cce8ca2f0739290aac22
Reviewed-by: Alexandru Croitor <alexandru.croitor@theqtcompany.com>
2016-06-04 18:49:27 +00:00
Friedemann Kleint
95f1f6f719 tst_QTemporaryFile: Run in temporary directory.
The test leaks a file (named qt_...xxx) in QDir::tempPath(). Moreover,
when tests fail, it can happen that more files are leaked and subsequent
runs do not recover since the check for non-existence of those files fails.

Change-Id: Iaea6d09ee7c271903a1b9c63e263c19f9e90bba9
Reviewed-by: David Faure <david.faure@kdab.com>
2016-06-04 18:48:52 +00:00
Friedemann Kleint
23bed9f820 Remove tst_QWidget::immediateRepaintAfterShow().
It tested whether a paint event was received when calling QWidget::repaint()
right after QWidget::show() without waiting for the window to be exposed.

This caused a QEvent::UpdateRequest to be sent, which ended up in
QWidgetBackingStore::sync() which returns after checking
QWidgetBackingStore::discardSyncRequest(), since Qt::WA_Mapped is not set
on the non-exposed widget.

The test passed on Windows since it contains one call to
QCoreApplication::processEvents() which causes the the initial WM_PAINT
message to be processed in QWindowsWindow::handleWmPaint() which calls
QWindowSystemInterface::flushWindowSystemEvents() and causes Qt::WA_Mapped
to be set. This seems counter to the intention of the test.

Remove the test since it won't pass anymore in Qt 5 unless Qt::WA_Mapped is set.

Task-number: QTBUG-26424
Task-number: QTBUG-38327
Task-number: QTBUG-39842
Change-Id: Iede026d52825dcf1f2e9014a316d26d260309214
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-06-04 18:47:54 +00:00
Gabriel de Dietrich
cf19b06f22 Cocoa QPA: Mute mouse dragging warnings
While probably valid, these warnings are beyond the
user's control, and more likely a sign of Qt's own
expectations or misbehavior. So, we should not annoy
the users with them.

This change introduces the same logging category as
3ee01f7403 in 5.7 as is a partial backport to
simplify a subsequent 5.6 to 5.7 merge.

Change-Id: Ica2e3b1c5bc372923fd823b5d7d537d319835685
Task-number: QTBUG-42846
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-06-04 18:39:33 +00:00
Morten Johan Sørvig
22667483e1 Blacklist modalDialogClosingOneOfTwoModal on OS X
Passes locally (on 10.10), but seems to have become
unstable on the CI system.

Task-number: QTBUG-53790
Change-Id: I0432fca4121b97bcdd6cec529fc4e148dfb8c1ab
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-06-04 18:36:04 +00:00
Oliver Wolff
265d91da0d WinRT: Rename connectToHost/handleConnectionEstablished
The two functions are merged and also renamed.
handleConnectionEstablished indicates that the
operation succeeded, but that is not necessarily
the case.

Change-Id: I66a4181a5693353fc9507785a6e6bbb8d5300a4b
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-06-04 18:28:47 +00:00
Oliver Wolff
372e3c8592 WinRT: Early return in case of network error
Change-Id: I7c410732f41b86f39b41fd1dccd07815e5ca4e45
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-06-04 18:28:42 +00:00
Richard J. Moore
8c7d6b94d5 Detect if the 'openssl' is really libressl at configure time.
Qt does not support libressl which reports itself as openssl but uses
a high version number. This means that we expect it to have features
that it doesn't and will fail to build. Instead detect this situation
at configure time and disable the ssl support.

Change-Id: I73cca4d1544df2aaca0723c38ba63758c287ec41
Reviewed-by: Ralf Nolden <nolden@kde.org>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-06-04 18:11:19 +00:00
Ralf Nolden
4fc7971478 NetBSD/OpenBSD: Compile fix and proper detection of pipe2
Add the necessary defines for HAVE_PIPE2 for NetBSD and OpenBSD depending
on OS version when pipe2(2) was added. This also fixes the compile error
on NetBSD if -Werror=unused-function for ignore_sigpipe() as the
HAVE_PIPE2 tree is prior to O_NOSIGPIPE in create_pipe().

Change-Id: Ic8f875e34ef826a7bf046c77588afecaa097deca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-06-04 18:11:12 +00:00
Maurice Kalinowski
9c01fdb2ba winrt: Fix compilation for 10586 SDK
The current implementation of drag and drop requires Redstone 2 Update
(SDK version 14322) to be fully functional. The API is limited for
previous versions.

However, this mostly affects passing allowed operations between sender
and receiver, the rest is mostly functional still.

Once RedStone 2 is out (estimated July 2016) we can bump the minimum SDK
version to 14322.

Task-number: QTBUG-50827
Change-Id: I5bab9d36a228d68c1809c241a64168d48c353335
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-06-04 13:37:03 +00:00
Leena Miettinen
c2d4c3588c Doc: Fix examples install path
The example directory name for Qt Test module is qtestlib.
Without this change, Qt Creator cannot find the tutorial
files and tags them "broken" in the Welcome mode.

Change-Id: Ib2de0cd2263aa1651abb697f9f03ecd8eb871ca2
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-06-03 10:40:47 +00:00
Laszlo Agocs
0a8d3f914c evdev: Stop reading on ENODEV
Touch does this correctly for some time already. Keyboard and mouse do not, leading
to flooding the console with the Could not read from ... warning for ever when using
the 'static' device discovery (no libudev) and unplugging a mouse or keyboard.

Change-Id: I6bef44fbed4bc21cc2736b28d1166bf2b7d90edc
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-06-03 10:18:28 +00:00
Leena Miettinen
06f7f3fd36 Doc: Describe QMAKE_EXTENSION_STATICLIB in qmake Manual
Task-number: QTBUG-44176
Change-Id: I6f7ad50793b05585ba661cbe187d7619a36cafe5
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-06-03 09:52:21 +00:00
BogDan Vatra
492cfe7002 Android: remove unused plugins
These plugins can't be used on Android, but they are built, installed
and also bundled into every .apk file.

Change-Id: I3326c913282af5bd43e1c732de9ae2f255711414
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
2016-06-03 09:47:09 +00:00
Anton Kudryavtsev
86b612d037 QXmlStreamWriter: don't call virtual QTextCodec::name() twice
Just cache and reuse result.

Change-Id: I2ada2eced7c272c041013d35b59eeb176ed04659
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-03 08:38:26 +00:00
Thiago Macieira
3b3ca5dead tst_QObject: Test if the new connect style works with virtual bases
Change-Id: I87e17314d8b24ae983b1fffd1453abe1e395bbd1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-06-02 20:52:56 +00:00
Thiago Macieira
7b8a553a13 Remove the code for QObject::connect for non-C++11 compilers
It's required now in Qt 5.7 (at least the required features of rvalue
references and variadic templates)

Change-Id: I87e17314d8b24ae983b1fffd145364c52f9bb6c3
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-06-02 20:52:53 +00:00
Anton Kudryavtsev
84bd6a83a0 QTextDocument: use QString::replace() for replacing
... instead of homebrew algorithm.
Saves some memory allocations and some text size.

Change-Id: I3abb49d3b247dbb132688ea99e6eae731e31615c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-02 17:20:44 +00:00
Anton Kudryavtsev
f046205526 QTextDocument: use QL1S::size() to get size of internal string
... instead of call of qstrlen(), because of ctor of QL1S
already do this work for us. The old code is Qt4 legacy.

Change-Id: I449ce7ea481af0efeade258d2cd5652db1f1a8b1
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2016-06-02 17:20:05 +00:00
Anton Kudryavtsev
6030e63037 QtGui: use QStringRef to optimize memory allocation
Replace substring functions that return QString with
corresponding functions that return QStringRef where
it's possible.

Create QString from QStringRef only where necessary.

Change-Id: Id83c60cc7568b20ef008b51c582cfdf466a47e35
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-02 12:57:42 +00:00
Anton Kudryavtsev
90988a2c67 QFontDatabase: append substitutes directly to the family list
Don't create tmp list.

Change-Id: I1aa80f1fb5589eb01ad2a41cf028b920a618a636
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-02 09:44:24 +00:00
Liang Qi
688f70634c Merge remote-tracking branch 'origin/5.6.1' into 5.6
This merge also blacklists a flaky tst_QGL::clipTest test on
OpenSUSE 13.1.

Conflicts:
	src/network/socket/qnativesocketengine_winrt.cpp
	tests/auto/opengl/qgl/BLACKLIST

Task-number: QTBUG-53133
Change-Id: I14b431aa5a189b7dd1d3e2dfff767d15df20fde3
2016-06-02 06:01:25 +02:00
Thiago Macieira
e81877218b Revert "QObject::connect: reduce generated code size for statics and functors"
This reverts commit 2e4191eadc. The change
is backwards compatible but not forwards, so it can't appear past the .0
release.

Change-Id: I390c5e80795a9b3b27f6edcab79f7892a79c3564
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-06-01 23:41:31 +00:00
Marc Mutz
bbb440bab2 QJsonValue: fix use-after-free in assignment operator
The assignment operator of a String QJsonValue that holds
the only remaining reference to the QString::Data block
was freeing the block before obtaining its own reference,
leading to a use-after-free in the case where *this was
passed as 'other' (self-assignment).

Fixed by reformulating the assignment operator in terms
of the copy ctor, using the copy-swap idiom, with the
twist that QJsonValue doesn't, yet, have a swap member
function, so we use three per-member qSwap()s.

Change-Id: I3c5ccc4d9f32c7593af3fc6a0edbf12b7feb1391
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-06-01 20:59:16 +00:00
Volker Krause
9fdeaf602e Add Q_ENUM for QNetworkAccessManager::NetworkAccessibility.
This is needed for generic property access to work correctly.

Change-Id: I88cd40238a8caf8df6c71b22e2fa0c4d5655a88a
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-06-01 14:22:24 +00:00
Alexandru Croitor
a1de7c40f4 Blacklist tst_QOpenGLWidget::stackWidgetOpaqueChildIsVisible test.
It fails randomly on Windows, possibly due to timing issues.

Change-Id: I0ef74f203455eb4ea8aeee4c8fc9bf1fbf6fb8ff
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-06-01 11:17:31 +00:00
Ralf Nolden
0720569b15 OpenBSD: add /etc/ssl as cert dir
Add the /etc/ssl default path to the list of certificate directories for OpenBSD.


Change-Id: I13dff6a219e2c848501ec9bf191160a48f919515
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-06-01 10:36:01 +00:00
Ralf Nolden
9dd58c6239 Compile fix: OpenBSD does not have <arpa/nameser_compat.h>
Fix compiling under OpenBSD by using Q_OS_OPENBSD define for missing
include file and adding required typedef. Obtained from OpenBSD ports
patches for qt-5.5.1 at
http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/x11/qt5/patches/

Change-Id: Ide223bffb6b116e8341d0eb39329af4d7a0be6a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-06-01 10:35:54 +00:00
Ralf Nolden
d96057328a Compile fix: add OpenBSD define for ffsll usage
On OpenBSD, ffsll needs to be defined to compile. This is the
same change as in commit 725a9c2702
for NetBSD.

Change-Id: I3060caa10950a9419084a12de8c88a2f98b34d07
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-06-01 10:35:48 +00:00
Ralf Nolden
3432742caa Merge BSD implementations of QLockFilePrivate::processNameByPid()
Until now, several solutions for the implementations of
processNameByPid() on BSD systems existed:
- one for FreeBSD using libutil through kinfo_getproc()
  using sysctl() implicitly
- one for GNU/kFreeBSD using sysctl() explicitly added in commit
  a8f4fa217d

OpenBSD and NetBSD also had different approaches in their ports patches
using kvm() and sysctl(). The code unifies this for all BSDs using
sysctl().

Change-Id: Iced9ef01e5966d8688f464f51024a7ed562e26a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
2016-06-01 10:35:39 +00:00
Eskil Abrahamsen Blomfeldt
8fb29ed259 Don't alter input string in QTextLayout with ShowLineAndParagraphSeparators
When ShowLineAndParagraphSeparators was set, we would replace the
separator character in the user's string in some cases, since we never
detached from the input string and just const_cast the pointer to the
shared buffer.

[ChangeLog][QtGui][Text] Fixed bug where a QTextLayout with
ShowLineAndParagraphSeparators would modify the layout's input
string.

Task-number: QTBUG-42033
Change-Id: I92f9100b750f16e52b38b718245c13e5c4a0ebb9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2016-06-01 10:04:02 +00:00
Anton Kudryavtsev
a24b90a21c Gui: use const (and const APIs) more
For CoW types, prefer const methods to avoid needless detach()ing.

Change-Id: I88d08d499e1be72c1f6d983fecdcee513df18aa2
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-06-01 09:35:29 +00:00
Milla Pohjanheimo
d11abc8bd7 Blacklisting a flaky tst_QGL::clipTest test on OpenSUSE 13.1
Based on discussion with Laszlo, we are blacklisting this test.

Task-number: QTBUG-53133
Change-Id: I08a5192ebcefd7b093c79872e0dfaddb794cab57
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2016-06-01 04:36:54 +00:00
Andy Nichols
58408ffa1b Add install target to mac widget examples
Change-Id: I524ba3fcc82a6ef015241d90f212059ae7772443
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-06-01 02:30:45 +00:00
Morten Johan Sørvig
0b401d74e6 Platformsupport: Don't include dbus on darwin.
This created a false dependency from the cocoa platform
plugin to QtDBus, which caused macdeployqt to deploy
it.

This change is for libplatformsupport only, and has
no effect on QtDBus usage in general.

Change-Id: I35f342574a6497ff88a785e93eef1acdea8b1452
Task-number: QTBUG-48015
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-06-01 02:30:27 +00:00
Jake Petroules
7cbafa8de7 Call a function in the MySQL configure test to make sure it links.
This fixes a problem where the configure test may produce a false
positive on iOS if a copy of libmysql for OS X is located, due to the
fact that linking to a dynamic library of a different architecture than
expected is not (yet) an error.

Change-Id: Id41765f49e31d9c9c3becc3436ff5a69b160b8e0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-06-01 02:30:03 +00:00
Jake Petroules
a160bd4fcc Fix bugs causing Thin font weights to be ignored or mishandled.
Task-number: QTBUG-53196
Change-Id: If12b3cab3d8de5e0e452fca844b0a484c29e9e86
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2016-06-01 02:29:51 +00:00
Thiago Macieira
2e4191eadc QObject::connect: reduce generated code size for statics and functors
Instead of placing the assignment of false in the impl() function, move
it to the inline QSlotObjectBase::compare() function. That means it's
assigned in one place (two, actually, inside qobject.cpp), instead of
for every static member, non-member or functor we connect or disconnect.

Change-Id: I87e17314d8b24ae983b1fffd1453623ad4c4dcb2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-05-31 19:40:03 +00:00
Maurice Kalinowski
bb30da895e winrt: fix compilation without drag and drop support
Change-Id: Ifd0d2238e8dacffe34753d95e12cccfd13519c55
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-05-31 11:54:08 +00:00
Maurice Kalinowski
e8ff3c8cbc winrt: fix drag pixmap support
Previously dragging only displayed the type of operation provided by the
system. Now, in case a pixmap is specified, an image is shown.

Also incorporated some cleanups.

Task-number: QTBUG-50827
Change-Id: I471e2081eabfed014b08d189538d1d62cdb7248e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-05-31 11:54:03 +00:00
Maurice Kalinowski
94f319a2bb winrt: enable drag support
Allow applications to initiate drag operations.

Task-number: QTBUG-50827
Change-Id: I3c29b54756af1af24544f49803305f0c95d8b7f9
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-05-31 11:53:59 +00:00