Commit Graph

54006 Commits

Author SHA1 Message Date
Richard Moe Gustavsen
30276cec3d QIOSTextInputOverlay: listen for selection changes, also for Qt::ImReadOnly
The focus object can emit selection updates (e.g from mouse drag), and
accept modifying it through IM when dragging on the handles, even if it
doesn't accept text input and IM in general (and hence return false from
inputMethodAccepted()). This is typically the case for read-only text fields.
So we should listen for selection changes and enable handles also for
this case (unless the IM hints tells us explicitly not to use handles/edit menu).

Fixes: QTBUG-91545
Change-Id: I2855505fc229e954b2c43f5e11374e64bba7eb4e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-11-11 22:24:30 +02:00
Richard Moe Gustavsen
aae4d52cbb QIOSInputContext: use QIOSResponder when the focus object is Qt::ImReadOnly
In Qt, Qt::ImEnabled means that the focus object accepts text input from
input method (IM) events. But the IM API also contains API for dealing
with text selections. Text input and text selections are logically two
different operations, but since IM makes use of selections to implement
text input (like selecting a word to suggest a spelling correction), it's
understandable that they are combined into to same API.

So when a focus object reports Qt::ImEnabled to be false, it only means
that it doesn't accept input. E.g a TextArea in QML with "readOnly:true"
will set Qt::ImEnabled to false. At the same time, it can have
"selectByMouse:true", which lets you select text with the mouse.
This behavior is consistent in Qt, for both Quick, Controls 2 and Widgets.

Since we want to support any selections done in controls/widgets on iOS
with selection handles and edit menus, regardless if the focus object
accepts input or not, this patch will set the QIOSResponder (with read-only
actions) as first responder when we detect a focus object with Qt::ImReadOnly.
This means that if a query for Qt::ImReadOnly returns "true", we take that
to mean that it implements the IM API, but without accepting input.

Task-number: QTBUG-91545
Change-Id: I07349909a3bca81f484a2e9af9672428dca62c49
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-11-11 22:24:30 +02:00
Richard Moe Gustavsen
2211092aa5 QIOSTextInputResponder: factor out the "read-only" part to a QIOSTextResponder base class
QIOSTextInputResponder has two responsibilities; It takes care of
handling text input from UIKit, and to implement first responder
actions related to the edit menu, like copy and paste.

Currently the responder offers both writable (paste) and
readable (select, copy) actions. Because of the former, it means
that it can only be used for focus objects that accepts text input.

Since we also want to be able to show an edit menu for selections
done on a read-only input field, this patch will factor out the
read-only actions we want for that case into a QIOSTextResponder
base class. An instance of this class can be used as first responder
for a focus object that has read-only text, but otherwise doesn't
support text input. This part is implemented in a subsequent patch.

The remaining set of writeable actions, together with input method
handling, will continue to be in the QIOSTextInputResponder subclass.

Task-number: QTBUG-91545
Change-Id: I1c215bb509eb7820c6c60f7ad806f61a5de02ded
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-11-11 22:24:30 +02:00
Volker Hilsheimer
c7e8133a95 QSlider: Always set the sunken state and the active control
initStyleOption should initialize the state based on which controls are
pressed or hovered, not only when painting but also when calling other
style APIs.

Pick-to: 6.2
Task-number: QTBUG-98093
Change-Id: I482793b7de38657aa36a20d0abab8845155ad0e9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2021-11-11 20:08:18 +01:00
Morten Johan Sørvig
0a8a4698d6 wasm: fix native timer update for the no-timer case
QTimerInfoList::timerWait() does not update the timespec
out argument if there are no active timers, which caused
the current code to calculate an arbitrary toWaitDuration.

Instead use the timerWait() return value, and clear any
native timers if there are no active Qt timers.

Pick-to: 6.2
Change-Id: I7d5ec4c2930000bece6f6ea6c63e76f4df543b04
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2021-11-11 15:24:36 +00:00
Morten Johan Sørvig
966f7cb5dd wasm: make timers work for the new event dispatcher
Don’t exit from the timer callback if there is no main
thread event dispatcher, since it could be that the main
thread event dispatcher is of the old event dispatcher type.

Pick-to: 6.2
Change-Id: Ibb7a34a99e2001b52d2a985022f5baa7cd2152bf
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2021-11-11 17:24:35 +02:00
Michal Klocek
e6db4206b8 Fix not respected qt.conf settings
Change 6fb569af95 introduces reloadOnQAppAvailable for
QLibrarySettings, however it is missing a reload check
for hasPaths, this breaks essentially reading custom qt.conf

