Commit Graph

33150 Commits

Author SHA1 Message Date
Edward Welbourne
29af390e3f Clean up some arithmetic code in an example
The square root of a sum of squares is easier to read and should be
computed more accurately if done for us by hypot().  Variables set
only once should be set as an initializer and declared const, to make
clear this is what's happening.  Loop variables can be local to loops.
Adding a value to, or subtracting one from, a multiple of itself just
multiplies it be one plus (or minus) the multiplier; assigning the
result to the same variable is clearer as a *= (especially when the
factors are now overt numeric constants).  An array of 16k floats all
updated in locksteck to the same value can be replaced by a single
float that holds that value.  Simple things should not be needlessly
made more complicated - especially in example code, which should be
pedagogic.

Change-Id: Idab585cd7df1399c250d4b9f1396a085ae8f3864
Reviewed-by: hjk <hjk@qt.io>
2017-07-14 13:36:46 +00:00
Tor Arne Vestbø
fdfa3b1141 Skip tst_QWidget::testForOutsideWSRangeFlag
The test assumes that resizing a QWidget to 0x0 will result in the
QWindow ending up with that size, and hence not being exposed, but
this is not the case. On a QWindow level we treat 0x0 as a trigger
for the platform layer to set the default size, and the window
ends up exposed.

Ideally QWindows should allow 0x0 sizes, but this is a bigger change.
In the meantime, we skip the tests so that other changes can be
integrated without the test failing.

Task-number: QTBUG-61953
Change-Id: Ib17187b4afd1b06eaa76653be18e93abea555b59
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2017-07-14 04:43:06 +00:00
Thiago Macieira
97294ed995 Merge "Merge remote-tracking branch 'origin/5.9' into dev" into refs/staging/dev 2017-07-14 00:00:53 +00:00
Gabriel de Dietrich
d38fe875c7 Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
    src/widgets/widgets/qmainwindowlayout.cpp

Change-Id: I306b4f5ad11bceb336c9091241b468d455fe6bb6
2017-07-13 16:36:10 -07:00
Tor Arne Vestbø
3bac08c00f macOS: Improve QDebug output for QNSView and QCocoaWindow
By printing the corresponding QPlatformWindow and QWindow for a given
QNSView we make it easier to track issues regardless of which of the
views/windows are being logged.

Change-Id: I4a42eff7f87cf3c8e722cd6ad8baccd4eeab8eb3
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-13 22:09:18 +00:00
Tor Arne Vestbø
5477537327 Remove QWidgetBackingStore tlwOffset member variable
It was used in QWS to account for window decorations, but hasn't been set
to anything since 2011, when the code that set it was removed in 6ce6b8a3.

Change-Id: Ibfd37b37c2055221029341443fb768ad620effa2
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-13 22:09:17 +00:00
Kai Koehne
627f0a7f7d Doc: Improve documentation about append, prepend
The references to the this pointer look somewhat alien in the
documentation, because it isn't part of the signature. Rather make
the relationship explicit.

Change-Id: I6de516e165ea6e9c4ee2898836e9490fbaf4545c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-13 15:25:57 +00:00
Daniel Teske
7051572618 QLineEdit: Fix length calculation for input mask "\\\\"
Consider the raw string \\\\. The previous algorithm would consider
the last 3 \ to be escaped because the previous character is a \ and
thus calculating a maxLength of 3.

But this should be treated as two escaped \ with a maxLength of 2.

Change-Id: I6c4b8d090a2e1c6e85195d5920ce8b80aea1bc2d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2017-07-13 14:59:17 +00:00
Gatis Paeglis
ac4e848c98 xcb: fix logic in QXcbConnection::initializeXInput2()
Things that were broken:

- The return values of XIQueryVersion interpreted wrongly. BadRequest
  means no XI2 support on the server. Nesting more XIQueryVersion
  calls to check for lower minor version of XI2 in this case does not
  make sense. On Success, server's supported X Input version is returned.
  Server's supported version can be lower than the version we have announced
  to support. In this case Qt client will be limited by X server's supported
  version (which is ok, as we do check the available version at runtime via
  QXcbConnection::isAtLeastXI2*).

