summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Do not load plugin from the $PWD5.9Olivier Goffart2020-01-151-1/+0
| | | | | | | | | | | | I see no reason why this would make sense to look for plugins in the current directory. And when there are plugins there, it may actually be wrong Change-Id: I5f5aa168021fedddafce90effde0d5762cd0c4c5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit bf131e8d2181b3404f5293546ed390999f760404) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 52b739776daecf80a8276b49c9e4337e018d8e8b) Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* DBus: fix deadlock when destroying QDBusServerMårten Nordheim2019-08-231-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Observed infrequently in the QDBus tests, it would deadlock when destroying QDBusServer at the same time as qDBusNewConnection was being executed as they were locking the same locks, but in opposite order. QDBusServer locks d->lock, then QDBusConnectionManager::instance()->mutex. While qDBusNewConnection locks QDBusConnectionManager::instance()->mutex, then serverConnection->lock (and serverConnection here is QDBusServer's d-pointer). QOrderedMutexLocker cannot be used in this situation because it operates on QMutex*, which d->lock (QReadWriteLock) is not. Change the code to lock QDBusConnectionManager's mutex before d->lock and then unlock the QMutexLocker where it would previously destruct. If QDBusConnectionManager has already been destroyed then we pass a nullptr to the QMutexLocker which is fine and will not do anything. Fixes: QTBUG-74635 Change-Id: I7f02d7759da67377996ef042c81b0969ccb8aadb Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 6d3a4546934827955f0eb2b07a9928f82790ba37)
* Avoid hanging on painting dashed lines with non-finite coordinatesEirik Aavitsland2019-08-022-0/+5
| | | | | | | | | | | The dash stroker did not check for inf/nan coordinates. Fixes: QTBUG-47887 Change-Id: I1e696cd15cc37d8fcb6a464cac3da33c3a8b95c2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 8f8267f00bfa0d1716e38358ecc0fafff1d9df14)
* Update bundled libpng to version 1.6.37Eirik Aavitsland2019-07-3131-1757/+1790
| | | | | | | | | | | | | | | The remaining diff to clean 1.6.37 is archived in the qtpatches.diff file. [ChangeLog][Third-Party Code] libpng was updated to version 1.6.37 Squashed cherry pick of: 0d7c049e4407bf0db8d1eca1ea248c6d6b739c8c dc2aead842f4cdf74f9259d3606c53c8bdae2c6b 5d8b01468e8bd752dad090aaef4ccf3a83a58a0d 2e8005765d6513c4743a939aea97c68427f6ab2c Change-Id: I589bff09beec1977be8c6ca2a60aadf05f337f38 Reviewed-by: Liang Qi <liang.qi@qt.io>
* iOS Accessibility: implement accessibilityElements and check indexingFrederik Gladhorn2019-07-301-0/+8
| | | | | | | | | | Backported from 5.12 since several users seem to struggle with this issue. Fixes: QTBUG-70683 Change-Id: I122c67a5cee22363de5c8e45dc1c83e7760162fb (cherry picked from commit 8e528d8bd08406e9cc86abcfe153f02d585d3654) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix compilation with C++20Marc Mutz2019-07-092-2/+2
| | | | | | | | | | Implicit capture of 'this' in [=] is deprecated in C++20. Fix by using explicit captures. Change-Id: I1633446f4670202b0d1aca938d8c27dbc0c1411e Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit f5745609481dd4f660e196b8438e25615d3dfe0a)
* QNetworkAccessManager: defer call to _q_networkSessionStateChangedUlf Hermann2019-07-081-1/+7
| | | | | | | | | | | | | | | Also, call it only if the state really changes. If we stay disconnected the whole time, there is no point in trying to create the session over and over. Change-Id: Ic3a92dd0575bed1a23ae36a944cc51b9741fb64a Fixes: QTBUG-49760 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit c89d0f9d532a2719118614b9fa9b8efffbe12f2f) Reviewed-by: Rolf Eike Beer <eb@emlix.com> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QMutexPool: fix memory order of atomic operationsMarc Mutz2019-06-302-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | The array of QAtomicPointer<QMutex> can be initialized using relaxed stores of nullptr, since nullptr is the whole data. But once we store an actual QMutex pointer in the array, we need to publish the indirect data thus created. We did this, with testAndSetRelease(); what was missing was a corresponding acquire fence on load, without which there is no happens-before relationship between the writes performed by the QMutex ctor and the reads performed by a subsequent mutex.lock(), say, on the same data. Fix by adding acquire fences to all loads. That includes the dtor, since mutexes may have been created in different threads, and never been imported into this_thread before the dtor is running. As a drive-by, return a new'ed QMutex that was successfully installed directly to the caller, without again going through a load-acquire. Change-Id: Ia25d205b1127c8c4de0979cef997d1a88123c5c3 Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 65b8f59e045bb41fef99b1a44f462115de65064a)
* QFreeList: fix memory order on block deletionMarc Mutz2019-06-301-1/+1
| | | | | | | | | | | | Blocks are likely to have been created in a differnt thread from the one performing their deletion, so we need an acquire fence. The rest of the atomics use in the class looks ok, but nevertheless warrants a deeper analysis. Change-Id: I1571ded3a06695b0d58b5bf1d80d6283ac21f959 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 6fa34930c23c7494a3f2703777f46794ff091e2b)
* QSimpleTextCodec: fix load memory order of atomic pointerMarc Mutz2019-06-241-3/+3
| | | | | | | | | | | | | | | | The pointer value is not the only data we're interested in, but instead points to indirect data, so we need a release fence on store (present) and a corresponding acquire fence on load (was missing). Change-Id: I51f8251c0c7f4056192880430f2be5e0836dbed6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 6f84829031f318bfda1deff5f409b5ea6c6a5c5f)
* Optimize and fix handling of QtMessageHandlersMarc Mutz2019-06-241-15/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A function may almost always have static storage duration, but that does not necessarily mean that we can store and load pointers to them without memory ordering. Play it safe and use store-release and load-acquire for them (which combines to ordered for the fetchAndSet call in qInstall*Handler(), as we don't know what the caller will do with the returned function pointer). Also change the initial value of the atomic pointer to nullptr. Nullptr already signified the default handler in qInstall*Handler(), so the API doesn't change. But by using nullptr to mean default, we place these variables in the BSS segment instead of TEXT, save dynamic init, or at least a relocation, and we dodge the smelly comparison of function pointers, using comparison against nullptr instead. Also, as a drive-by, put the call to ungrabMessageHandler() in a scope-guard. Both the message handler, as well as the Qt code calling it (toLocal8Bit()!), may throw, and that would stop all further logging. In Qt 5.9, we can't use qScopeGuard(), yet, so use a local struct calling ungrabMessageHandler() in its dtor. The code still has one problem: When a logging action is underway, and another thread exchanges the message handler, we might still execute code in the old handler. This is probably not a problem in practice, since no-one will use a dynamically-compiled function for logging (right? :), but should probably be documented or fixed. This patch does not address this issue, though. Change-Id: I21aa907288b9c8c6646787b4001002d145b114a5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit cd401b74a13cd9d9a47d977f195c7985cf725d55)
* Upgrade PCRE2 to 10.32Giuseppe D'Angelo2019-01-2257-20764/+25946
| | | | | | | | | | | | | | Squashed cherry pick of: e39a9de3309f84be4101da839a0bacf69090706f a7bcd16c750fb2ed36522719237af8ce3be94fa2 3bac18da8ef9f5750207ddf47192b5db3137c4ac 44eeeb8e816fbdcd77ad734cfe7a7ec28da1c5ed [ChangeLog][Third-Party Code] PCRE2 was updated to version 10.32. Change-Id: Id3bf7df0003f626cd1135d0508a5a489ff02f1e5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Bump copyright year to 2019Kai Koehne2018-12-253-3/+3
| | | | | | | | | Task-number: QTBUG-72635 Change-Id: Idc9bd97fe873b332d7ff72cb44a00334a472404f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 5fd48d78d59128cf57a1c4eae3980c23497a8def)
* uic: Generate version check macros around newly introduced palette color roleFriedemann Kleint2018-12-171-1/+18
| | | | | | | | | | | | | | Change ebd3a13b807c6af2684b42d3912549caf7ef82aa introduced a new QPaletter::PlaceholderText color role which causes the uic-generated code not to compile when using Qt Designer embedded in Qt Creator with older (5.9 LTS) kits. Generate a version check macro to fix this. Change-Id: I6d9f7edb0c6047c2f64ef3357b29f91655c52aac Fixes: QTBUG-72555 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: André Hartmann <aha_1980@gmx.de> (cherry picked from commit 3c3a2eb3cea0bbb0b45e43278421e051c253e434)
* Offscreen QPA: use a CoreText font database on macOSR.J.V. Bertin2018-12-131-1/+4
| | | | | | | | | | | | Without this applications using the Offscreen QPA don't have access to any fonts on macOS and thus cannot render text correctly. Task-number: QTBUG-72335 Change-Id: I8e58c066365d0231d0993ad3b480d957a32f7f7b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 6b52c1834daec628bab5a384e1dfd039937b375d)
* OpenSSL: also try the "1.0.2" sonameGiuseppe D'Angelo2018-12-101-9/+18
| | | | | | | | | | | | Turns out that also Debian patches OpenSSL 1.0, changing its soname to "1.0.2". Therefore, try also to load that one. Amends ec298193baae320410deac41e4884aa3474dcd6d. Task-number: QTBUG-68156 Change-Id: I37cc060e90422779a6c29a324ab900f0fb99cfa7 (cherry picked from commit 2a494875b8f3d50046d35fb21988c288fcfa1dc7) Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Unbreak build after b11c5a6e5Tor Arne Vestbø2018-12-071-0/+1
| | | | | | Fixes: QTBUG-71898 Change-Id: Ia32e05f901838949bf7cbf75d873e954a3da1178 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Silence a GCC 8 warning in qpainterVille Voutilainen2018-11-191-2/+2
| | | | | | | | | | qtbase/src/gui/painting/qpainter.cpp:5625:68: error: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct QFixed’; use assignment or value-initialization instead [-Werror=class-memaccess] memset(advances.data(), 0, advances.size() * sizeof(QFixed)); Change-Id: I563b1b0c5dfaf381a9521bc9a4dc3197f0f38d11 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit 71cdc95006871a338ec2c0b869299980cef2776e) Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* ibase: Silence warning about incompatible function typesAndy Shaw2018-11-191-4/+8
| | | | | | | | | | | | This correctly silents the warning about incompatible function types, it amends the previous fix - 6108d8f515d7911427b764647f1d6ab487ad5203 Task-number: QTBUG-68330 Change-Id: I9eda42817740f491b16ac19c553f35fb1c7aa755 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> (cherry picked from commit cd02eb5b2090a8e263642ce900de9160e60f7d0f) Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Silence a GCC 8 warning in evdevtabletVille Voutilainen2018-11-191-1/+1
| | | | | | | | | qtbase/src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp:85:36: error: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct QEvdevTabletData::<unnamed>’; use assignment or value-initialization instead [-Werror=class-memaccess] memset(&state, 0, sizeof(state)); Change-Id: I3b18ffa7fdf9c7aa1bd4977f12858fd1f176c020 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 7eac2e7350f8831a7d79085897496f9373284d3d)
* Silence a GCC 8 warning in qoutlinemapperVille Voutilainen2018-11-191-1/+1
| | | | | | | | | | | | qtbase/src/gui/painting/qoutlinemapper.cpp: In member function ‘QT_FT_Outline* QOutlineMapper::convertPath(const QVectorPath&)’: qtbase/src/gui/painting/qoutlinemapper.cpp:182:76: error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘class QPointF’ from an array of ‘const qreal’ {aka ‘const double’} [-Werror=class-memaccess] memcpy(m_elements.data(), path.points(), count* sizeof(QPointF)); Change-Id: Ieca99f0262c57e58adbcf48ac923ae11bd428b00 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit ea1137ff5e5394e1420be27aa56dc92cee841df5) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* macOS: restore hidden popup windowsRafael Roquetto2018-11-152-2/+20
| | | | | | | | | | | | | | | | We need to explicitly unhide popup windows that were previously explicitly hidden by applicationWillHide, so that their visibility will be effectively restored when the application is unhidden (otherwise the windows are gone forever even though their internal visibility is set to true). Change-Id: I4dbd209b07f769cc815851b40c41db0739ca2dc9 Task-number: QTBUG-71014 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit d02fed67814a3cb8f28a4f0ec61e075858fce238) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Windows: Don't output a warning when sHGetKnownFolderPath failsAndy Shaw2018-11-121-11/+6
| | | | | | | | | | | | | | | | In the rare case where the known locations for the standard paths are not known (such as when an application is used without a user logged in), it will output a warning to indicate this. In the case of the GenericConfigLocation, this can mean that it will hang due to the fact that QLoggingCategory is looking for that location too before it can output anything. Therefore, the warning output is removed so that if this part fails it doesn't cause it to hang as a result. Change-Id: I4f189361899bd1f868292f30c09fbe50982d2288 Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit bebae3737624a54f6f8062f1cbf32179fb43df7a)
* Fix cast-function-type gcc 8 warningAllan Sandfeld Jensen2018-11-081-1/+1
| | | | | | | | | | | | | | | Gcc 8 now warns against casting functions taking references to functions taking pointers: warning: cast between incompatible function types from ‘QVariant (*)(const int&, const int&, double)’ to ‘QVariant (*)(const void*, const void*, double)’ [-Werror=cast-function-type] Suppressed by casting over void(*)(). Change-Id: I48bee53253b8e87110e8a49efa761fc2add89c5a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 0ffc39806e4669eaebe2d20d197b3a6f356be862) Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Silence a GCC 8 warning in qxcbnativeinterfaceVille Voutilainen2018-11-071-4/+4
| | | | | | | | | | qtbase/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:309:65: error: cast between incompatible function types from ‘void (*)(const char*)’ to ‘QPlatformNativeInterface::NativeResourceForIntegrationFunction’ {aka ‘void* (*)()’} [-Werror=cast-function-type] return NativeResourceForIntegrationFunction(setStartupId); Change-Id: I83409b3a6cc67ccb4c9e91e592e6a01bb6ce45ea Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 1b72d3e645a41c7b7f7731cecbd7119b8e7f7f28) Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Fix deleting of QSharedPointer internals in case QPointer loses the raceThiago Macieira2018-11-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | QPointer uses QWeakPointer / QSharedPointer internals in QObject and has the code to make sure two threads won't stomp on each other if both try to create a QPointer for the same QObject at the same time. The threading code was fine, but had a mistake in the clean up code for the loser thread: the QtSharedPointer::ExternalRefCountData destructor has a Q_ASSERT for the state of the reference counts. So we need to set the state correctly before calling the destructor. But we don't want to do it in case the Q_ASSERT compiled to nothing. So we use a hack that violates the Second Rule of Q_ASSERTs: don't do something with side-effects. This way, we can insert code that will only be compiled if Q_ASSERTs do something, without having to duplicate the preprocessor conditions from qglobal.h. Fixes: QTBUG-71412 Change-Id: I1bd327aeaf73421a8ec5fffd1560fdfc8b73b70c Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io> (cherry picked from commit 3b8075de3b3c842311c157476a85d2cf9ddff403)
* [cocoa] Disable offline renderers for dual AMD FirePro GPUMichael Brüning2018-10-301-1/+6
| | | | | | | | | | | | | | | | | | | | | | | The AMD FirePro dual gpus on the MacPro have a problem with offline renderers in Chromium. Therefore, Chromium and thus Qt WebEngine disable this option via the pixel format attributes. The Qt Cocoa plugin on the other hand enables it in the recent versions, causing context creation in Qt WebEngine to fail when run on a MacPro with dual AMD FirePro gpus due to incompatible context options. This patch uses the environment variable QT_MAC_PRO_WEBENGINE_WORKAROUND which is set by Qt WebEngine upon application startup if the application is running on a late 2013 Mac Pro. [ChangeLog] Offline renderers will be disabled when the application is using Qt WebEngine and running on one of the late 2013 MacPro models. Backport from Qt 5.11 Task-number: QTBUG-70062 Change-Id: I0b0831efb6f4073ebd37672040aaed6370853fc0 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Merge remote-tracking branch 'origin/5.9.7' into 5.9Liang Qi2018-10-237-13317/+13718
|\ | | | | | | | | | | | | | | Conflicts: config.tests/openssl/openssl.cpp src/plugins/platforms/windows/qwindowsintegration.cpp Change-Id: I93ad86751693f4f64981f1c3723bac2061c05379
| * Update the DNS public suffix list from publicsuffix.orgEdward Welbourne2018-10-161-13288/+13692
| | | | | | | | | | | | | | | | | | | | It has had some changes and should be kept up to date. Task-number: QTBUG-70852 Change-Id: I868a558811c34cf5a800c3087a0ca96e7fb49b1a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit ba0ff45109a0eb051a42d6d8392d1f1b7a1e9345)
| * Fix font weights on macOS 10.14James Turner2018-10-121-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On later versions of macOS, the font weight trait of fonts is a 64 bit double, not a 32 bit float, and on macOS 10.14, CFNumberGetValue() started returning false for values when the type conversion is lossy, like it is documented to. Therefore, we would end up without weight information in 10.14. The fix is to ask for a double instead, which works regardless of whether the CFNumber represents a 32-bit or 64-bit value. [ChangeLog][macOS][Text] Fixed font weights on macOS 10.14 Task-number: QTBUG-69955 Change-Id: Ia0577236ddc6b96f9231e6de7b1c49f7f8a837a6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Jason Haslam <jason@scitools.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 9601ad4e27d0e0a846ff13a1e7dbadd7afd260f5)
| * Fix glext and gles2ext attributionLaszlo Agocs2018-10-102-5/+5
| | | | | | | | | | | | Task-number: QTBUG-70903 Change-Id: I980d9cdd12a0d7565e36a38814b0e85a857bd2b7 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * doc: Document version of bundled Freetype in qt_attributionEskil Abrahamsen Blomfeldt2018-10-051-0/+2
| | | | | | | | | | | | Task-number: QTBUG-70901 Change-Id: Ie7531ceb4d529f45e848d39732bb3402f4a70cbb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Windows QPA: Don't test for Desktop GL if Qt::AA_UseDesktopOpenGL is setFriedemann Kleint2018-10-023-24/+19
| | | | | | | | | | | | | | | | | | | | | | Pass the requested render to detectSupportedRenderers(), replacing the bool glesOnly parameters. This allows for simplifying the code. Fixes: QTBUG-70733 Change-Id: Iab65f62d24bf750019180e3b00e2d23c105e5997 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 05e2690009553d3faaf04ef8927fc072c652dd52) Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>
* | Windows: Disable shader disk cache for Intel HD Graphics 620Friedemann Kleint2018-10-234-1/+22
| | | | | | | | | | | | | | | | | | | | | | Set Qt::AA_DisableShaderDiskCache when the feature "disable_program_cache" (modeled after the Chromium driver bug list) is present and set it for the Intel HD Graphics 620 card. Task-number: QTBUG-64697 Change-Id: Ibba588d2ab296b5c959ab8ee9712b47ec7cc906e Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit dff9bb2f9b981e263d8d3d5b1ef67054297e731c)
* | OpenSSL: force the "1.0.0" soname when loading OpenSSL 1.0Giuseppe D'Angelo2018-10-222-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some Linux distributions patch OpenSSL's soname, making builds on such distributions not deployable elsewhere. The problem is that the code loading OpenSSL symbols would attempt to use the soname of the build machine, and therefore not finding the OpenSSL libraries on the deploy system. The binary builds of Qt for Linux are affected by this problem, as they build under RHEL7.4 which changes to soname of OpenSSL to a non-standard string. This makes the binary builds not pick up OpenSSL 1.0 from the machine where the build gets installed on. Given that in the pre-1.1 versions only the 1.0 series is supported, bump the minimum requirement of Qt to that. The 1.0.x releases (up to 1.0.2, at the time of this writing) have kept binary compatibility, and advertise a soname of "1.0.0", which is used by most distributions. So, if loading of OpenSSL with the build-time soname fails, try to load them with the "1.0.0" hardcoded soname. [ChangeLog][QtNetwork][SSL] OpenSSL >= 1.0 is now required to build Qt with OpenSSL support. Task-number: QTBUG-68156 Change-Id: Ieff1561a3c1d278b511f09fef06580f034f188c6 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 2708c6c11d685ab25c12d558961d924c9a4533d2)
* | Fix font weights on macOS 10.14Eskil Abrahamsen Blomfeldt2018-10-021-3/+3
|/ | | | | | | | | | | | | | | | | | | | On later versions of macOS, the font weight trait of fonts is a 64 bit double, not a 32 bit float, and on macOS 10.14, CFNumberGetValue() started returning false for values when the type conversion is lossy, like it is documented to. Therefore, we would end up without weight information in 10.14. The fix is to ask for a double instead, which works regardless of whether the CFNumber represents a 32-bit or 64-bit value. [ChangeLog][macOS][Text] Fixed font weights on macOS 10.14 Task-number: QTBUG-69955 Change-Id: Ia0577236ddc6b96f9231e6de7b1c49f7f8a837a6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Jason Haslam <jason@scitools.com> (cherry picked from commit 9601ad4e27d0e0a846ff13a1e7dbadd7afd260f5) Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QMenuBar: Account for displays that are above 0x0Andy Shaw2018-09-261-1/+1
| | | | | | | | | | | | | | If a display is placed above a primary screen which has the top left set to be 0x0, then menus that are defaulting to go up can still be displayed on that screen when the menubar is placed on the bottom of it. This ensures that this is the case and also adds a manual test to aid verification of it in the future. Change-Id: Ib657ccdc1aabfe1586c72585c087ac80a6c632c2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit 34d212cb02f168e59c2a5c8e95a12377a57bfb7e) Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QWin32PrintEngine: Fix crash in drawPixmap(), drawImage()Friedemann Kleint2018-09-241-8/+2
| | | | | | | | | | | | | Use the printer's HDC instead of the screen HDC for StretchBlt(). Patch as contributed via bug report. Task-number: QTBUG-59689 Task-number: QTBUG-66325 Change-Id: I9b5d6ddd3f0e9e68f2a003ca9ed20ece20dccef8 Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit 7aaa7debc455516cbb1b1f536e990b9154272f64) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* bmp image handler: check for out of range image sizeEirik Aavitsland2018-09-241-0/+2
| | | | | | | | | | Make the decoder fail early to avoid spending time and memory on attempting to decode a corrupt image file. Change-Id: I874e04f3b43122d73f8e58c7a5bcc4a741b68264 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 621ab8ab59901cc3f9bd98be709929c9eac997a8) Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix integer overflow in very long sections in ELF objectsThiago Macieira2018-09-241-1/+1
| | | | | | | | | | | | | | The source is an ElfXX_Off, which is an unsigned 32- or 64-bit. That means any section bigger than 2 GB would cause an overflow when we assigned in m_stringTableFileOffset = strtab.offset; Change-Id: Ib47c56818178458a88b4fffd15546bd47a89894e Fixes: QTBUG-70560 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> (cherry picked from commit cb5c24fa26142edaff8fd2c9787dbe45c222b4ff) Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* Windows: Fix MDI child window titles in High-DPI displaysAndre de la Rocha2018-08-302-20/+24
| | | | | | | | | | | | | | This change improves the appearance of MDI child windows in a High-DPI display for applications using the WindowsVista style, with the Qt::AA_EnableHighDpiScaling attribute set. Task-number: QTBUG-64708 Change-Id: I5e9fbd23809b440ffd33e4948c83d115cc6e1910 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> (cherry picked from commit 0b9a301e89c6473091a9b80552d6e4058d35bbe6) Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Update CLDR to v31.0.1, test Costa Rican currency's fractional partEdward Welbourne2018-08-282-4535/+4580
| | | | | | | | | | | | | | | CLDR up to somewhere between v29 (used by 5.9) and v31.0.1 (used by 5.10 and later) claimed Costa Ricans don't include fractions in their currency; now it claims they expec two digits. Apparently one of them does expect those two digits, so this adds a regression test (the cherry-pick) and updates CLDR to 31.0.1 (to make the test pass), along with needed fixes (as in 82deb0ad160) to some other tests. Task-number: QTBUG-70093 Change-Id: I138772cc6013fa74de4f7c54b836cac83421eab2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit dc7e775c9c6ecc66f76af8139b8dfc3ee101c7ff) Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix potential crash when showing line/paragraph separatorsEskil Abrahamsen Blomfeldt2018-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | When showing line and paragraph separators at an offset from the start of the string, the end of string pointer would be incorrectly set, and we would read past the end of the string. If any part of this memory happened to match the line or paragraph separator, then we would overwrite it and have a crash. I couldn't find any reliable way to test this, since the crash depends on the contents of the memory after the string allocated by the algorithm. But with an overflow of 100 000 characters, I found that it crashed every time I ran the test. [ChangeLog][QtGui][Text] Fixed potential crash when using QTextOption::ShowLineAndParagraphSeparators. Task-number: QTBUG-69661 Change-Id: I17d1996b883560bacdc7ce114c8aeb2b0108faea Reviewed-by: JiDe Zhang <zccrs@live.com> Reviewed-by: Michal Lazo <xlazom00@gmail.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> (cherry picked from commit 65a1d41a092e78f7ab142c4c62689e1ca40ba10c)
* QObject: do allow setProperty() to change the type of the propertyThiago Macieira2018-08-211-1/+2
| | | | | | | | | | | | [ChangeLog][QtCore][QObject] Fixed a bug in setProperty() that caused a property change not to take effect if the old value compared equal using QVariant's equality operator, but the values were not strictly equal. Task-number: QTBUG-69744 Change-Id: I00e04a465fcf4fc1a462fffd1547885861a07a64 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> (cherry picked from commit 64a560d977a0a511ef541d6116d82e7b5c911a92)
* QStyleHelper: Use palette cache key in pixmap keyGabriel de Dietrich2018-08-211-20/+1
| | | | | | | | | | | | | | | | | This reverts commit d7bcdc3a442b99c2caebd4cfd38de67e14090e05. Now that QPalette::setBrush() is a bit smarter (see c564779c071b35fddb76f4e50afda4305b634651), we can be confident the palette's cache key won't change so often. Therefore, we can use it again as part of every pixmap's cache key. Change-Id: I5cab2296a937f9149c7745291e0442eea24f4e9d Task-number: QTBUG-65475 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 1e75dcf2518e37a7b83d006a4e002f972615b43b) Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* Fix possible heap corruption in QXmlStreamAllan Sandfeld Jensen2018-08-181-1/+1
| | | | | | | | | | The value of 'tos' at the check might already be on the last element, so triggering stack expansion on the second last element is too late. Change-Id: Ib3ab2662d4d27a71effe9e988b9e172923af2908 Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 6256729a6da532079505edfe4c56a6ef29cd8ab8)
* Doc: Increase precision in description of convenience typedefsPaul Wicking2018-08-161-1/+1
| | | | | | | Task-number: QTBUG-53856 Change-Id: I57917bb311d1d93e0903f2b3e021cc4db0f0d05e Reviewed-by: Nico Vertriest <nico.vertriest@qt.io> (cherry picked from commit d2d59e77d5e16bc79ddfed37f4f29d1dcd9b92a7)
* Fix MSVC2017 compilation with enabled relaxed constexpr on 32-bit targetOlivier Goffart2018-08-151-4/+6
| | | | | | | | | | | | | | | | | | | | | | The problem is that qCountLeadingZeroBits is calling qPopulationCount which is only conditionally constexpr, so qCountLeadingZeroBits can only be marked constexpr if qPopulationCount is also. On MSVC2017 64bit this is not a problem because it uses builtins function in this case. (which is not constexpr, but it works because the compiler is not forced to diagnose the problem because of the "?:" operator. The error being fixed is: qalgorithms.h(847): error C3615: constexpr function 'qCountLeadingZeroBits' cannot result in a constant expression qalgorithms.h(858): note: failure was caused by call of undefined function or one not declared 'constexpr' qalgorithms.h(858): note: see usage of 'qPopulationCount' Task-number: QTBUG-67259 Change-Id: I65a3dfae12ca49394bec14ffefdd41a07fee1c32 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit c59cb9809559f0aae6be8544cb2049e41f8040e9) Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Make QPalette::setBrush() check before detachingGabriel de Dietrich2018-08-141-15/+17
| | | | | | | | | | | | | Setting the same brush on the same group and role should not detach nor alter the result of QPalette::isCopyOf(). Task-number: QTBUG-56743 Change-Id: Ic2d0dd757d703b01e8c5d835a8c124b3317653f4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit c564779c071b35fddb76f4e50afda4305b634651) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Revert "Fix restoring geometry of dockwidget"R.J.V. Bertin2018-08-132-19/+2
| | | | | | | | | | | | | This reverts commit cbfb6bda1d1ce3e169db6a0deb9bd901076653e4. That fix for QTBUG-16252 should not have been applied to the 5.9 branch. It also introduced a regression (QTBUG-68939). Task-number: QTBUG-68939 Task-number: QTBUG-16252 Change-Id: I71732de739788337fcd46ed8ac4ecfef1ef6e239 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Bastiaan Veelo <Bastiaan@SARC.nl>