Add missing check.

Fixes: QTBUG-97382
Fixes: QTBUG-97383
Fixes: QTBUG-97947
Pick-to: 6.2
Change-Id: I28379d9dd38357c290edd44b93d3bea489b9cefe
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-11-11 14:30:00 +00:00
Venugopal Shivashankar
f9e6ee655f Doc: Fix qdoc warnings
In addition, added the missing warninglimit
entry to a few doc configs.

Change-Id: I51b9d2ad66123a2a9673a3b42870662641375e6b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-11-11 11:34:49 +01:00
Alexey Edelev
f6d210a0d3 Add missing qt namespace in qthreadstorage.h
Wrap 'else QT_CONFIG(thread)' block in qthreadstorage.h with qt
namespace

Pick-to: 6.2
Fixes: QTBUG-98085
Change-Id: Ica1817fa6beeaf9e4883edaa8738f042b29f0c5e
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-11 08:52:02 +01:00
Thiago Macieira
da326804ea qmetatype.cpp: provide missing initializer for const variable
qmetatype.cpp(1565): warning #854: const variable "metatypeHelper" requires an initializer -- class "struct <unnamed>" has no user-provided default constructor

Change-Id: I2bbf422288924c198645fffd16a9b868ff7adcb9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-11-10 17:29:54 -07:00
Martin Storsjö
d7d9451361 Fix 32-bit builds broken by mul_overflow() on qint64
Use std::integral_constant to avoid instantiating QIntegerForSize<16>,
caused by 2b26dea51b

Change-Id: Ia6f49a1dcd82835c7e76200a650767fc519eab90
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 23:23:23 +01:00
Thiago Macieira
3ba1a196aa Q{XcbGl,EglFSDevice}IntegrationFactory: remove unused extra plugin path
Cargo-cult copied this from somewhere, unnecessarily. This just made the
code bigger for no reason.

Task-number: QTBUG-97950
Pick-to: 6.2
Change-Id: Ice04365c72984d07a64dfffd16b48520d42c7043
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-11-10 10:21:43 -08:00
Thiago Macieira
b0dc6abfb2 QGuiApplication: properly decode path command-line arguments
Using QFile::decodeName, not QString::fromLocal8Bit.

Pick-to: 6.2
Change-Id: Ice04365c72984d07a64dfffd16b47dcbfee23341
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-11-10 10:21:43 -08:00
Ievgenii Meshcheriakov
893990a67e QFileSystemEngine: Don't use _?W suffixes
We don't use W suffix for most of the Windows API so there is no
need to use it here either. Also remove W suffix for variables of
type TRUSTEE (was TRUSTEE_W).

Change-Id: Id67b772ba5d3232f882841a1e581fb1bbd392fa4
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-11-10 19:21:43 +01:00
Ievgenii Meshcheriakov
d7e1416580 Use nullptr to represent null pointers
Replace occurrences of NULL and 0 when used for pointers.

Change-Id: I485e73d22a1a85d1303f3e0967cd4e8f10ff5d33
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-11-10 19:21:43 +01:00
Ievgenii Meshcheriakov
65041967b6 QFileSystemEngine: Fix some code style issues in Windows backend
Wrap lines at column 101 so that it is easier to edit the
file and review the changes in Gerrit. Move comments when
they cannot be easily wrapped. Add curly braces to `if`
statements if they became multiline. Run `git clang-format`
on the file afterwards.

Change-Id: Ib21afd65147a7b202e031d4a865b5f615e5ad6d8
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-11-10 19:21:43 +01:00
Joerg Bornemann
a3d8a359f1 configure: Fix --foo=bar arguments
This amends commit c5409964b0.

When detecting a variable assignment, we must ignore arguments that
start with a dash.  Otherwise, arguments like --prefix=~/Qt are ignored.

Change-Id: I3b143113b94ca0d8af92679c1f567fbcec298349
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-10 19:21:40 +01:00
Andreas Buhr
2d7900e2b1 Repair github action workflow
There is a github action configuration in qtbase, which is,
however, hardly maintained. In its current form it is broken.
This patch repairs it.

Change-Id: I075fa79157c4240cd550a90a86977e8ecf808cc8
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-11-10 18:57:33 +01:00
Ievgenii Meshcheriakov
1cc9ac71ac Move toMode_t() from qfilesystemengine_unix.cpp to qfiledevice_p.h
The function is needed in multiple files to implement QDir::mkdir()
and QFile::open() methods that accept a permission argument on Unix.