- The code was _always_ announcing to X server that we support XI 2.2,
  by ignoring what actually is supported in the specific build (see
  XCB_USE_XINPUT ifdefs).

- qCDebug messages and logging categories were wrong too.

Change-Id: Ia84457f125474aa851b7a91ed19fc5b904ac359e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-07-13 11:31:01 +00:00
Gatis Paeglis
f69d30804d xcb: cleanup updating of scrolling device valuators
This includes:

 - Better sharing of common code.
 - Less argument passing.
 - Improved code readability:

   It is somewhat confusing to read when QXcbWindow::handleEnterNotifyEvent
   calls connection()->handleEnterEvent().

 - Better organizing of ifdefs.

Change-Id: I4405390cada13b51db78f9fd30e26bb1793395ff
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-07-13 11:30:51 +00:00
Gatis Paeglis
7499d4404f xcb: don't keep objects for disconnected touch devices
... as XI2 reuses device ids and we might end up with some bogus
objects in m_touchDevices (the same touch device after reconnecting
might have a new device id).

With this patch, m_touchDevices is handled similarly to tablets
and scolling devices. This patch also removes unnecessary calls
to X (XIQueryDevice). We already have device information available
for all devices when populating m_touchDevices list, so calling
XIQueryDevice again for every device id (which we haven't already
concluded to be a tablet device) is a redundant round trip to X.

For consistency with other device types, extend touch device data
structure to store the necessary device details, instead of holding
pointers to XIDeviceInfo. And allocate touch device objects on
stack instead of heap, also for the consistency reasons (this way
we won't need to special case m_touchDevices when running some
management task on _all_ devices, e.g. removing a device with id=n
when it was disconnected).

Change-Id: I9f6edfaf24da911dd21ec45cd48dfdd6d0dcdf8b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-07-13 11:30:40 +00:00
Simon Hausmann
bdca35e815 Fix documentation of QEvent::LanguageChange propagation
The documentation claims that QGuiApplication forwards the top-level
windows. However this appears to be a search & replace mistake from the
QApplication <> QGuiApplication separation times. Only QApplication
forwards the event to top-level widgets and changeEvent() is a virtual
method of QWidget. Nothing is implemented for plain QGuiApplication and
QWindow.

Change-Id: I71b05ecebc90f7c28e150590764438ebaa90e88f
Reviewed-by: Michael Brasser <michael.brasser@live.com>
2017-07-13 04:53:59 +00:00
Tor Arne Vestbø
58ab25004e macOS: Fix unused variable in window:willUseFullScreenContentSize:
Change-Id: I419f884f4145dbe2b60751bf6cde3968cf34fe4a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-12 23:28:38 +00:00
Tor Arne Vestbø
545458cb77 QDebug: Print more verbose NSObject output if requested
Change-Id: Ia4f4f62675a2c2e63e36c5fbf6d869e0ab8e1a9f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-12 22:58:17 +00:00
Gabriel de Dietrich
9ec73b85aa QMacStyle: Remove unused variable warning
Change-Id: Id6116ad110ac39898e9c44ae41c6d7eec96f58d7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-12 17:37:57 +00:00
Tor Arne Vestbø
e108620e11 macOS: Remove unused m_maskData member in QNSView
Change-Id: If0dc8f90c657e09fc71bfae1fbffe6be980453da
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-12 12:48:05 +00:00
Andy Shaw
0843c6ca7f QSqlField: Add a means to see what the tablename is for a given field
When you are using a query that pulls from a number of different tables
then it can be ambiguous as to which table a particular field belongs to.
So this will make it possible to determine the table that a given field
belongs to if it is set.

Task-number: QTBUG-7170
Change-Id: I49b7890c0523d81272a153df3860df800ff853d5
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-07-12 09:01:50 +00:00
Allan Sandfeld Jensen
b3f7bea105 Handle conversion and comparison between qvarianthash and qvariantmap
QVariant claims to be able to QVariantHash and QVariantMap, but the
actual conversion implementation is missing.

