Commit Graph

35693 Commits

Author SHA1 Message Date
Liang Qi
794781e7cf Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
	src/plugins/platforms/cocoa/qnsview.mm
	src/plugins/platforms/cocoa/qnsview_mouse.mm
	src/testlib/testlib.pro

Change-Id: Ia0ce4243418fe6a485b0f290c67bd433b3b04ff2
2018-03-28 08:12:21 +02:00
Tor Arne Vestbø
f69d32b535 testlib: Ignore line locations from TAP reporter when running selftests
This is what the other reporters also do, in various forms.

Task-number: QTBUG-67351
Change-Id: I16f2c4e0991176145ee0fbcbbfeeda071603a3c2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-03-27 19:34:04 +00:00
Lars Knoll
3e91625b58 Fix QML integration of widgets
We need to mark the object as deleted before destroying
it's declarative data, otherwise all sorts of bad things
can happen.

This fixes the qwidgetsinqml autotest in qtdeclarative.

Change-Id: I05a645ebe1ca7a50c8927e3dbd9ebb5aaf369a71
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-03-27 18:34:13 +00:00
Gabriel de Dietrich
e83f1900f6 QMacStyle: Fix spinbox implicit height
We don't need to accommodate for the fake frame anymore.

Change-Id: I2d84441d4239e1ff68f640dffda1a0d1a97fa2b3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:44 +00:00
Gabriel de Dietrich
857e73e042 QMacStyle: Fix text color for disabled default buttons
Change-Id: I7c6ba0c3818a3e269e0350153cbde355bafd249a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:39 +00:00
Gabriel de Dietrich
76bec0c49a QMacStyle: Remove CT_ToolButton related dead code
sizeFromContents() just adds 10 points to the tool button
size and returns. Therefore, the HITheme code that used
to be shared with CT_PushButton becomes effectively dead.

Change-Id: Ib0519b0037ec3097a00e2c14067d851040853499
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:32 +00:00
Gabriel de Dietrich
50428e9727 QMacStyle: SE_PushButtonContents is HITheme-free
This also removes a few HITheme-related functions that
are no longer needed.

Change-Id: I356938d1e99f5fed106c945a94050fa35db58716
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:27 +00:00
Gabriel de Dietrich
2562fe35cf QMacStyle: Do manual button sizing for CT_PushButton
We guarantee the same sizes as previously with HITheme
for most common cases. Exotic cases may break and will
be fixed along the way.

Change-Id: I3e3e6ea702c7489c1cbaa821a30916f63c440c1f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-03-27 17:13:21 +00:00
Christian Ehrlicher
a91b91ae57 Benchmarks/QGraphicsItem: use testdata instead hard-coded values
tst_QGraphicsItem::setPos() was provided with test data
but it was not used.

Change-Id: I8ed2a1ef9940024e4a0e666276f0953706869ef7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-03-27 16:51:03 +00:00
Christian Ehrlicher
3c4ea1b3c6 Benchmark: move widgets benchmarks still in gui subdirectory to widgets
Move all widget-dependent benchmarks which were still in gui
subdirectory to widgets

Task-number: QTBUG-23129
Change-Id: I1359f1ea4036cacdfdbe08ff9ecdf1e2c75a005b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-03-27 16:50:44 +00:00
Andy Shaw
7775eb248a sqlite: Support using execBatch() with duplicated named placeholders
Also expands the tst_qsqlquery::batchExec() test to account for this
case and generally test the functionality. In addition it is made to be
more robust to avoid any discrepencies with the testing data. The test
in general is also cleaned up to enable more of it being tested with
the different database drivers where possible.

An expected fail is added for MySQL due to the fact that it has a bug
where null timestamp entries are being converted to the current
datetime when adding it as a bind value.

Change-Id: I0061bd1c69ae35b4858afc49420f13ce59cf48ae
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-03-27 16:50:19 +00:00
Christian Ehrlicher
e3fa4af68e qdoc: properly omit comments for enums marked with omitvalue
When a value is omitted with \omitvalue, the comment must be either
deleted or omitted with \omit .. \endomit. Otherwise the comment is
merged into the comment for the previous value

