Commit Graph

32566 Commits

Author SHA1 Message Date
Morten Johan Sørvig
4585889467 Fix race condition in the processEvents test
This test verifies processEvents(WaitForMoreEvents)
behavior by first processing all pending events (in
a loop) and then verifying that a following processEvents
call actually waits.

But there is no guarantee that the OS won’t introduce
more events after the first loop has completed. This
does indeed seem to happen on recent versions of macOS.

Change the test to not require that the processEvents
call blocked and de-blacklist.

Task-number: QTBUG-61131
Change-Id: Ic8fa74a6085165442791264f6f137a2fa6083138
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-19 12:29:53 +00:00
Friedemann Kleint
0e9ea94511 QPMCache::remove(): Do not dereference erased iterator
Fixes a crash in tst_QGL::textureCleanup() (developer build).
Amends 467b15a20c.

Change-Id: I7026b3c2a27c02a80b995fde67a832dc2d19031d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-07-19 10:47:55 +00:00
Friedemann Kleint
13bceecc6b Windows QPA: Fix local position reported for enter events
Use QPlatformWindow::mapFromGlobal() instead of QWindow:::mapFromGlobal()
as QPA operates in device pixels.

Task-number: QTBUG-62028
Change-Id: I64ec4f4c9a536e122676d738db58805b98a45c82
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-07-19 10:45:12 +00:00
Daniel Teske
e7471da4d6 Windows Printer: Handle no default printer case
GetDefaultPrinter can return ERROR_FILE_NOT_FOUND. In that case just
return a empty string.

Task-number: QTBUG-53290
Change-Id: Ib0e28b3425d100bc185d1d8827dc6b7fd90cbbeb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-07-19 10:32:38 +00:00
Oliver Wolff
06b5e4d706 qmake: Remove last remains of WinCE support
Change-Id: Ifc2ecee8464710efd02a38b3a9794104f15a0f04
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-19 10:20:43 +00:00
Oliver Wolff
429d726322 winrt: qmake: Fix deployment rules of created solution files
If these rules are not added to the solution, Visual Studio will
complain, that the project has to be deployed before it can be run.

Change-Id: I6d3fbc949c85b11a92f78e13e2f6a1b92a5cfdc7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-07-19 10:20:38 +00:00
Tor Arne Vestbø
5138fada0b Fix QHighDpi::fromNativeLocalExposedRegion rounding errors
Calling bottom/right/bottomRight on a QRect is discouraged, as it does
not give the true bottom-right corner of the rectangle, instead giving
a point one unit to the left and top of the true bottom right.

Dividing this point by a scale factor of e.g. 2, and then using qCeil
on the bottom right x and y coordinates would result in a pointRegion
that was 1x1 * scaleFactor larger than it should, manifesting as
rendering issues at later stages.

We can get away from the whole problem by initially converting the
QRect to a QRectF, and basing the pointRegion's rect on the scaled
size instead of bottom-right coordinates.

Change-Id: I4d4895660655cfa8749c93c7d2573ae79cd7898b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-19 09:53:00 +00:00
Friedemann Kleint
a9dfdbd06a tst_QStyle::drawItemPixmap(): Check on the image color
Verify that all pixels of the grabbed image are green instead
of comparing an image loaded from file.
The test then also passes when High DPI scaling is active in
which case a twice as big pixmap with DPR=2 is obtained when
grabbing the widget.

Change-Id: Ie5244a39a68ea0defd2590cf30f251d660d0869b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-07-19 07:33:38 +00:00
Friedemann Kleint
ea4fae0df6 Windows QPA: Do not call enableNonClientDpiScaling() for embedded windows
Do not call if the property indicating embedded windows is set.

Task-number: QTBUG-61972
Change-Id: I8f34dd8a59f1e5c9c8064646bcb15acea115cd68
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-07-19 07:33:25 +00:00
Friedemann Kleint
1b190e7ea6 tst_QWidget: Fix to pass with High DPI scaling enabled
Scale coordinates in a few places, remove pixmap scaling in
grabWindow() (Windows).

Change-Id: Iba9e5d3ca55422a14eda09c8d04329a455d3acb3
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-07-19 07:32:55 +00:00
Friedemann Kleint
216da37cc5 Windows QPA: Compare against correct geometry when checking for fullscreen
Do not scale the QPlatformScreen's geometry.
Fixes tst_QWidget::showFullScreen() when run with a scale factor.

Change-Id: I4a2e743303ff70b01fd3d2086281a790737d2c1d
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-07-19 06:18:19 +00:00
Thiago Macieira
ad3b41a06d QFile::rename: use the open file's ID, instead of using the file name
To do that, we needed to add virtual id() in QAbstractFileEngine and
override it in QFSFileEngine. It might be useful to return other types
of IDs for the other file engines, but this commit does not attempt that
just yet.

Change-Id: I1eba2b016de74620bfc8fffd14ccafe0762b3c38
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-18 15:51:35 +00:00
Thiago Macieira
f9bfc8b91c QSystemError: Make it format unknown Windows messages
Can happen if we're using HRESULT from weird facilities.

