summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Fix failing tests on macOS developer buildsAlexandru Croitor2020-09-223-0/+16
| | | | | | | | | | | | | | | | | | tst_qguiapplication was missing an Info.plist file. We can't directly reference the tst_qcoreapplication Info.plist file like the qmake project does, because that breaks ninja (says multiple rules create the same output file), so use a copy instead. Blacklist the qpluginloader loadMachO test when doing CMake builds. The qmake projects use multiple custom rules to build the macho plugins, which need to be ported to CMake. Task-number: QTBUG-86053 Task-number: QTBUG-86792 Change-Id: Iaff2b2d5e9e84a457b4f2ffc011a580388498f00 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove default ctor for QIterableUlf Hermann2020-09-225-10/+14
| | | | | | | MSVC has strange problems with it and we don't actually need it. Change-Id: I2c443946d52d475208800f310b5f910da165c99b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix some MSVC conversion warningsFriedemann Kleint2020-09-223-4/+4
| | | | | Change-Id: Ib2c1fdb7b84f89201136438362ab5962126ec929 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Windows QPA: Fix warnings about deprecated operator + for keysFriedemann Kleint2020-09-221-2/+2
| | | | | | Pick-to: 5.15 Change-Id: I48bd41465e62fef6f5ddcf235716a4be5eff46d4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix some qdoc warnings: typos and qdoc syntaxVolker Hilsheimer2020-09-225-9/+7
| | | | | Change-Id: Idf5c1490330e0f2e5d4bcf920eb03fc9993b3c8a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix some qdoc warnings: QTableWidgetSelectionRangeVolker Hilsheimer2020-09-211-0/+10
| | | | | | | | | The default constructor was no longer documented, and the documentation of the initializing constructor wasn't tied to the implementation anymore after 33fc6226865ab4b36a452e733e4519e45fea691d. Change-Id: I5354a7e3b249f2128a6421546d4ebb375ae48160 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix some qdoc warnings: typosVolker Hilsheimer2020-09-212-3/+3
| | | | | | | | It's \reimp, not \reimpl, and this particular textAlignment variable documentation is for QStyleOptionComboBox. Change-Id: I90f1519410a4378c54777e29acce70b55975e70e Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix some qdoc warnings: broken linksVolker Hilsheimer2020-09-212-5/+4
| | | | | | | We can't split a \l{Class::}member over two lines. Change-Id: Id4806402ab349fd20fbf65eee9502e2d08e21dc5 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix some qdoc warnings: unnamed parametersVolker Hilsheimer2020-09-212-3/+6
| | | | | | | | If we reference a parameter in the documentation, then we have to name it as well in the function declaration. Use Q_UNUSED instead of omitting. Change-Id: Icb32d3bd965f0361d112f62cb3bbbbb2005d378c Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Inline trivial function used only by deprecated functionsEdward Welbourne2020-09-211-17/+4
| | | | | | | | | | | QIcon had two methods calling a trivial local static; both were deprecated. Inlined the local static rather than #if-ing it on the same deprecation #if-ery. Shift the #if-ery on the deprecated methods to embrace also their docs. Change-Id: I5f6755ef99dd6b4abddc343c9bedf4815e50d567 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Remove some deprecation comments from qmap.hEdward Welbourne2020-09-212-7/+5
| | | | | | | | | Lars says documenting that the methods are slow is sufficient, no need to deprecate them. Task-number: QTBUG-85700 Change-Id: I7b1d19e91e30205df7d8198e3704cecc72a853e0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Pass -arch when running toolchain configure test on Apple platformsTor Arne Vestbø2020-09-211-0/+4
| | | | | | | | | | | | | Clang doesn't automatically switch architecture just because we're passing an iPhoneOS sysroot. In the past this resulted in a warning about trying to link an x86_64 binary to arm64 libraries, but with Xcode 12 this is now a hard error. Fixes: QTBUG-86718 Pick-to: 5.15 Pick-to: 5.12 Change-Id: I7e9d2ca513d276029fc2a6cfe694a35fe41c39b3 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* headersclean: Fix include paths for dependent modulesKai Koehne2020-09-211-2/+4
| | | | | | | | | | | | Having ${QT_BUILD_DIR}/include as include path is not enough for modules outside of qtbase. They also need to pick up headers from e.g. Qt Core, which are available only in "${CMAKE_INSTALL_PREFIX}/include" This amends db21bad936a761f475145886f1e06dfcfa11eb80 Fixes: QTBUG-82615 Change-Id: Ib003a66ce039bf1ab6e21a3b1cd86923207eb3db Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Define inverted QRects consistentlyAllan Sandfeld Jensen2020-09-217-161/+189
| | | | | | | | | | | | | | | | Changes the definition of invalid QRects to be more consistent. This simplifies the logic, and makes it possible for us to fix normalized() so dimensions don't change. The actual API is not changed except for inverted rects. Only one use-case for the old normalized() function existed, and has been reimplemented as QRect::span(). Fixes: QTBUG-22934 Change-Id: I29dad2952dc6c8e84a6d931898dc7e43d66780f3 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QCocoaDrag::maybeDragMultipleItems - fix erroneous size checkTimur Pocheptsov2020-09-211-1/+1
| | | | | | | | | | | | | Due to somewhat inverted logic introduced by the 8481a9fc974a1f1dd44a, testing number of items in a pasteboard happens _before_ we fill it, which is wrong and useless. As a result, maybeDragMultipleItems will prevent the single item drag. Pick-to: 5.15 Task-number: QTCREATORBUG-24665 Task-number: QTBUG-86786 Change-Id: Ia4be9fc56677575bb363cbb8b1adbea59e6c3b0b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix a bug when streaming QVariants containing a QRegExpLars Knoll2020-09-211-4/+3
| | | | | | | | | | Fix a logic error. QRegExp is a UserType in Qt 6 and we need to check for it in the right place. Fixes an autotest failure in the qregexp autotest in qt5compat. Change-Id: I454cfcfd12b36f756b24b69a5412455db9dccbe7 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* Cleanup API of QMimeDataLars Knoll2020-09-2125-93/+103
| | | | | | | | | | | | | Do not use QVariant::Type anymore, instead use QMetaType For some reason, this pushed the qvariant autotest over the limit where MSVC requires the /bigobj flag, so add that one. [ChangeLog][QtCore][QMimeData] The signature of the virtual retrieveData() function has changed and now takes a QMetaType instead of a QVariant::Type. Change-Id: Ib46773bd731ee2177b1ef74d8162d744be7017ef Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Silence qdoc warnings from std::filesystemVolker Hilsheimer2020-09-211-0/+7
| | | | | | | | | We change the declaration of the new APIs using std::filesystem::path for qdoc runs, and need to forward declare it consistently for qdoc builds to avoid a flood of clang warnings when building documentation. Change-Id: Iddcf0ce7d6207b6cc5910790315ab21076bd6ce1 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Update QList's documentation relevant to prepend optimizationAndrei Golubev2020-09-211-38/+65
| | | | | | Task-number: QTBUG-84320 Change-Id: I550f9dd7810855df0b0cc2bcbc78a97d6abaac7a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix a bunch of qdoc warnings from QList typesVolker Hilsheimer2020-09-212-0/+11
| | | | | | | | | | For documentation purposes, we treat QList, QByteArrayList, and QStringList as simple classes, whereas reality is a bit more complicated. We conditionally change the declaration of the types for qdoc runs, and need to be consistent to avoid a flood of warnings from clang when building documentation. Change-Id: I22d529079e10f8fd3d93edc771e5f05729fa925f Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* dbus: Skip AUTOUIC on generated sourcesKevin Funk2020-09-211-2/+8
| | | | | | | | | | | | | | | | | | Skip AUTOUIC on sources generated by the qt_add_dbus_interface and qt_add_dbus_adaptor macros. Otherwise CMake will warn due to policy CMP0071: ``` For compatibility, CMake is excluding the GENERATED source file(s): (...) from processing by AUTOMOC and AUTOUIC. (...) ``` Pick-to: 5.15 Change-Id: I7d14b23c9343940964d5bc0d1d18fc19b41b5cd0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* xcb: add xcb-util dependency for xcb-imageLiang Qi2020-09-214-4/+29
| | | | | | | | | xcb-image includes xcb_aux.h, which is part of xcb-util. Fixes: QTBUG-86287 Pick-to: 5.15 Change-Id: I253308008c5baeb1d061ef19f516ae6ab6dff52c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Support signed integer attributes on QRHIInho Lee2020-09-217-19/+71
| | | | | | | Previous UIntAttributes feature is renamed as IntAttributes. Change-Id: I4b4a87a0eebf37291da832605f7bee8fb2d4e62b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QAbstractEventDispatcher: change event dispatcher timer interval to qint64Liu Yang2020-09-2118-22/+21
| | | | | | | | | Resolve remaining Qt6 TODO [ChangeLog][QtCore][QAbstractEventDispatcher] The signature of the abstract virtual registerTime function now takes a qint64 value for the interval parameter. Change-Id: I10166ad5cfb455edc404d465a3731ff094a8977e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Deprecate QMutex in recursive modeLars Knoll2020-09-213-5/+12
| | | | | | | | | Use QRecursiveMutex instead. Pick-to: 5.15 Change-Id: I862fc2b3143deeb5c96dc8d445be5f9fa2535670 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add reentrancy guard for processEvents() in QProgressDialog::setValue()Christian Heimlich2020-09-212-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current implementation of QProgressDialog always calls QCoreApplication::processEvents() when the user calls QProgressDialog::setValue() if the PD is modal. For most cases this is fine, but when using a Qt::WindowModal PD with setValue() connected to a signal in another thread using Qt::QueuedConnection a reentrancy issue is present if setValue() is triggered too frequently as the execution of its previous call may not have finished. If this happens too many times in a row a stack overflow will occur. Current documentation notes this potential issue but offers no way it avoid it while still using QProgressDialog (user must implement a custom dialog) without resorting to using Qt::BlockingQueuedConnection, which unnecessarily reduces performance. Introduces the boolean reentrancy guard "processingEvents" that is checked before calling QCoreApplication::processEvents() in a modal PD when setValue() is used. It is set before the first call to processEvents() and cleared after that call returns. This ensures that only one invocation of processEvents() is possible from within setValue() at a time, and thereby minimizes iterations of the main event loop and eliminates the aforementioned stack overflow condition. See - https://forum.qt.io/topic/118292/ Fixes: QTBUG-10561 Pick-to: 5.15 Change-Id: Ifa9b91cbb66881981356954ead0906bdc91fab60 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* Doc: Correct link errors qtbaseNico Vertriest2020-09-2113-16/+16
| | | | | | Task-number: QTBUG-86295 Change-Id: I27f6bbdadffb08a8794520a14dfe0e2334979575 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* qmake: Make use of QHash deterministicKai Koehne2020-09-191-1/+3
| | | | | | | | | As a build tool, qmake should produce deterministic outputs. Pick-to: 5.15 Task-number: QTBUG-86675 Change-Id: Ifc855d6ddf025cdad3aa57aee79beabf9c6008e2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix dead link in thirdparty license documentationKai Koehne2020-09-191-1/+2
| | | | | | | | | | bistream-vera is not a known license for SPDX. Instead use a DejaCode URN. Handling of such URN's is done in a separate patch in qtools. Pick-to: 5.15 Change-Id: I687507ab05d2d377a50dbc0a1037071a9de68341 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* rcc: Make output deterministic for directoriesKai Koehne2020-09-191-16/+21
| | | | | | | | | QDirIterator is documented to be non-deterministic. Fixes: QTBUG-86675 Pick-to: 5.15 Change-Id: I4161871a409bbaf85347ee6a60ef1189f56a1b22 Reviewed-by: hjk <hjk@qt.io>
* QDir: add note to docs about isAbsolutePath(":foo") returning trueAhmad Samir2020-09-191-1/+5
| | | | | | | | | | | As can be seen in the _q_resolveEntryAndCreateLegacyEngine_recursive method in QFileSystemEngine, paths starting with ':' are treated as QResources, which means that from QFileInfo's POV they're "not relative", which is why QDir::isAbsolutePath would return true. Pick-to: 5.15 5.12 Change-Id: I701d08ce43ea707bc34c928e39bea0b83597a4b6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QMetaType: Allow registration of mutable views and register iterablesUlf Hermann2020-09-196-107/+559
| | | | | | | | | | | | | | | In order to modify a container through an iterable, we need the original container to be mutable. The iterable, then, is not a conversion of the container, but rather a view on the container. The concept may be extended to other types. In order to facilitate this, provide a set of methods in QMetaType and QVariant similar to the convert family. The new methods are non-const and expect the original value to stay available during the life time of the view. Change-Id: I363621033f7fc600edcea2acb786820ccba49c86 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Extend QSequentialIterable and add QAssociativeIterableUlf Hermann2020-09-1917-1131/+2170
| | | | | | | | | And add mutable iterators. This requires some refactoring of the existing iterators. Task-number: QTBUG-81716 Change-Id: I61b3a3e8c0df5fd449679257a29d9f0c3d19c4f0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Un-export QVariantRef and QVariantPointerUlf Hermann2020-09-191-2/+2
| | | | | | | Templates should not be exported. Change-Id: I1378414a6e146eab125e43670e538afec00cd917 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Rename QVarLengthArray's private realloc() to reallocate()Jesko von Monkiewitsch2020-09-191-8/+8
| | | | | | | | | | | | | This will enable run-time debugging on Windows, using _CRTDBG_MAP_MALLOC, which uses #define to override the standard library memory management functions, including realloc. Fixes: QTBUG-86395 Change-Id: I51975dd74cab0ae8309436c86d17a59074c561e1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QDir: Use QDoc syntaxAhmad Samir2020-09-181-6/+6
| | | | | | | Replace Note/Note: with \note. Change-Id: I9a4cd79836fced9d858a478304a03e6c4bccfed5 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Q(Any|Utf8)StringView: move array size deduction feature to fromArrayMårten Nordheim2020-09-1810-33/+130
| | | | | | | | | | | | | The constructor taking an array literal will now stop at the first null-terminator encountered. And fromArray is introduced which only supports array literals. Constructs a view of the full size. Explicit so it shouldn't be surprising. Change-Id: I1497c33a5c12453a95e87c990abe6335b2817081 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QByteArrayView: move array size deduction feature to fromArrayMårten Nordheim2020-09-184-48/+110
| | | | | | | | | | | | | | | | 1. Make the ctor unable to construct a QByteArrayView from array literals other than 'char'. With the new behavior it would either be (very likely) unintended to pass e.g. a std::byte array to the ctor. And it would be confusing because you would get different sizes based on signed-ness. 2. Introduce fromArray Only supports array literals. Constructs a view of the full size. Explicit so it shouldn't be surprising. Change-Id: Ifdb55eb21057dfe7053b2561bd81e2c9825e9bc6 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QNAM: try to send headers and body togetherGiuseppe D'Angelo2020-09-182-12/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For HTTP connections, QNAM defaults to opening its TCP socket in unbuffered mode. This means that Qt will send the data written into the socket right to the kernel, queueing only if the kernel says it doesn't want more data for the moment being. QNAM itself then uses separate write() calls to write the HTTP headers and the body of the request (like POST or PUT). These 2+ writes result in headers and body being sent over different TCP segments -- even if, in principle, a POST with a few bytes of data (e.g. a HTML form, or a REST or SOAP request) could fit in the same segment as the request. Multiple writes like this interact extremely poorly with other TCP features, e.g. delayed ACKs, Nagle's algorithm and the like. In a typical scenario, the kernel will send a segment containing just the headers, wait for the ACK (which may be delayed), and only then send the body (it wasn't sent before because Nagle was blocking it). The reply at this point is immediate (because the server can process the request and starts replying), but the delayed ACK is typically 40-50ms, and documented up to 500ms (!). If one uses QNAM to access a service, this introduces unacceptable latency. These multiple writes to the OS should be avoided. The first thing that comes into mind is to use buffered sockets. Now, there are good reasons to keep the socket unbuffered, so we don't want to change that. But the deal breaker is that even buffered sockets won't help in general: for instance, on Windows, a buffered write will immediately detect that the socket is ready for write and flush the buffer right away (not 100% sure of why this is necessary; basically, after populating the QTcpSocket write buffer, Qt enables a write socket notifier on the socket -- notifier that fires synchronously and immediately, without even returning to the event loop, and that causes the write buffer flush). Linux of course offers the perfect solution: corking the socket via TCP_CORK, which tells the kernel not to send the data right away but to buffer it up to a timeout (or when the option gets disabled again, whichever comes first). It's explicitly designed to support the case of sending headers followed by something like a sendfile(2). Setting this socket option moves the problem to the kernel and we could happily keep issuing multiple writes. Ça va sans dire, no other OS supports that option or any other similar option. We have therefore to deal with this in userspace: don't write in the socket multiple times, but try and coalesce the write of the headers with the writing of the data. This patch implements that, by storing the headers and sending them together with the very first chunk of data. If the data is small enough, this sends the entire request in one TCP segment. Interestingly enough, QNAM has a call setting TCP_NODELAY currently commented out because Qt doesn't combine "HTTP requests" (whatever that means). The call comes all the way back from pre-public history (before 2011) (!). This patch doesn't touch it. Fixes: QTBUG-41907 Change-Id: Id555d14e0702c9f75c3134b18277692eb3659afe Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QMimeDatabase: fix performance regression when using the internal XMLDavid Faure2020-09-183-3/+26
| | | | | | | | | That XML was parsed over and over again, because the QMimeXMLProvider was re-created instead of re-used. Pick-to: 5.15 Change-Id: I07ff005d3f238afc1490b69a58cf4815e67d418c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Emit CancelGrabExclusive when one grabber is replaced by anotherShawn Rutledge2020-09-181-1/+2
| | | | | | | | | | | | | | Qt Quick Pointer Handlers depend on this behavior: QQuickPointerHandler::onGrabChanged() receives only the grabber that was losing the grab or the one that is receiving it, not both at the same time. UngrabExclusive means the original grabber simply relinquished the grab by setting the exclusive grabber to null. CancelGrabExclusive means the new grabber took over the grab that the old grabber had before. Task-number: QTBUG-86729 Change-Id: Iefca6fe91b11fcb03d2c6ac3598841c924facb22 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Gif decoder: fix read error caused by ub checkEirik Aavitsland2020-09-181-5/+7
| | | | | | | | | | | The recently added check to avoid negative-bitshift ub ignored that the algorithm will sometimes use a negative bitcount value as a flag. This caused reading failure for some frames. Pick-to: 5.15 5.12 Fixes: QTBUG-86702 Change-Id: I4c247a7eb6102f9b51cc8ac708c60db80d609e38 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* qmake: Support multiple /MERGE:from=to options in MSVC generatorJoerg Bornemann2020-09-181-1/+7
| | | | | | | | | | | | Any but the last /MERGE:from=to option passed to QMAKE_LFLAGS was ignored. Now, the first options gets a <MergeSections> tag and all further options are added as AdditionalOptions, because vcxproj files / the VS property editor do not support multiple MergeSections entries. Pick-to: 5.15 Fixes: QTBUG-86062 Change-Id: I65bddf0b8c7ed6c162008d6ad1b58c2aba2d07d9 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* CMake: Fix FindWrapRtJulien Schueller2020-09-181-1/+1
| | | | | | | | We must use the LIBRT location instead of LIBRT_FOUND which is not set anywhere. I failed to replace this one in my previous patch. Change-Id: I6e2df82c31e29018d99afec1eecfb80a321fddd4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Handle NSEvent*MouseDragged in QCocoaWindow::startSystemMove()René Meusel2020-09-181-0/+3
| | | | | | | | | | | The documentation for [NSWindow performWindowDragWithEvent:] only mentions mouse-down events, but starting a drag from move and drag events works too, so include them as well. Pick-to: 5.15 Fixes: QTBUG-85105 Change-Id: Ib6c29ed4035bfccc61d50a7f95f564fb3d56fcf6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix a double deletion in QDomAttr::setNodeValue()Friedemann Kleint2020-09-181-1/+3
| | | | | | | | | | Check the reference count before deleting. Patch as contributed on bug report. Pick-to: 5.15 5.12 Fixes: QTBUG-86547 Change-Id: I2cb197e3eeda7ade2442c23f6b4f1ae6ff2ff810 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Output QSysInfo::productType() and productVersion() in test config lineMitch Curtis2020-09-181-1/+2
| | | | | | | | | | This makes it easier to know which values to use in BLACKLIST files for a flaky test, for example. Pick-to: 5.15 Change-Id: I12af99d68f97e016aa42be9ae9d70de5fc0a58ed Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Say hello to PixelGadgetMorten Johan Sørvig2020-09-183-0/+445
| | | | | | | | | | | | Utility for visualizing and debugging high-dpi rendering using QPainter, at different (fractional) scale factors. In addition contains prototype code for mitigating painting artifacts such as drawing outside the clip rect when scaling. Change-Id: I44f39315ad9674790d51413dddf41e3a51043da6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Say hello to DprGadgetMorten Johan Sørvig2020-09-183-0/+209
| | | | | | | | | | DprGadget displays the devicePixelRatio for the current screen using a large friendly font, as well as the platform and environment inputs used for determining the DPR. Change-Id: Id619edad181eb7717f18eb98af341d6582a843a1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QDateTimeParser: skip some needless bracesEdward Welbourne2020-09-181-46/+28
| | | | | | | | | Simplified the logic around reconciling hour12, ampm and hour in the process. Mindless coding-style tidy-up. Change-Id: I0b7cabc57539d0d7201fef33e0120b84f4bb4994 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>