Change-Id: Ic5cfb20d36853526ae939529b4609712cd0eb341
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-03-27 16:50:10 +00:00
Christian Ehrlicher
acc629c1e8 Examples: replace QDesktopWidget::availableGeometry()/screenGeometry()
QDesktopWidget::availableGeometry()/screenGeometry() was deprecated in
5.11 and replaced with QScreen::availableGeometry()/screenGeometry()

Change-Id: I912a133971c41196f8f49754c28ce92711ff42bb
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-03-27 16:50:05 +00:00
Christian Ehrlicher
10db31f933 Examples: replace QDate::longMonthName()/longDayName()
QDate::longMonthName()/longDayName was deprecated in 5.10 and replaced
by QLocale::system().monthName()/dayName() in this case

Change-Id: I666cccfa1b8a437cc830804bbe3504511265ea9b
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-03-27 16:50:01 +00:00
Christian Ehrlicher
1c33e8945d Examples: replace deprecated QQuaternion::conjugate()
QQuaternion::conjugate() was deprecated with 5.5 and replaced by
QQuaternion::conjugated().

Change-Id: I0176e3db82e9ad793f60e1034a22b11832c8c44d
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
2018-03-27 16:49:58 +00:00
Alexander Volkov
c7ac077128 Doc: Fix description of QStyleOptionMenuItem::tabWidth
It is actually not the tab width but the width reserved
for the menu item's shortcut.

Change-Id: I801dff0c57256690f61c022156a80cf6ff530c43
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-03-27 16:16:38 +00:00
Alex Trotsenko
cdbd68fc2f Allow QWinEventNotifier to coexist with waiting functions
Many subclasses of QIODevice have a functionality to block execution
until some asynchronous I/O operation completes. In case we are using
QWinEventNotifier, a typical reimplemented waitFor{ReadyRead
|BytesWritten}() function could look like:

  if (WaitForSingleObject(notifier.handle(),...) == WAIT_OBJECT_0) {
      notifier.setEnabled(false);
      ResetEvent(notifier.handle());

      bool res = GetOverlappedResult(...);
      ...
      return true;
  }

Despite the fact that the operation ends synchronously, it leaves the
notifier in a state that indicates it has received the event, so its
next call to setEnabled(true) will produce a fake notification.

So, we should reset a notifier's history before enabling it again.

Change-Id: I62a9dd809ce6a7a40e9d8038f2a49299b36f8142
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-03-27 15:08:46 +00:00
Albert Astals Cid
09f3b19f98 cups: Honor installable options for Duplex
i.e. don't show the duplex options if you don't have the duplexer
hardware installed, otherwise you just get a conflict warning
selecting any duplex option which doesn't make any sense since it's
not something you can fix by other means than going out and
buying the missing hardware

Change-Id: Ief3fea5b86ab65b18765887b1c5d6d279ee337fa
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-27 12:02:37 +00:00
Albert Astals Cid
0fb3d21778 cups: Take conflicts for duplex and page size into account
Duplex and Page Size are not shown in the "Advanced" options tag
since they are more important options, this means we were not
taking them into account for ppd conflicts since we never set
their values in the ppd, we do use the new-style cups options for
them when printing

With this patch we add m_pageSizePpdOption and m_duplexPpdOption
to set the values to the ppd struct behind the scenes.

Change-Id: I48bd9fe93d0c08b7b8dd9620a07c56fc79cce13b
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-27 12:02:26 +00:00
Pablo Marcos Oltra
c2373fce3c macOS: Fix memory leak in systemCaCertificates
We were releasing only the memory of latest iteration since cfCerts
was being rewritten in every iteration, invalidating the RAII.
Hence, we need to define the variable within the loop to ensure the
object is released for every iteration.