Task-number: QTBUG-79750
Change-Id: Ib0853f7d12bcb5d6f1116b43ec1aa07b6554bb93
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 18:22:07 +01:00
Edward Welbourne
7db0eeae34 Clean up exports from qlocale_p.h
Explain why QSystemLocale needs to be an export. Unexport
QLocaleId::fromName() now that qttools no longer uses it.
QLocalePrivate was only Q_CORE_EXPORT for the sake of one use in
tst_QLocale, that can now be replaced by a call to a public QLocale
method.

Change-Id: I1efe8ee03488acfc6e1c36661f6e956a86e191c3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-11-10 18:16:24 +02:00
ChunLin Wang
62b7130423 QPushButton: emit released signal when mouse dragged out of bounds
After special processing for hover, QPushButton::mouseMoveEvent()
needs to call the base class function, like every virtual override
should, to continue processing other logic.  Amends
3310e13a17

Fixes: QTBUG-97937
Pick-to: 6.0 6.2
Change-Id: Ic2e111d6c38371e0aa04423f5fb26c52717bf5fb
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-11-10 16:16:24 +00:00
Ievgenii Meshcheriakov
f28e161361 Remove useless blocks
Don't put the code inside two blocks for no reason.

Change-Id: I54b8d6fbfab50a26ddcd8ec07ba689e5094bcad3
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-11-10 16:45:52 +01:00
Juha Vuolle
605d383a70 CMake: Add CoreBluetooth framework for macOS
The Qt bluetooth module uses ${FWCoreBluetooth} when building for iOS,
but that evaluated to empty.

Pick-to: 6.2
Change-Id: I93ff2c30697a912bed454087ae260fae9cc41b0f
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-10 16:59:17 +02:00
Eskil Abrahamsen Blomfeldt
518790af79 Fix tst_qfontdatabase on Windows with Freetype
Since e05e3c7762, the advance test in
tst_QFontDatabase::condensedFontMatching() passes with the bundled
freetype engine, so the XFAIL causes a failure when running with this
configuration.

Pick-to: 6.2
Change-Id: Ie6fbccfa0d9c79654563e9e3f19694f252e32fc6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2021-11-10 15:37:03 +01:00
Tor Arne Vestbø
9991ca9163 cmake: Don't notify/warn the user when Xcode is not found
We can technically build without Xcode, as long as the command line
tools are installed. We reflect that by an empty QT_MAC_XCODE_VERSION
variable.

Pick-to: 6.2
Change-Id: I40ffa28a628157e0a2c63656065ea7c41a680e01
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-10 13:47:42 +00:00
Joerg Bornemann
3582116a60 qmake: Introduce the variable MSVC_TOOLSET_VER
...which represents the version of the MSVC platform toolset.

This variable is used to set the platform toolset version in .vcxproj
files.  Before, the platform toolset version was determined in qmake's
C++ code.  Now, it's set next to where MSVC_VER is set in common mkspecs
.conf files.  This will simplify supporting new Visual Studio versions
in the future.

Change-Id: If78c921f93c6378829746d617c7e7d312174257e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-10 14:47:42 +01:00
Joerg Bornemann
1c880752eb qmake: Support Visual Studio 2022
Extend the detection of the MSCV_VER variable and make VS 2022 known to
the vcxproj generator.

[ChangeLog][qmake] Added support for Visual Studio 2022.

Pick-to: 6.2 5.15
Fixes: QTBUG-97975
Change-Id: Id2c0a0b7800f721e9e34189f0a40ba4830283578
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-10 13:47:42 +00:00
Edward Welbourne
34287c9eae Add QGregorianCalendar::yearSharingWeekDays()
When fixing up problems on system APIs with limited date ranges, we
need a year, inside the supported date range, in which Gregorian dates
fell on the same days of the week as a given year outside the range.
A year with the same last two digits makes handling of two-digit year
formats easier.

Change-Id: If64ee27e829f9dcfd5504ed8ba51f72c36297242
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 14:47:42 +01:00
Edward Welbourne
2b093450c3 Improve unicodeForDigit()'s comments
I'd typo'd the Suzhou one-digit. Record that our CLDR scanner verifies
this is the only number system with non-contiguous digits, rather than
merely recording a (now old) CLDR version in which that was true.

Change-Id: I6f5b5d1f0a5aa1cd0557f62f296777b90b603087
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 14:10:20 +01:00
Edward Welbourne
6705707088 Use a local check-macro to save lots of repetition in time-zone tests
Tests of QTimeZone::dispayName() were burying most of what was
interesting in the variations among them by repetition of a large
amount of boilerplate. Package the repetition in a macro so that
the differences between checks are more evident.