Task-number: QTBUG-61471
Change-Id: I0cba74642aa77dc423effed289bc7619922a89eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-11 21:10:54 +00:00
Allan Sandfeld Jensen
9423be1f19 Fix deprecation warnings
Switch to QImage::sizeInBytes for huge QImage support.

Change-Id: I0145f204dd2db6670e199c320fff9064b4a97ef4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-07-11 18:59:07 +00:00
Mitch Curtis
b783c03d19 Doc: fix paintEvent() function casing
Change-Id: I66ef1c25259499147100413753fdc80b01dc49f6
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
2017-07-11 18:30:30 +00:00
Allan Sandfeld Jensen
69c5ddf295 Fix buffer overflow in text blending
Clip buffers being converted to those being worked on so we don't write
outside the lines.

Task-number: QTBUG-61863
Change-Id: Icc7c6c0946fa522b5afeca0663fc2b45151b1897
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2017-07-11 18:13:25 +00:00
Friedemann Kleint
4970ef5574 Windows QPA: Fix build with draganddrop disabled
Task-number: QTBUG-61885
Change-Id: Ibb4a7ac43785dcdb46afcd5c2081e43df7d9e9a5
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-07-11 18:05:18 +00:00
Friedemann Kleint
ba87cfd774 iaccessible2.pri: Fix architecture detection
Use QT_ARCH instead of legacy QMAKE_TARGET.arch, which is not
defined for MinGW.

Change-Id: I5a1298321f696cf1bc30613283174ecfa0139600
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-07-11 18:05:07 +00:00
Morten Johan Sørvig
ecac1aeb29 Document expose event behavior
Document that "visible"-but-obscured windows may not
get expose events for various audiences: QTestLib
users, platform plugin authors and on the QExposeEvent
itself. QWindow::exposeEvent() already has this documented
and is not changed.

Task-number: QTBUG-50414
Change-Id: I91042e8b1c70e48f10e692b2e80367d242a8ccbe
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-11 15:25:00 +00:00
Morten Johan Sørvig
a6991376cc Wait for window expose on the viewport widget
The child viewport window covers the entire client
area of the parent window, which prevents the parent
window from being exposed.

This worked by accident until now, and was uncovered
by changes to the cocoa platform plugin implementation.

Change-Id: I0d62a1a33f125e5a9030c8def452a49886e54956
Task-number: QTBUG-50414
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-11 15:24:42 +00:00
Andy Shaw
82e6ac8cdb Implement setDoubleStep for QInputDialog
setDoubleStep works in the same manner as for setIntStep in that it is
just available for input dialogs getting a double.

[ChangeLog][QtWidgets][QInputDialog] Added setDoubleStep to enable
changing of the step amount for getDouble().

Task-number: QTBUG-17547
Change-Id: I5cabcfceb23324f8045f2b1e49017644418db01a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2017-07-11 12:10:39 +00:00
Tor Arne Vestbø
0721199187 macOS: Deliver screen change on window creation instead of on first expose
We know the resulting screen based on the geometry mappings we now do, so
no need to wait until expose to deliver the screen change.

Change-Id: Ibb84948ab091d8f74d31cdd2d300b381e2e1e7cc
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-07-11 11:36:15 +00:00
Tor Arne Vestbø
e7ba24bd70 macOS: Rename NSWindow variable in QCocoaWindow::createNSWindow
To distinguish it from window().

Change-Id: I90eb5207c6d9f178f009ecf755e2be8d29149a6b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-07-11 11:36:08 +00:00
Tor Arne Vestbø
e91dafd7a9 macOS: Don't special-case QTestLib when reacting to occlusion events
The tests (and Qt) should be able to handle occlusion of windows.

Change-Id: I5e93e032f6a5282f19a20d0e230863d2a165f4e3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-07-11 11:16:42 +00:00
Timur Pocheptsov
3e3466d28c tst_QSslSocket::protocolServerSide - fixes for OpenSSL 1.1
Several tests are not valid for 1.1 anymore:

1. SSL2 was removed, but there is no OPENSSL_NO_SSL2 and the 'protocolServerSide'
   test is trying to use QSsl::SSLv2 and thus is failing.
2. We now use the generic TLS_server/client_method instead of version specific
   methods we have in pre-1.1 back-end. So, for example, a client socket with
   QSsl::TLS_V1_0 in its SSL configuration will be able to negotiate
   TLS 1.2 if our server socket wants it, while with TLSv1_client_method
   (OpenSSL < 1.1) our test was expecting SSL handshake to fail.

Change-Id: I18efd5921c79b189e4d9529be09299a361a8a81d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-07-11 10:44:08 +00:00
Andy Shaw
b1708efeeb Windows: Fallback to d3d9 when in a VM on VMWare Workstation 12
On VMWare Workstation 12 it will indicate OpenGL 2.1 support but it is
not sufficient enough as it is lacking things needed to use QtWebEngine
without crashing. Falling back to d3d9 works fine in this case as d3d11
also crashes.

Change-Id: I404867045a74f37d3ecc7e04e669dd305570deeb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-07-11 06:24:19 +00:00
Stephan Binner
01703d0264 Convert features.tableview to QT_[REQUIRE_]CONFIG
Change-Id: I7ab479deff7bbf3083d1efa196e0480b181548c5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-11 02:52:35 +00:00
Stephan Binner
6cd46c9a61 Convert features.datetimeedit to QT_[REQUIRE_]CONFIG
Change-Id: I083cd565fab8c33dc3633b71f962de099c2b3481
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-11 02:52:29 +00:00
Stephan Binner
3835194d34 Convert features.rubberband to QT_[REQUIRE_]CONFIG
Change-Id: I6d634bafa6d26c1e78069fddd412e6de24f5775c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-11 02:52:25 +00:00
Stephan Binner
3906043f05 Convert features.fontdialog to QT_[REQUIRE_]CONFIG
Change-Id: Iebc091ffd023595278fa177b7f205b6e0cd7ec52
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-11 02:52:20 +00:00
Stephan Binner
93dc459f48 Convert features.graphicseffect to QT_[REQUIRE_]CONFIG
Change-Id: I1bb96088b2e9f2a2cfab5fceeebebe94fa6bb3a6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-11 02:52:03 +00:00
Ben Boeckel
bb1e5675a5 cmake: avoid @var@ expansion in older CMake versions
Older versions of CMake expanded `@var@` in CMake code, so this could be
expanded at this location rather than the `string(CONFIGURE)` call if
`module` were set inadvertently. Instead, hide the literal `@` symbol
from CMake, but not from the string.

This avoids a CMP0053 warning for projects using Qt5 with a minimum
version set lower than 3.1 and silent bugs with projects explicitly
setting CMP0053 to OLD.

Change-Id: I0e4a86469fdf69b8706387799ab9b17498b8d1ca
Reviewed-by: Stephen Kelly <steveire@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-10 21:25:47 +00:00
Andre Hartmann
8a8788f4df QSslCertificatePrivate: make use of QByteArray::toHex(separator)
Qt 5.9 introduced a QByteArray::toHex() overload that
inserts a separator char after each byte. The function
colonSeparatedHex() could not be replaced completely,
as it skips leading zeros also.

Change-Id: Ic1d5d4771a0a5171f0e7e9813b83eb4c1f59f085
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-07-10 20:16:58 +00:00
Thiago Macieira
c3cd0f6e19 configure: Remove test for unused feature "mremap"
It's a Linux-specific call that was added to the kernel in pre
historical times (before Git). Sqlite3 uses mremap(2) but it has its own
checking. Nothing else in Qt uses this.

Looks like the last user was the QPF font engine, removed in commit
d7e424ee66 almost four years ago. And
that's considering that the QPF font engine wasn't in use since Qt 5.0
because QWS was no more...