Task-number: QTBUG-66937
Change-Id: Iaa9365168728337c6cdaac4aef686652903cf5a9
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-03-27 04:15:37 +00:00
Eirik Aavitsland
c7c41fa1c6 Fix QPainter save/restore of clipping enabled state
Clipping enabled state would not always be correctly restored for the
raster engine (other engines work fine). The raster engine's QClipData
object is sometimes shared between painter state objects on the
save/restore stack. QClipData has its own enabled flag, and this could
then come out of sync. Fix by making sure we sync the enabled state on
restore.

Task-number: QTBUG-58789
Change-Id: I81e6254ebb93df6e153bbef58e32a885273e3224
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-03-26 16:00:43 +00:00
Svenn-Arne Dragly
50cfbd6112 Animation: Fix case where QEasingCurve::valueForProgress returns nan
Previously, we would divide by zero in BezierEase::findTForX if factorT3
was zero when solving the cubic equation.

This change fixes the problem by adding solutions for the special cases
where the cubic equation can be reduced to a quadratic or linear
equation.

This change also adds tests that cover cases where the equation becomes
quadratic, linear or invalid.

Task-number: QTBUG-67061
Change-Id: I2b59f7e0392eb807663c3c8927509fd8b226ebc7
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
2018-03-26 15:53:10 +00:00
Thiago Macieira
411a4cb67c QNetworkInterface/Linux: fix support for P-t-P tunnels
The kernel stores the local address in IFA_LOCAL and the peer's address
in IFA_ADDRESS. My testing with loopback, Ethernet, WiFi, OpenVPN TAP
and TUN and Openconnect shows IFA_LOCAL is always passed and always
correct, so we could have used just that, but let's leave the use of
IFA_ADDRESS because that's also what all libcs' getifaddrs() do.

[ChangeLog][QtNetwork][QNetworkInterface] Fixed a regression in
reporting the local address of a point-to-point tunnel network
interface.

Task-number: QTBUG-67226
Change-Id: I04a43ee94975482f9e32fffd151eb393d1775580
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-03-26 15:17:38 +00:00
Friedemann Kleint
dbc983a513 Revert "Detect C standard and try using the most recent"
The change causes a crash when compiling the xkbcommon 3rdparty
library and compile failures (qtimageformats on Android).

This reverts commit a47cb14680.

Task-number: QTBUG-67326
Task-number: QTBUG-67327
Change-Id: I5ddc4eccad699e3eaec535fd6a63d11b0026b42e
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-03-26 15:10:33 +00:00
Filipe Azevedo
3d5fd088c3 Fix build issue on macOS
Change-Id: Ib3aa37242e9bf66c3fc3d232ead1e6ef4d4bc485
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-03-26 14:48:59 +00:00
Jesus Fernandez
0dd326ea7a Initialize m_cupsCodec
Ensure initialization of m_cupsCodec to nullptr. The codec is checking
the value of m_cupsCodec; but the initialization was conditional before
this patch.

Change-Id: I81751b7743e9956f31f17cead01dc05e268db7eb
Coverity-Id: 188700
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-26 14:44:03 +00:00
Eric Lemanissier
edf96b984d fixup oversight in rvalue overloads of operator+=() and operator<<()
ammends 4dee5446be

Change-Id: Ia0ca27644eb71815a93d6e76681b8a9e61a4e7ab
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-03-26 14:29:47 +00:00
Morten Johan Sørvig
ed4833465b Cocoa: Deliver window activation events synchronously
This prevents delivering queued activation events
to windows that have been hidden or destroyed.

Task-number: QTBUG-66536
Change-Id: I4edf86b6c8592751130f836876725c786452933c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-03-26 07:23:16 +00:00
Sergio Martins
a6d1456458 Add QTimer::connectTo(), a shorthand way of connecting to timeout()
There are a couple of Qt classes where you almost always use the
same signal, for example QTimer::timeout, QPushButton::clicked,
and QAction::triggered.

Simply doing timer.connectTo([]{}) is much more convenient, less
tedious and even fun.

