summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Change QCollator's default locale to QLocale().collation()Edward Welbourne2021-07-151-4/+8
| | | | | | | | | | | | | | | | | | | | | | This replaces QLocale::system().collation(), which left client code with no way to change this default. Since QLocale's default is the system locale initially, the old behavior is retained until the first call to QLocale;:setDefault(). Addition of a separate collation locale in 5.14 changed from using the default locale to using the system's collation locale; the present change restores the ability to override this. [ChangeLog][QtCore][QCollator] The default locale used by QCollator is now the collation locale of the default QLocale. This restores the ability (lost at 5.14) to control the locale used by QString::localeAwareCompare(), while retaining the use of a collation locale when the default is the system locale. Task-number: QTBUG-95050 Change-Id: I232772bb8f23fffd74573174de70ef2deae372a9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 973ca1fac680d8c593645058fae3fe7c84a7fa16) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QTranslator: Fix loading of meta catalogs from absolute .qm pathKai Köhne2021-07-151-3/+8
| | | | | | | | | | | | | | | | In case of QTranslator translator; translator.load("somedir/file.qm"); and file.qm being a meta catalog file, the sub-catalogs in somedir couldn't be located, unless "somedir" was set as second argument. Fixes: QTBUG-95013 Change-Id: I06103244ce2ff9800c2c64cb0c17f9bc7ef0e8de Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> (cherry picked from commit 85eaae36f6951f03c4aeac50ca826fea5cc088bd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Point out that QTreeView's expandAll/expandToDepth don't fetch dataVolker Hilsheimer2021-07-151-2/+11
| | | | | | | | | | | | They will only expand what's currently in the model. As a drive-by, remove superfluous : after the \warning macro. Fixes: QTBUG-94981 Change-Id: I85d38373fb7edf5a5407622b32870e7bcd5d9aeb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit f6bca6261156e8f648bf7d41ba1728ef17cd6889) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use base style when drawing item view item with only indicator styledVolker Hilsheimer2021-07-141-5/+9
| | | | | | | | | | The base style should still draw the item and the selection highlighting. Fixes: QTBUG-83619 Change-Id: I1cd8c4fce48cb5543337415918fc99ffb5e19e00 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 1d48572b4ea765cb8d81bf227eabaf907a91e7de) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QMultiMap::erase - extend docs to specify iterator limitationsIvan Solovev2021-07-141-0/+4
| | | | | | | | | Task-number: QTBUG-91736 Change-Id: I7cd58e010af5dd59404e37c55f6ebd91c4631b3f Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit d1d9caf12d103957dccc867c349c4514a28cfe6c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Don't mangle QByteArray settings with @ prefix by decoding as UTF-8Tor Arne Vestbø2021-07-141-1/+9
| | | | | | | | | | | | | | | | | | | QSettings encodes QVariants as @Type(data) strings. If that data contains a null-byte, we write the string as UTF-8 encoded CFData. When reading it back we look for a @ prefix, and then pass it as UTF-8 through stringToVariant. The problem arises then the user writes raw QByteArrays with a @ prefix. We can detect this situation by checking the result of stringToVariant, and if it's just a simple conversion of the string into a QVariant, we know that stringToVariant hit its fallback path due to not finding any embedded variants. If that's the case, we return the raw bytes as a QByteArray. Change-Id: I4ac5c35d0a6890ebea983b9aca0a3a36b0143de2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 3eac6079d9a02fbedd3740186eaaf21134dc45c2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QTableView: fix selection with rows and cells in ExtendedSelection modeChristian Ehrlicher2021-07-142-5/+4
| | | | | | | | | | | | | QTableView stored the current row/column selection start in an own variable instead using currentSelectionStartIndex. This leads to an inconsistent behavior when the selection is done with a click on the header and then in a cell (and the other way round) Fixes: QTBUG-92561 Change-Id: I4c8bda3a938de451b6eff2819141e86a6870fbef Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit e8b3d35a18e7e4cf6543868d89d6060c90314f39) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Don't make frameless tool windows miniaturizableVolker Hilsheimer2021-07-141-2/+4
| | | | | | | | | | | | | | | Amends 556fbbea6e96c07c6cbd552c4179e5717e799acf, which breaks translucency of frameless tool windows. Possibly a bug in macOS, a window being made miniaturizable should not have side effects on background or translucency. Fixes: QTBUG-95042 Task-number: QTBUG-65637 Change-Id: I651196e3cf8a9c59b250e5f1b4064cc4ded02372 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit e71a5d5cc3c0337e7dbd5d571ecee5668baf8b63) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDuplicateTracker: reserve() for at least Prealloc elementsMarc Mutz2021-07-141-2/+3
| | | | | | | | | | | We have space for so many elements, so reserve()ing anything less makes no sense. Change-Id: I84d692b10a6a491c37661f84aa3fdd9af43d71e5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 16db1d21659793909bd1719805d7ff8de6906f88) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDuplicateTracker: port reserve() from int to qsizetypeMarc Mutz2021-07-131-1/+1
| | | | | | | | | Was missed in the int -> qsizetype port for Qt 6.0. Change-Id: I1ae8190601f2e1a1bc02a736c12230a9c71acb18 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit fcfc854def12500658d5d863797169279b698498) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDuplicateTracker: fix the static buffer size calculationMarc Mutz2021-07-131-1/+7
| | | | | | | | | | | | Instead of just sizeof(T), we, of course, also need to take the support structure into account, to wit: the bucket list and, in the node, the next pointer and the stored hash value. Change-Id: I8227a95c49e316aacf3d4efd8f6170ea3bea1cf0 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 3c88e12beb22d8ea11b8a7006a71ba9773c6d183) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Map QSurfaceFormat color space to NSWindow via ICC dataTor Arne Vestbø2021-07-131-2/+5
| | | | | | | | | Instead of special casing sRGB. Change-Id: I7ad20c4b9600210333d5e44c3a2d20ce7d39dd92 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 3c3f6ebdbb48c9c071ef1a34a955b36bdaed4f99) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Don't assume NSEvent charactersByApplyingModifiers: produces characterTor Arne Vestbø2021-07-121-2/+5
| | | | | | | | | | | In cases where the keyboard layout doesn't have a mapping for a given event and modifier combination the result will be an empty string. Fixes: QTBUG-90683 Change-Id: Ice06241f0ae71a19cde041410818decc312bc630 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit 7c85a45fde5dd3f84eb033261ccb0d54ee72d30c) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix QTextFormat::FullWidthSelection for right-to-left text layoutsOliver Eftevaag2021-07-101-4/+11
| | | | | | | | | | | | | | | | Using the QTextFormat::FullWidthSelection property to select a line would previously not take into account right-to-left text layouts. With this patch, the whole line should now be drawn correctly for both left-to-right, and right-to-left layouts. Fixes: QTBUG-91125 Change-Id: Ide7b340cd7b4060e7c00e55e0011a86ffdfb5eb4 Done-with: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit a7894855f2f59028bea9cd1aef07ec1e2c713c90) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QMap::erase - extend docs to specify iterator limitationsIvan Solovev2021-07-091-0/+4
| | | | | | | | Task-number: QTBUG-91736 Change-Id: I4a226e0bbcde91f3149db9a0697981169ec25276 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 74d6c36eb7b80cfdecd80c5e6f8c1f0604f0b496) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix rvalue overload of qobject_pointer_cast for GCC 9.3Marc Mutz2021-07-091-5/+1
| | | | | | | | | | | | | | | | The code assumed that any C++ implementation would implement the resolution for LWG2996 in C++20 mode. While that may be the case in the future, the current state in GCC 9.3 as shipped in Ubuntu 20.04 LTS is that it doesn't, which leads to tst_qsharedpointer fail there. Fix by using the safe version of std::move, std::exchange, which guarantees the state of the src object, no matter what the callee does. Change-Id: Icc39b527df4d3a7b398ff2b44bcbdf9082b81f2f Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 0632494bd47e924ce7914b6457791d4612599e5f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix auto completion in QFileDialog on WindowsVolker Hilsheimer2021-07-081-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amends c0b3c06a7d4f6a2f90742e8dc81c898082a70416. The QCompleter used by QFileDialog uses starts-with matching of the path parts, for all parts of the path. It uses the EditRole of the underlying model for the data to match. The path parts used for a path on Windows are "C:", "Users", "etc...", and then finally whatever input has been typed so far. If we try to match that against a starts-with rule against "Local Disk (C:)", then it will fail and the completer will never have anything to show. So, for the EditRole, return just the volume drive letter as we did before c0b3c06a7d4f6a2f90742e8dc81c898082a70416, not the volume name. Neither can be edited anyway. This happens to then match the native file dialog behavior, which doesn't complete "L" to "Local Disk (C:)" if the Computer contents (ie. volumes) are shown. Augment the QCompleter test case to cover that scenario (it already has everything set up for this particular combination, even though we are actually testing QFileSystemModel returning the correct data). Fixes: QTBUG-94799 Task-number: QTBUG-78043 Change-Id: I14844d91601e9b16dc07cff2ca48713acb7cdd09 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit d2e88b8094db0bda6b3ab89172352861ae18d301) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix QMultiHash::keys(const T&) overloadIvan Solovev2021-07-081-1/+1
| | | | | | | | | | | | | The method was never tested, but it failed to compile after QMultiHash was introduced as a separate class in 6.0. This patch fixes it and adds some unit-tests to cover the case. Task-number: QTBUG-91736 Change-Id: I5dd989d4775efc6a9bb13c5ed1d892e499d95dc2 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit a8bcf68a5ec91b4ca4209c36310def145c8afe97) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove the dead code for blocking methods from QtConcurrentSona Kurazyan2021-07-082-56/+0
| | | | | | | | | | | | | | | After 79fd1cb2c631b6084bf10874205d27f5b53c907a the methods for running QtConcurrent algorithms in the blocking mode aren't used anymore. Since ThreadEngineBase and ThreadEngineStarter classes aren't meant to be used externally, it should be fine to remove startBlocking() methods now. Removed the unused code and adjusted the tests accordingly. Change-Id: Ifb13820ce207869d6f720bcb5be8d35bb355fe33 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> (cherry picked from commit 1bf75f2a661c05c7f1126187310d7df3f9704af5)
* QMultiHash::find - prevent detaching shared nullIvan Solovev2021-07-081-1/+3
| | | | | | | | | | | | | | Do not detach when find(key, value) is called on an empty QMultiHash. As a drive-by: fix return value for QMultiHash::remove() in case of empty QMultiHash. Task-number: QTBUG-91736 Change-Id: I1e32f359e7ee9ce8403dae79d02e0b88a20ec4a5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 82499f81478032911d8f788aa28e8d780b31c973) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix binding functor addressing in QPropertyAndrei Golubev2021-07-081-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | We create the callable object at sizeof(QPBP) offset from the beginning of the memory block. However, evaluateRecursive() uses sizeof() + alignment when fetching that same callable from the memory While on 64-bit platforms this is fine due to sizeof(QPBP) == QPBP::getSizeEnsuringAlignment(), this is broken for 32-bit systems where there's actually alignment bits that follow the QPBP struct in memory (and thus we cast a random memory location to an object) (Note: QPBP is short for QPropertyBindingPrivate) To fix this, change the offset for creation and destruction of the callable to the one that uses alignment. This way, evaluateRecursive() code becomes correct Fixes: QTBUG-93890 Change-Id: Ief57051846632fa61df4b79b3f054c25062a9498 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 565864090d4ca38768c2268ffd265d2f4b49d1b0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* fc: Clean up current config on shutdownEskil Abrahamsen Blomfeldt2021-06-302-0/+6
| | | | | | | | | | | | | | | | | | | | The FontConfig database had a static leak because we never dereferenced the current config. To make address sanitizer output less noisy, we clean this up on shutdown. From FcConfigDestroy docs: "Note that calling this function with the return from FcConfigGetCurrent will cause a new configuration to be created for use as current configuration." So this should be safe even if application execution continues after Qt shutdown, but it could trigger creation of a new current config in that case, if FontConfig calls are made. Fixes: QTBUG-92477 Change-Id: I596055a84edc1a1b06157e2adf6c8627c6802db1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 4f730fc5f13b906d7bb2461f803ecedb4937c16d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Revert "Windows: Add synthesized fonts also when there is a style name"Eskil Abrahamsen Blomfeldt2021-06-302-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a partial revert of commit f385b8827a75688b8a2cbd51e8da8a602d7f9567. This causes issues because we may overwrite genuine styles with synthetic ones. Lets say for instance that we register "Roboto Bold" and then later we register "Roboto Thin". When we register "Roboto Thin" we also register an alternative font which is called "Roboto" (because this is the typographical family name of the font) with bold weight, because we know Windows can synthesize this. This would work fine, except that on Windows we also store the original face name of the font as a user-pointer in the database. This contains the legacy name of the font: "Roboto Thin". This will override the font that is already stored. When we look up "Roboto" + bold weight in the database later, we will find this synthetic font, replace the requested family name with the legacy one "Roboto Thin" and use this instead. The right fix for now is to revert the cause of the regression. If we want to re-fix the original bug, we might be able to reintroduce f385b8827a75688b8a2cbd51e8da8a602d7f9567 and then make sure we always prefer the "real" font when there are conflicts (this would mean marking synthetic fonts in the database). [ChangeLog][Windows] Fixed a regression where different font styles and/or weights would not be available. Fixes: QTBUG-94781 Task-number: QTBUG-91398 Change-Id: I092022b14ebf1d56685eaa3b8efe55f015659adc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit d16ee17a39252e06bf3bef08d80b0d116c473ba1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDBusMenuConnection: Close open D-Bus connectionJonas Kvinge2021-06-302-0/+9
| | | | | | | | | | | | | | | Using QSystemTrayIcon::isSystemTrayAvailable() generates a new connection from QDBusTrayIcon::isSystemTrayAvailable() with a new unique instance ID. These were never closed, so calling QSystemTrayIcon::isSystemTrayAvailable() frequently leads to crash when it runs out of file descriptors. Fixes: QTBUG-94839 Change-Id: Ib71441a6b680d8633707cc02f9b6081c0f02472b Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 2ca19d2dd3137f2c29dcb2b1f2d23b23f3f1b0aa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Documentation: Remove section advertising AmazonFriedemann Kleint2021-06-281-13/+0
| | | | | | | Change-Id: Ibf61cdf4ccb08c00c74c88e66aac200971be62d1 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 0c09f4489d8a97b8fb47afebf15937398752f23d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QVarLengthArray: fix aliasing error in insert(it, n, v)Marc Mutz2021-06-281-1/+1
| | | | | | | | | | | | | | | | | | Taking the copy after the resize is completely pointless: the copy is there to ensure that `t`, being a reference potentially aliasing an element in [begin(), end()[ before the resize(), isn't invalidated by the resize(), so it must be taken before resize(). Add a comment so the next rewrite doesn't cause this to be mixed up again. [ChangeLog][QtCore][QVarLengthArray] Fixed an aliasing bug affecting insertions of objects aliasing existing elements. Change-Id: I26bc449fa99bf8d09a19147a12a69ac4314cc61d Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 6e57e41f9aef5ccfa122c10bc6253d47dafd93d2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Do not alter a widget's backing window's format once createdLaszlo Agocs2021-06-281-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changing anything on a QWindow's QSurfaceFormat has zero and null effects once the underlying native window has been created. Letting QWidget update the format is wrong in this case, because we always expect that the value returned from QWindow::format() reflects reality. (reality being the settings with which the underlying native resource was created, which is typically frozen after QWindow::create(), not the state of some QWidget attribute. There are certain exceptions to this, such as when preparing to recreate the underlying native window, in which case one will want to update all relevant fields of the format based on the current values of the widget attributes, which is exactly what QWidgetPrivate::create() implements, and that's good.) Such a mismatch can have fatal consequences when OpenGL and friends are involved, but this always depends heavily on the platform and windowing system. For example, claiming that the alpha buffer size is 0 when the native window was created with 8, or vice versa, can break OpenGL-related code (both in Qt itself and in applications), that tries to create a QOpengGLContext configured based on what QWindow::format() returns. If that format describes settings that are incompatible with the actual underlying native window, we end up with the classic Invalid pixel format, EGL_BAD_MATCH, and alike errors. This is exactly what is happening when a QOpenGLWidget (or QQuickWidget) is placed in a QDockWidget where one of the ancestors is forced to native (winId() was called or WA_NativeWindow was set). When undocking, various code paths in QWidget will try to update the opaque flag of the widget, which in turn calls updateIsTranslucent. Now, if this function unconditionally changes the alphaBufferSize in the QWindow's QSurfaceFormat (even though this is completely futile to do, it has no visible effect in practice), we get the problem described above: rendering breaking down due to OpenGL contexts created with a pixel format incompatible with the native window. Prevent all this by not touching the format once the QWindow has a QPlatformWindow. This is the right thing to do, regardless of the bug in question: a window's (or context's or any other native resource wrapping class's) format must describe the underlying native resource and must never deviate, unless we are preparing to create a new native resource underneath. When it comes to the autotest, this changes the test added in 555661b625c40f21a6a3e4c73e928a6e8a46db20: the autotest logic is inverted because what we should test for is that the QSurfaceFormat stays untouched once the application makes a - futile - attribute change on the widget. Fixes: QTBUG-85714 Change-Id: I7bf90711867e8a0fd474895625bf9530a7821fd5 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit e6a969954a9e6865e5f662acd1d949561f8ef3be) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Use https for links to unicode.orgPaul Wicking2021-06-255-20/+18
| | | | | | | | | | | * Change all outbound links in user-facing documentation. * Reflow lines that exceed 100 cols as mandated by clang-format. * Add unicode.org as a global \externalsite. Change-Id: I2ba1e434aa913e678406d62c2801f1a8b2d9e4f4 Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit 7968281444c967628566337ce3493058825cb946) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Improve QTransform documentationPaul Wicking2021-06-253-12/+31
| | | | | | | | | | | | | * Explain QTransform's model of vector/matrix operations. * Improve snippets used to illuminate QTransform's behavior. Fixes: QTBUG-83869 Change-Id: I84c3b1a221c139ee992f82c3ee4aebadeef8ee63 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit ae2ef9dbf060ba101e32bae2b5edfed979630e30) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xkb.compose: get locale from user env settingsLiang Qi2021-06-251-4/+10
| | | | | | | | | | | | | | The setlocale call will only give useful results if the program had previously set the current locale using setlocale... See also "Compose Locale" section in xkbcommon doc: https://xkbcommon.org/doc/current/group__compose.html#compose-locale Fixes: QTBUG-85529 Change-Id: I65b1ac86ea54445bc3a2e1707df79bd9f732ab46 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 73ea9f032864566cc019d286b2f210b78cd70a3d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xcb: fix cursorTheme update issueTang Haixiang2021-06-241-2/+6
| | | | | | | | | | | | | | | | Clear the cache when cursor theme changed. Idealy we should subscribe root window's RESOURCE_MANAGER property to update cursor theme via Xcursor. KDE already has a daemon KDE GTK Configurator to sync KDE settings to GTK. Then we can register the fallback there both for KDE and GTK changes. See also https://invent.kde.org/plasma/kde-gtk-config Fixes: QTBUG-94538 Change-Id: Ia4de30930a0dc1dc306c61e1553970c3dab67bd6 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 7311cdc0d2c10d47511e5b4850e3b348ea10e0d8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Document TLS plugin classes (private, internal)Timur Pocheptsov2021-06-242-119/+1662
| | | | | | | | | | | | | | | Also, a minor clean-up: isMatchingHostname() overload was never used, deleted (and it could not be used safely, since it requires the name to be normalized first). The file (qtlsbackend.cpp) was re-shuffled, to have backend on top of the classes which this backend is factory for. Fixes: QTBUG-91929 Change-Id: I435c69b167f57f7c3f76e34449c52f665dc6f7c2 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit c771ad8cdfccb2678664d9e7c54669acf82fedaa) Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Extend documentation for QFile:copy()Paul Wicking2021-06-232-10/+15
| | | | | | | | | | | | | - Add information about symlinks and file metadata. - Reflow text. - Extract text common to both overloads to a .qdocinc file for consistency and to avoid duplication. Fixes: QTBUG-94706 Change-Id: I3c730fd63f4018a1a573bb56751fedd2270a3247 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit cc2fdce35e6a958e021b4d4cdc0ace1a91b06d0c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Unregister screen notification handlers on QGuiApplication shutdownTor Arne Vestbø2021-06-232-3/+16
| | | | | | | | | | | | | In the case of a plugin, the plugin might be unloaded, and destroy its QGuiApplication. We don't want the screen notification handlers to outlive the application, as that results in crashes. Fixes: QTBUG-91919 Done-with: Yang Yang Change-Id: I3a4c0fcf97b785357516d1dac34489511400f154 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 96469ae338c3146f4efea3fabaaae5bc6ecd6a59) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QString: Respect precision when reading data for %.*s format stringUlf Hermann2021-06-231-4/+8
| | | | | | | | | | | | If we disregard the precision we may read a very large string that we subsequently discard. Furthermore, people use this to read non-null-terminated strings, which randomly crashes. Change-Id: Ifa255dbe71c82d3d4fb46adfef7a9dc74bd40cee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit e99e07cb5c939ca5bbb1dfdeb66c862d6cd4f2f2) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: bump the OpenSSL minimum supported version to 1.1.1Tasuku Suzuki2021-06-231-2/+2
| | | | | | | Change-Id: Ibfc8b64be23eb023dafb875f367da98b7c7bb5f6 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 418850d55976ca283f1ad92997379df27bb6028a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix potential double-free in QSqlCachedResult::cleanup()Edward Welbourne2021-06-231-1/+3
| | | | | | | | | | | | If d->sql is non-null, it gets freed; later in the same function, it gets reallocated, unless the query is empty, in which case the now-freed value was still recorded, so that later clean-up might find it and mistakenly think it needs to be freed again. Clear when freeing. Change-Id: I8d37d2ba1fcaa320916eaf30dceaa720bbf62f38 Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit 0e1da78ad36a0639275b7a0ac8a046f46577452d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix leak of transaction context handle in QSql's OCI driverEdward Welbourne2021-06-231-11/+21
| | | | | | | | | | | | | | | Transaction handles were allocated but nowhere freed. Thanks to Stefan Latsch for pointing this out and suggesting the fix. Make the handle yet another member of QOCIDriverPrivate so that close() can free it. At the same time, also free the service context handle d->svc when failing do open(); and shuffle the order of frees to be the reverse of the order of allocations. Fixes: QTBUG-94246 Change-Id: I45818ada6d884b06028056d28635390a300e2def Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit c42ebd5ba6f1fb861cabdbe44ab10df55b9b3ada) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS: Allow programatically minimizing frameless windowsMorten Johan Sørvig2021-06-221-1/+4
| | | | | | | | | | | NSWindowStyleMaskMiniaturizable also controls programatic minimize, in addition to the window decoration button. Fixes: QTBUG-65637 Change-Id: Iac5fb483433441173d770f4fcfb9e93440b9fe6a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 556fbbea6e96c07c6cbd552c4179e5717e799acf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add note to Qt::MatchFlags about implementation dependent behaviorPaul Wicking2021-06-211-0/+5
| | | | | | | | Fixes: QTBUG-94374 Change-Id: I7f426c92bf0434998d0793eedd405c1a682a28d9 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit c92c3c19e8ba02eeceff882b71571a076bef504d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Porting Guide: Mention that also QSet is affected by stability of referencesKai Köhne2021-06-211-2/+2
| | | | | | | | | | QSet is internally implemented by a QHash. Therefore the change in reference stability affects QSet, too. Change-Id: If1879d5a027211bca0beeff16ffbc77f2f4fce26 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit c2c15666b76516e5edfbe2a51226740b5a0bb4d3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix right-to-left text with DirectWrite engine + QPainterPathEskil Abrahamsen Blomfeldt2021-06-211-1/+2
| | | | | | | | | | | | | | | | | | When QPainterPath was used for RTL text, either directly or because the target text size exceeds 64 pixels, we would pass true for "isRightToLeft" to DirectWrite, causing it to do adaptation internally for this. But the RTL layout had already been handled by Qt, so we would essentially reverse the layout twice and also move the text to negative X coordinates. Passing false instead fixes this, as it will then just use the positions we pass in blindly. Fixes: QTBUG-94175 Change-Id: Ie9a47e56e97fc867ede10ab21ac5e3f003ddcacb Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 30399fb95cf8b528ac4b45766ac55c6f0a16e2f4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add missing limits includeNicolas Fella2021-06-211-0/+1
| | | | | | | | | The code uses std::numeric_limits but is lacking the appropriate include Change-Id: I41fa5ac4d8c4e06f35b5b1551ef2ad8417df80bd Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 2b2b3155d9f6ba1e4f859741468fbc47db09292b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QEventDispatcherWin32: suppress old {FD_CLOSE|FD_CONNECT} notificationsAlex Trotsenko2021-06-191-3/+10
| | | | | | | | | | | As with other network events, we must also ignore these notifications until WM_QT_ACTIVATENOTIFIERS message is received. Fixes: QTBUG-82835 Change-Id: I0740bf22e8d1cb0e8b4eba7fc1a27ffe669973ff Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit fe6d84d96e67113846801803c3ba1f20b26e123f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macOS 11: Fix positioning of focus frame around comboboxVolker Hilsheimer2021-06-181-4/+8
| | | | | | | | Fixes: QTBUG-94069 Change-Id: I09079726c96a41f628ae55724cfe53dbc225d358 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit df316963213e765de5b94469622df48b0c9a9e6e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Move overrideCursor() from QApplication to QGuiApplicationSze Howe Koh2021-06-181-3/+3
| | | | | | | | | The transfer occurred in Qt 5 Change-Id: Id3428809d89c804112d9dc02f2a476cb03bd2c98 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit d254af915241c6ed5a6b590bfa8d27c7488f8a77) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QHash: Fix erase() edge-caseMårten Nordheim2021-06-181-1/+4
| | | | | | | | | | | | | | | | | | | | | | When the element you want to erase is the last element AND the next element (element 0), when rehashed, would be relocated to the last element, this leads to the state below. Which is similar to a test in tst_qhash for some seeds. auto it = hash.begin + (hash.size - 1) it = hash.erase(it) it != hash.end By forcing the iterator to increment if we were erasing the last element we always end up with a pointer which is equal to hash.end Befriend the tst_qhash class so we can set the seed to a known-bad one Change-Id: Ie0b175003a2acb175ef5e3ab5a984e010f65d986 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit ea7d87b5b59ded22b145ecbb4dd648ecfd1abbdd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Porting Guide: Mention deprecation of QLibraryInfo::locationKai Köhne2021-06-181-0/+2
| | | | | | | Change-Id: I998a4575ce7fb56ab51d49715071e682a440360b Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit b26988d0b51ac26867258ced00c465324032b855) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Porting Guide: Mention changed behavior of QCApplication::quit()Kai Köhne2021-06-181-0/+12
| | | | | | | | | Mention change of behavior introduced by 89f7a2759c6b in the porting documentation. Change-Id: I3c282362f5852cc7768e6655fc7b3901d68f2b10 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 3cbe11f93475a845e4e7849e1315570ea782e595)
* QTextDocumentFragment: fix ifdef rangeIvan Solovev2021-06-181-1/+2
| | | | | | | | | Move QT_END_NAMESPACE macro out of the #ifdef definition Change-Id: I26b4e263b5ae0acebf035dbfe8c7e287cd740190 Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 0f9695e6da7b40d684d20d55144d020004c2e9ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>