Change-Id: I3d10feaa2e5854ff3c01b32dbd068309e5131d1b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-07-18 15:51:30 +00:00
Thiago Macieira
bf410ed529 Convert improper uses of qt_error_string() to QSystemError::stdString()
On Windows, qt_error_string() returns the string corresponding to the
Win32 API, not an errno. Replace those uses for a function that works
for errno values.

Change-Id: I1eba2b016de74620bfc8fffd14ccce6162bafdca
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-07-18 15:51:25 +00:00
Thiago Macieira
f3205a4949 Merge qt_error_string and QSystemError
This removes a lot of duplicated code that existed in both qglobal.cpp
and qsystemerror.cpp, including the hack to get the correct strerror_r
signature.

This removes the incorrect use of EACCES, EMFILE, ENOENT, and ENOSPC
from qt_error_string on Windows. qt_error_string is supposed to be used
only with Win32 error codes from GetLastError(), despite there being a
lot of uses in cross-platform and even Windows-specific code that pass
errno constants.

It may or may not work: that depends on whether the constants happen to
match. ENOENT matches ERROR_FILE_NOT_FOUND and one could argue that
ENOSPC matching ERROR_OUT_OF_PAPER is acceptable, but EMFILE isn't the
same as ERROR_BAD_LENGTH nor is EACCES, ERROR_INVALID_DATA.

Change-Id: I1eba2b016de74620bfc8fffd14cccb7f77f4b510
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-18 15:51:22 +00:00
Thiago Macieira
c0bd7ade1a QFileSystemEngine::id/Windows: Use the volume ID too
The MS documentation says that the high/low parts uniquely identify a
file within a system, but they actually mean the filesystem. The details
on how it's allocated make that clear. So we need the volume identifier.

Change-Id: I658f552684924f8aa2cafffd14cfc03c5a09c0e9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2017-07-18 15:51:18 +00:00
Kai Koehne
3f18dadeeb Doc: QLoggingCategory::setEnabled() should only be called in filter
Change-Id: Ib159c45ca259af125e48e3dfe59d64abc5f81f81
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-18 13:30:22 +00:00
Kai Koehne
54c2bfc9db Doc: Clarify limitations of category filter
As suggested by ogoffart.

Change-Id: I15747869147819799b14dfe0670ff2225f76fc03
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-07-18 13:30:18 +00:00
Kai Koehne
9a69a1b969 Doc: Fix snippet for QUrl::isValid() documentation
qDebug(...) expects a const char *, not a QString.

Change-Id: Ie4489c29440e328a732ed026eae3859eb8855ea5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-07-18 13:30:14 +00:00
Timur Pocheptsov
07c0e0fdcf QAsn1Element - fix toDateTime function
ASN UTCTime uses two characters to encode a year (YY). When converting it
into QDate, it's quite naive to just add 2000. According to RFC 2459,
these YY represent dates in the range [1950, 2049].
This patch also introduces a helper function doing the checked conversion
from a string to int (to be reused in the following-up patches).

Task-number: QTBUG-61934
Change-Id: I3f6f471d24e8357b83b2f5973023b2b842751389
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-07-18 13:09:16 +00:00
Tor Arne Vestbø
4a7ec2d9b0 testlib: Allow tailing comments in blacklist files
Task-number: QTBUG-61987
Change-Id: I27219a6d06d7a81514e3f7b2ad5469676f724e04
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-18 13:04:08 +00:00
Allan Sandfeld Jensen
c08dc1e04f Read more KDE configuration in the KDE platform theme
Adds the hints that are read and used by the plasma-integration platform
theme, so naked Qt applications can integrate just as well on this
front.

Change-Id: I45a113e0081ea96c8cf543c22b28b69280ae7619
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
2017-07-18 08:11:27 +00:00
Andy Shaw
61f0206620 Revert "Windows: Fallback to d3d9 when in a VM on VMWare Workstation 12"
Revert SHA1 - b1708efeeb as it causes a
problem with QtMultimedia.

Change-Id: I0ba366fa6ddccff3715917f5f455b20c73c2e49e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-07-17 23:50:56 +00:00
Tor Arne Vestbø
f3c39a69bc macOS: Don't assume the proposed fullscreen size matches the screen size
Sometimes AppKit will pass in a proposed size that's smaller than the
geometry of the screen. We don't know why, but shouldn't assert.

Change-Id: I9970c5f587e1e0fb3f2fa932de5a32ac4e1eb76d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-17 18:13:23 +00:00
Joerg Bornemann
c7ec07d401 Do not wait in QWindowsPipe{Reader|Writer}::stop()
A deadlock can occur if the user does

    QLocalSocket *ls = new QLocalSocket;
    ls->moveToThread(t);
    ...
    delete ls;

Then QLocalSocket calls QWindowsPipeReader::stop() in a different thread
than the I/O operation is running in. The waitForNotified(-1) call would
then wait indefinitely until the I/O thread is in alertable wait state
again. Especially on application shut down this might never be the case,
and the application would deadlock.