Not overloading connect() as it would be confusing to see the
receiver as first argument.

And not naming it onTimeout, as that's a popular way of doing it in
other frameworks. People would assume you could use on* with any signal.
If we ever have on* it should be all or nothing.

[ChangeLog][QtCore] Added QTimer::connectTo(), a shorthand way of
connecting to the timeout() signal.

Change-Id: Ida57e5442b13d50972ed585c3ea7be07e3d8e8d2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-03-25 21:17:20 +00:00
Kevin Funk
02ed1b36da Remove CMake code for CMake < 3.1
This removes the following functions from Qt5CoreMacros:
- qt5_use_modules(...)

Task-number: QTBUG-63519
Change-Id: I59769060a3a93686bf319b558c0ede55755fdb70
Reviewed-by: David Faure <david.faure@kdab.com>
2018-03-24 22:31:18 +00:00
Alexander Volkov
863c688749 Update READMEs for the bundled xcb sources and the xcb plugin
Mention that the current minimal supported version of
libxcb is 1.9.1, amend 1f5d791708.

Remove the specific package requirements for the xcb plugin:
these lists are unmaintained and besides there are build
instructions in wiki: https://wiki.qt.io/Building_Qt_5_from_Git

Change-Id: I4d5b0583a1ba8a355ee1649022845f6c8d520e7c
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-03-23 19:01:25 +00:00
Mårten Nordheim
a7dda3e4b0 Move QWindowsCaRootFetcher to its own file
In preparation for its usage in QDtls.

Change-Id: I7b28ac060e350228839461dc027c809af9ff73a4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-03-23 18:14:59 +00:00
Alex Trotsenko
927db42882 tst_QWinEventNotifier: fix flakiness
disableNotifiersInActivatedSlot(disable_signaled2) fails, if a signaled
state of the event #2 is detected prior to the event #1. In this case,
we get a timeout on waiting for event #1 which was disabled by the
first notification.

So, accept a disabled state of the notifier in condition for successful
exit from the loop.

Change-Id: I8a2fe76f8ec9362556d1ca1fe0be39a93ed58977
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-03-23 18:09:24 +00:00
Christian Ehrlicher
89bf58b070 Benchmark/QImageReader: remove unused dependencies
QImagereader benchmark does neither depend on network nor widgets.
Therefore those two dependencies can be removed here.

Change-Id: Ic127b2668e22608774ce5878454f4a96ef591f6b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-03-23 17:42:52 +00:00
Shawn Rutledge
c08bf215cc Add a legacy-free QWheelEvent constructor
qt4Delta and qt4Orientation have been "deprecated" ever since Qt 5.0
(even though widgets continue to depend on those properties).  This
is mainly for use in Qt Quick right now, but can be used everywhere
later on.

Change-Id: If0b163766c8ad8efa268edaa4f1ac1e8926f9003
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2018-03-23 17:28:17 +00:00
Christian Ehrlicher
69948f4899 QSqlResult: use QVector<int> instead QList<int> for indexes value
Minor tweak: QList<int> is taking 64bit per entry, QVector<int>
only 32bit - this should reduce memory usage a little bit.

Change-Id: I3e17269feb4840343f5cecfc71f8fccd70edc80f
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-23 17:03:23 +00:00
Rolf Eike Beer
25956a1e7c DBus: merge calls to set_source_files_properties() in CMake functions
This can handle multiple files at once just fine.