Change-Id: I23bcafab641b7d3bed50248ba5313250c150d30c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 14:10:20 +01:00
Andreas Buhr
30a70fc6e0 Workaround MSVC 2022 bug about QString::replace
MSVC 2022 (17.0.0) complains about "'QString::replace':
12 overloads have no legal conversion for 'this' pointer".
This is a compiler bug. It is reported to MS. Still we workaround
it here so that qtbase can be built with MSVC 2022.

Pick-to: 6.2
Task-number: QTBUG-96975
Change-Id: I0180e2e6760d2809ca61e3cd8f02b04f970172a7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2021-11-10 14:10:20 +01:00
Yuhang Zhao
6652bf2353 Bump WINVER, _WIN32_WINNT and _WIN32_IE to _WIN32_WINNT_WIN10 (0x0A00)
And bump NTDDI_VERSION to 0x0A00000B (NTDDI_WIN10_CO) at the same time,
to unblock the developers from accessing the latest Windows APIs.

Pick-to: 6.2
Change-Id: Ifbc28c8f8b073866871685c020301f5f20dc9591
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 20:31:05 +08:00
Laszlo Agocs
a8be40bd64 rhi: Expose the maximum uniform buffer range limit
Pick-to: 6.2
Task-number: QTBUG-97715
Change-Id: I7f0a52c410b9b77f735fb3b7fd33141674bb0cda
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2021-11-10 13:31:05 +01:00
David Skoland
cdf784a1c7 Remove unreachable breaks
Change-Id: I0e005964624125d3ab12f77c94fd393802547a13
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-11-10 13:31:05 +01:00
Topi Reinio
68942a3772 Doc: Add \QtMajorVersion macro
This macro expands to the major version of Qt, complementing the
already existing \QtMinorVersion macro.

Pick-to: 6.2 5.15
Change-Id: I64861f8cc50d73f34369311a19b5e554645a4127
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2021-11-10 13:31:05 +01:00
Øystein Heskestad
09291eead4 Add additional grapheme, word, and sentence break class tests from tr29
Stop turning THAI CHARACTER SARA AM into a grapheme boundary because it
breaks a test and chromium does not consider it to be a separate
grapheme.

Fixes: QTBUG-88545
Change-Id: Ib1aea8dbb66ac42b2129cf9fe04c39f5f76eeb36
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 09:44:03 +01:00
Fabian Kosmale
76b4739e07 QFactoryLoader: unconditionally provide toJson
Amends c0a8cfe167. The StaticPluginLoader
needs it, too, and that one is available in non-library configurations.

Change-Id: I5d396e78abe7358a5df5ef816cfe92137d3ae4b5
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 09:18:07 +01:00
Ievgenii Meshcheriakov
aee0021fc8 QLocale: Add support for Kaingang and Nheengatu languages
Update the locale generation script to support Kaingang and
Nheengatu languages. These are new in CLDR v40. Regenerate
the locale data.

Task-number: QTBUG-94358
Change-Id: I5195d5161d8c4d9f17129bbcfde39dfd3fcf1cd5
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-11-10 00:36:12 +01:00
Ievgenii Meshcheriakov
96a03533f9 Update CLDR-derived data to newly-released v40
Update tst_qlocale to take into account "narrow" day representation
change for Russian locales. This version of CLDR changes narrow forms
to one letter. Previously those forms were identical to short forms
(two letter). The new representation is consistent with other languages
and so does not appear to be a bug.

Fixes: QTBUG-94358
Pick-to: 6.2
Change-Id: I9724c281a250685da8232e5c05c9c375a8c79253
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-11-10 00:36:12 +01:00
Ievgenii Meshcheriakov
2c505eea01 locale_database: Add entry for 'South Sudan Standard Time'
This timezone is new in CLDR 40, Olson database calls it Africa/Juba.
The offset is UTC+2.

Reference: https://techcommunity.microsoft.com/t5/daylight-saving-time-time-zone/2021-time-zone-updates-for-republic-of-south-sudan-now-available/ba-p/2234981

Task-number: QTBUG-94358
Pick-to: 6.2
Change-Id: Ib70dbd9b472eb9cf8cb62a0eb5e241199148c077
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-11-10 00:36:11 +01:00
Andreas Buhr
0098dd8120 Capture full logcat output in Android unit tests
Previously, when running unit tests on Android, the log presented
to the user was the log as known to the Qt logging system. This
does not include log messages generated by Java code using e.g.
Log.d("message"). Neither does it include log messages by system
libs. This patch changes androidtestrunner to capture the full
logcat output for the unit test. This improves the developer
experience when working with unit tests.