Change-Id: Idaa189413f404cffb1eafffd14ceee7488514c1d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-10 18:00:38 +00:00
Gabriel de Dietrich
c12072c685 QMacStyle: Add back icon logic in tab layout
This was accidentally removed when we revamped the document
mode tabs appearance.

In retrospect, we should also consider adding CE_TabBarTabIcon
so that we can set the relative position of the icon w.r.t.
the tab title.

Change-Id: Ic8c3a69c31837018bfdd60f8084120cae47e91f8
Task-number: QTBUG-61092
Task-number: QTBUG-61742
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-10 17:39:03 +00:00
Gabriel de Dietrich
bdb1a5b283 QMacStyle: Simplify logic for SC_GroupBoxLabel rectangle
This removes the single occurrence of HIThemeGetTextDimensions. Since we
have access to the actual platform font through QPlatformTheme::font(),
it's possible to use QFontMetricsF instead.

We also cache small and mini system fonts to be reused in other places.

Change-Id: I799c61eef0a2a6880a1c51aa7d3105c7e5b0ed4f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-10 17:38:42 +00:00
Gabriel de Dietrich
aaf227e299 QMacStyle: Simplify rendering SC_GroupBoxLabel
Removes the last occurrence of HITHemeDrawTextBox.

Change-Id: I13804a16672c692a4405d8b2f9d5fb6a132a6b7b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-10 17:38:35 +00:00
Gabriel de Dietrich
b81573bbd8 QMacStyle: Simplify CE_PushButtonLabel, CE_TabBarTabLabel
We don't need the calls to HIThemeDrawTextBox after all. These
render simple text nowadays, so we can do this with Qt APIs.

Also fixes TabBarPalette in QCocoaTheme.

Change-Id: Ib9436be83f03bd62fca40feb110a86602794c5b7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-10 17:38:26 +00:00
Daniel Teske
4ebc2cf74e macOS QComboBox: Don't show scrollers if they aren't needed
Task-number: QTBUG-13925
Task-number: QTBUG-18788
Change-Id: Id155ea26824e1cb470cc6174704436d99fb7ac87
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2017-07-10 14:21:07 +00:00
Stephan Binner
333a27a8b6 Fix macOS build for -no-widgets, take 2
Task-number: QTBUG-61780
Change-Id: Ic67074b19b3b5c409c0f1254be77ba122ad61a85
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-10 09:40:46 +00:00
Friedemann Kleint
70b976ece1 QtTest: Add msvc2017 detection and keyword to blacklisting
Change-Id: I71162fc7dff0f29a24fd78e1188f8d86c2834d3c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-07-10 07:01:14 +00:00
Friedemann Kleint
1bc5f619ea QStorageInfo/Windows: Improve error handling
Bail out of QStorageInfoPrivate::doStats() should an error occur
and set the ready/valid flags accordingly.

Task-number: QTBUG-6039
Change-Id: Id5354b31329d951599ae991aa7edde0515c90514
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-09 11:07:38 +00:00
Friedemann Kleint
6e861d8412 pathstroke example: Add Q_FALLTHROUGH to unmarked fallthrough seen by GCC 7
Task-number: QTBUG-60635
Change-Id: I10695f96122f1b0859bbe7fadb349efb3c7277a6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2017-07-09 11:07:17 +00:00
Tor Arne Vestbø
920ba35397 macOS: Use same naming for QPA event forwarding functions
Expose events and others will follow.

Change-Id: I8e11a133381a678517b54ad1872fe302515d4104
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-07-09 10:02:55 +00:00
Morten Johan Sørvig
0e0034d93a macOS: Simplify QCocoaWindow::handleGeometryChange
There are really only two cases here, where the difference
is the coordinate system of the window position.

1) Child QWindow and embedded QWindow:
   The position is relative to parent view/window origin.
2) Top-level QWindow:
   The position is relative to screen origin.

Change-Id: I867133a5adbbf3a690f574aec06b70c2bc64ad95
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-09 10:02:53 +00:00