Change-Id: I9dcf7b0c72df432f02200ac7f3967f36a408f306
Reviewed-by: David Faure <david.faure@kdab.com>
2018-03-23 16:38:56 +00:00
Albert Astals Cid
e8260edf87 Unify QPlatformPrintDevice constructors
Change-Id: I01714a626e204c73456ebed987055662331d6a3a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-03-23 15:53:40 +00:00
Albert Astals Cid
c0a7c7b42d Remove unused QPpdPrintDevice constructor
Change-Id: I19a6cddebfbd1b72f01feae8873a634348cdc926
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-03-23 15:53:36 +00:00
Sergio Martins
54507e25d4 Fix win32-clang-msvc build due to -Werror,-Wunused-private-field
Task-number: QTBUG-63512
Change-Id: Ie1507faffc11be09d9ce5e95c3b537dd65bb6978
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-23 15:16:01 +00:00
BogDan Vatra
5daaafa084 Update gradle files
Change-Id: I7324082ef9eb19cb0851a0a53e8e41ee8f174210
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-03-23 10:30:52 +00:00
Eirik Aavitsland
d5b9a4ebc4 Fix: avoid realloc when adding primitives to painterpath
Calling reserve() for every primitive added would defeat QVector's
over-allocation strategy to avoid reallocs.

Task-number: QTBUG-66677
Change-Id: I7bdafdfa4d3ef60b00752c11e1b803abba773658
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-03-23 08:18:01 +00:00
Richard Moe Gustavsen
915fa58060 QTableWidget: fix spelling error
Change-Id: Ifd6f116a214d13328ccf0d070ef4517a3b53bf25
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
2018-03-23 08:16:59 +00:00
Mårten Nordheim
443a98e881 Document an odditity in WinRTs SSL backend
Internally we use "Tls11" and "Tls12" from Microsoft's API for TlsV1_1
and TlsV1_2 respectively. However, in their documentation these values
are defined to also include the lower TLS versions when you use them.
We should document this.

For "SslV3" TLS V1.0 support will also be enabled.

https://docs.microsoft.com/en-us/uwp/api/windows.networking.sockets.socketprotectionlevel

Change-Id: I0b20fb745eba40afc37e8430008872fc8174a72d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-03-23 07:52:18 +00:00
Oliver Wolff
f6ec2ea8a1 winrt: Fetch connection parameters when connection is successful
Change-Id: Iaf5f5d93cd07429626d5c500ac04e67daada8e6e
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2018-03-23 07:13:52 +00:00
Oliver Wolff
1f77332db0 winrt: Remove partially read datagrams from queue
According to the documentation, datagrams that were
not completely read are discarded.

Change-Id: Id3a038d8aeeba05e8c8f92b70877f5f5297b89ca
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2018-03-23 07:13:51 +00:00
Oliver Wolff
6696c37e00 winrt: Add initial setting of options and additional state checks
The initial settings are done for other socket engines too.

The state checks return a message when they fail. Socket engine
auto tests rely on these messages to be shown.

Change-Id: If7734b453a24ecee4c3a028395ecdbb12859c871
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2018-03-23 07:13:49 +00:00
Oliver Wolff
e72b583bc2 winrt: Remove unneeded function
Change-Id: I62f3abcabf1a0e5f909c603cbdcf407e36bd0402
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2018-03-23 07:13:49 +00:00
Oliver Wolff
f3db6971ee winrt: Rework socket handling
Buffer handling is now completely moved to the worker. Instead of
moving data around all the time, the worker is responsible for
buffer handling. When reads happen, the data that is read is used
directly from the worker and its buffer is updated.

With the previous approach it was possible, that transfers never
completed. It was possible, that new data was read between calls
of bytesAvailable and read and the availability of that data was
never communicated to the user. If a read that does not read all
the data happens, we signal, that there is still data available,
so that the user is notified about that fact. At the same time
we avoid unnecessary readyRead calls by blocking them until a read
happens.

To make future debugging sessions easier, categorized logging
(including verbose) was added to the socket engine.

Task-number: QTBUG-65556
Change-Id: I12020ffcccf8eb3efec9c36dc5b0e6c0ebef7eb5
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2018-03-23 07:13:47 +00:00
Kari Oikarinen
8e93988cce Blacklist tst_QProcess::softExitInSlots on Windows
Task-number: QTBUG-66903
Task-number: QTBUG-66216
Change-Id: I4a36d6f4b980f016e11fd7a8840dbc60a2964e83
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2018-03-23 07:11:04 +00:00