Fixes: QTBUG-93438
Change-Id: I580f728349041eb8a84a32d187754b7b5448f512
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-11-09 22:39:24 +01:00
Ulf Hermann
81c92aec66 QTestLog: Properly own the loggers
Previously, the loggers would leak if the application failed to call
stopLogging(). Now they are owned by the global static which will delete
them in that case.

Also, since we have to adapt loggerCount() to the fact that std::vector
uses size_t, recognize that we only ever want to know whether the number
of loggers is 0. Change the method to only provide that information
rather than the actual number.

Change-Id: Ieb2e185048d573ec7f36373ad49bb2a0ca391ce3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-11-09 21:36:50 +01:00
Fabian Kosmale
a4ce85f356 QDomDocument::setContent: Open device if necessary
This restores the Qt 5 behavior in Qt 6, but prepares for disabling it
in Qt 7. We want to deprecate the current behavior, as it makes it
unclear who is responsible for calling close.

Fixes: QTBUG-97747
Pick-to: 6.2
Change-Id: I2c99eb96667e784576d8850085068ca334d75b16
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-11-09 18:33:39 +01:00
Allan Sandfeld Jensen
c677b3b8af Add compatible weak pointer move operations
We have those on QSharedPointer, so adding them for consistency.

Change-Id: Iab5eddc79206605a4bcce46f63e0fb685aed40ff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-09 13:42:23 +02:00
Hannah von Reth
740d652f2d Fix internal mimetypes db on Windows when compressed by an external tool
Ensure to use binary encoding when handling the output of the
compression tool.
With out this change \r are dropped and the compressed file is corrupted.

Change-Id: Iaf9b1fc015a376682f793aff079f45d03b201aec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-09 08:39:38 +01:00
Eirik Aavitsland
1a984b3d2d Avoid painting outside boundaries when printing QGraphicsProxyWidget
Implement clipping to widget geometry when rendering to other
paintdevices.

Fixes: QTBUG-98026
Pick-to: 6.2 5.15
Change-Id: I5652bdb8cc052ae34f05ea7963943d2b5b28e220
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2021-11-09 01:34:31 +01:00
Tor Arne Vestbø
851ed6f0b1 Don't quit application if we're not in exec
The documentation states that the function will not have any effect
before control enters the main event loop. Prior to 0c02f133f3
this was incidentally true due to QCoreApplication::exit just setting
quitNow to true and exiting all the event loops (which before exec
were none), and exec() setting quitNow to false explicitly. But
now that we plumb the quit down to the platform we can't rely
on this incidental behavior, and need to check explicitly.

Fixes: QTBUG-98088
Pick-to: 6.2
Change-Id: I54cece3630e39e4456abc3b372839c0b5c4c4713
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2021-11-08 23:44:05 +01:00
Joerg Bornemann
7be143f438 CMake: Fix default install prefix of top-level non-developer builds
A top-level non-developer build is supposed to default to a prefix like
"/usr/local/Qt-6.3.0".  That wasn't the case.

In QtSetup.cmake we check CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT,
set CMAKE_INSTALL_PREFIX and did the same thing later in
QtBuildInternalsExtra.cmake, with a different value.  Make sure we run
the latter code only in per-repo builds.

Pick-to: 6.2
Fixes: QTBUG-98087
Change-Id: I4a1291dfd126aa11c21d69809f2cf7b075c98d2e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-08 23:12:33 +01:00
Mårten Nordheim
ac7e94090f qoperatingsystemversion_win: fix thread race
If two threads call the function at the same time before the static is initialized
one of them may end up with a half-written object.

Amends 3fe89eec61

Pick-to: 6.2
Change-Id: Ie08970f9ee283fd75292a8b44a1fca89de4b04eb
Reviewed-by: Yuhang Zhao <2546789017@qq.com>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2021-11-08 22:39:45 +01:00
Tor Arne Vestbø
2010df52d4 Draw QTableView grid lines centered between table cells
We were reserving space between table cells corresponding to one logical
pixel, which on retina screen results in two device pixels. By drawing
the grid line with a cosmetic pen, we were only filling one of these
pixels, leaving space for leftover pixel dust from earlier blits.

By drawing with a non-cosmetic pen of size 1, and ensuring that the grid
line is drawn at the center of the grid, we end up filling the entire
grid line, without overdrawing the table cells.

Pick-to: 6.2
Change-Id: I7f4d2b27380e5a3d221e265a25f7531fdc4a02b3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2021-11-08 21:26:52 +01:00