Solve this by detaching the Overlapped object from the
QWindowsPipe{Reader|Writer} in stop() and delete it in the callback.

Task-number: QTBUG-61643
Change-Id: Ie262d75c5fd92ac7cf7dfcdbf1519050be9fd3c4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-17 11:20:47 +00:00
Allan Sandfeld Jensen
0345608d16 Allow fusion style to follow platform theme on button icons
Do not try to set the default value of dialog buttons in fusion, but
let the common style handle it that asks the platform theme.

This adds icons to dialog buttons on platforms that usually has that
(such as KDE).

Change-Id: I29cfa49cfd993224220bc992c523f5b2df20870d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
2017-07-17 09:04:11 +00:00
Leena Miettinen
768922def5 Doc: Update docs for QMAKE_MACOSX_DEPLOYMENT_TARGET in qmake Manual
The old docs contained obsolete information. Also, the new docs
match the new docs for the other Apple OS deployment targets.

Change-Id: Id773fa2086f291d8a2552fe1b339ec1e13c19d74
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-07-17 07:31:17 +00:00
Leena Miettinen
8f3f02b910 Doc: Add Apple OS deployment targets to the qmake Manual
The following variables were not documented:

- QMAKE_IOS_DEPLOYMENT_TARGET
- QMAKE_TVOS_DEPLOYMENT_TARGET
- QMAKE_WATCHOS_DEPLOYMENT_TARGET

Change-Id: I5cfb6c0024d92e943aed882fd01bc2a4f2c7c042
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-07-17 07:31:02 +00:00
Joerg Bornemann
2d54aac427 Fix warning messages in QWindowsPipeReader/Writer
We forgot to update the warnings when removing qt_cancelIo.
Also, use %p instead of %x, because HANDLE is void*.
This amends commit fade2958.

Change-Id: Ia11d7d094aa6beb939e0be4bbe4ab3654eaa1c02
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-17 06:58:02 +00:00
Jake Petroules
0b6bf289fd Update OS version constants in qsystemdetection.h
Change-Id: I8c8fa8861280948bf8488c4465a359858bb625e0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-16 23:04:34 +00:00
Kai Uwe Broulik
184d80f5a0 QDialogButtonBox: Don't overwrite shortcut with standardButtonShortcut
de63bbd2f8 introduced a new
QPlatformTheme::standardButtonShortcut which would then unconditionally
overwrite the QPushButton shortcut, even when empty, breaking activating
mnemonics potentially included in the button's text.

Task-number: QTBUG-61197
Change-Id: I2a5a460a820a5ab4054eb44f349066aaeca1436f
Reviewed-by: Marco Martin <notmart@gmail.com>
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-07-15 16:59:49 +00:00
Stephan Binner
773178900f Convert features.treeview to QT_[REQUIRE_]CONFIG
Change-Id: I4a036a0410615ac563b17f7715c47acccb8abfca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-15 16:46:38 +00:00
Joerg Bornemann
a23568be6c Fix CONFIG+=silent for MSVC non-inference rules
silent.prf modifies the compiler commands by prefixing them with a
silencing echo command. For MSVC, the used $< syntax is only valid in
inference rules. However, the PCH rule is not an inference
rule and breaks when silent.prf is used.

Remove the echo command for MSVC. The compiler already outputs the
currently compiled file. There's no need to do it twice.

Task-number: QTBUG-61688
Change-Id: I7e2c1211e471c9c149c16cac8e87406e88ee2d97
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-14 18:49:56 +00:00
Stephan Binner
4db3a5f8eb Add missing #include for -no-widgets
Task-number: QTBUG-61780
Change-Id: I62fccc6474965278cb1b258b512fda3b60f995f3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-07-14 18:18:18 +00:00
Friedemann Kleint
dc81a99dec Examples: Remove remains of wince
Task-number: QTBUG-52590
Task-number: QTBUG-60628
Task-number: QTBUG-60633
Task-number: QTBUG-60635
Task-number: QTBUG-60641
Task-number: QTBUG-60659
Change-Id: I9ffc3e25893d2281b19cc12b70e1a92fb2a8b708
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2017-07-14 17:30:51 +00:00
Alex Blasche
d4700b2317 Bump copyright year of qdbuscpp2xml and qdbusxml2cpp to 2017
Change-Id: I7be6f45d359db813b15a3754b3ed203cb829a3d0
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2017-07-14 13:00:54 +00:00
Alex Blasche
dbcfe31892 Fix empty "Command line was" string in generated source files
Task-number: QTBUG-61370
Change-Id: If829a889acfe092adad4ac443d71e63b67ba7f55
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-14 13:00:26 +00:00
Mårten Nordheim
5b24d3dd35 Add missing constexpr specifier to two iterators
The classes themselves and their equality operators are used in
constexpr functions/ctors (in QKeyValueIterator) so Visual Studio 2017 expects
them to be marked constexpr as well. Currently this causes a compilation error
when instantiating a QKeyValueIterator using either of these iterators.

Change-Id: I2e3eeaf3b3f11f381a63875e6575dfd82fe56fcb
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-07-14 00:24:25 +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
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
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
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
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
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