summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Windows: refactor theme's handling of color schemeVolker Hilsheimer2024-05-022-3/+12
| | | | | | | | | | | | | | Make the functions populating the palette static class members so that they can access private helpers. Encapsulate logic that overrides the system or (later) explicitly set color scheme into a helper that always respects the presence of a high-contrast theme. Task-number: QTBUG-124490 Change-Id: I7ad09596bb308b17b4c6ec34bb02cb6cf4b8c1bb Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Windows: store the color scheme instead of a boolean for darkVolker Hilsheimer2024-05-022-20/+21
| | | | | | | | | | | | | | | | Since the color scheme is a tri-state (it might be Unknown when a high-contrast theme is active), don't store a "darkMode" value, but the color scheme. Make the query-functions private to the theme, the external API should always return the stored value, which gets updated when a theme change is processed. Task-number: QTBUG-124490 Change-Id: I41e6336773a3bb426b406dce370ef81c20e513ee Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io> Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
* Update QStyleHints::colorScheme before updating palettesVolker Hilsheimer2024-05-021-4/+4
| | | | | | | | | | | | | | | | | The code polshing palettes needs to be able to rely on an updated value of the color scheme as reported by the QStyleHints, otherwise styles might apply the incorrect polishing logic. Update the style hints as part of processing theme change handling, and do it as the first thing, before updating the palette. Pick-to: 6.7 Task-number: QTBUG-124490 Change-Id: I393faa57ecfa6da94497ae93a4e8b5d2782ec42a Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Remove QGuiApplicationPrivate::colorScheme()Volker Hilsheimer2024-05-024-18/+7
| | | | | | | | Use the platform theme or QStyleHints instead. Task-number: QTBUG-124490 Change-Id: Iab12faa726d3031d6a250664468dac333c2c2e0c Reviewed-by: Doris Verria <doris.verria@qt.io>
* QDataStream::readBytes: do not leak the memory in case of bad_allocIvan Solovev2024-05-021-12/+6
| | | | | | | | | | | | | | | | | The algorithm was leaking the previous buffer if the attempt to allocate a new one failed with std::bad_alloc. Wrap the buffer allocations into std::unique_ptr, so that we do not leak the buffer in case of bad_alloc. This patch is not changing the behavior of QDataStream, so it's NOT handling the bad_alloc exception, and also does not change the state of the buffer in case the exception occurs. Pick-to: 6.7 6.5 Change-Id: I5558a6d03768094e4ee83ca47cacf4e09c36f1cf Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QtCore/removed_api: fix 6.8 block order, global includeMarc Mutz2024-05-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | There must be no include other than qglobal.h¹ outside QT_CORE_REMOVED_SINCE blocks, otherwise REMOVED_SINCE in that header might not work correctly. Move the include to the block in which it's used. ¹ and we should eventually reduce that to the bare minimum, too. This include is still from the time when there was only the monolithic qglobal.h. Amends bfc7535a10f7a6e3723f354b41f08a0fe1d18719. Also move the qstring.h block which was not in alphabetical order. Amends 42b6fdfb523f47ba711138bb299d97823e7c64d2. Change-Id: I997ebf0028e31ef86145d2d0c7455e7c54bbf7e9 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* rhi: gl: Clean up UNPACK_ROW_LENGTH handlingLaszlo Agocs2024-05-022-3/+9
| | | | | | | | | Be consistent and do not attempt to set GL_UNPACK_ROW_LENGTH on GLES 2.0. Have an appropriate flag in caps. Task-number: QTBUG-120565 Change-Id: I7b4db49480c2225b11807681d9bc77d2f2615e30 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: metal: Handle multiview with depth attachment onlyLaszlo Agocs2024-05-021-2/+8
| | | | | | | | | | Copy the approach added for Vulkan. (no color attachments, but depth texture array is present -> assume this means multiview rendering and use the array size as view count) Change-Id: Ie523b54e8eec6fdd4fe5f203d1ea97b366f8ac00 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: vulkan: Fix multiview with depth attachment onlyLaszlo Agocs2024-05-022-6/+10
| | | | | | | | | | Also change a confusing argument naming (begin-end vs. first-last). Relevant in particular for the depth texture generation pass of Qt Quick 3D (XR) with multiview rendering enabled. Change-Id: I18746581cddfa96127de2d07853164b1c88b070b Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: vulkan: Reduce staging copy size for full-width texture uploadsLaszlo Agocs2024-05-021-6/+6
| | | | | | | Pick-to: 6.7 6.6 6.5 Task-number: QTBUG-120565 Change-Id: I057f40ee410df35af87f27a0357252bc26234f04 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* moc: Update comment above propertiesMårten Nordheim2024-05-021-1/+1
| | | | | | | | It was not matching up with the data there anymore, the notifyID and 'p.revision' was not mentioned Change-Id: I09f63e5137944e9ab96e0a70abb798895d4b7739 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QLocale: use new comparison helper macrosTatiana Borisova2024-05-012-2/+6
| | | | | | | | | | Replace public friend operators operator==(), operator!=() of QLocale to friend method comparesEqual() and Q_DECLARE_EQUALITY_COMPARABLE macro. Task-number: QTBUG-120304 Change-Id: I759ef08269abe3b40e0dce3fd408a86cc3f34857 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QVLA::erase: use trivial relocationGiuseppe D'Angelo2024-05-011-1/+2
| | | | | | | | Apply the same algorithm that QVector uses for erasing elements: destroy the erased range, then memmove the tail over. Change-Id: I6f2edde5b208910b665f85167cf9359379137a85 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNetworkInformation: remove redundant friend declarationMarc Mutz2024-05-011-1/+0
| | | | | | | | | | | | | | | Q_DECLARE_PRIVATE already marks the Private as a friend of the Public class. No need to do it manually. Fixes GCC's -Wredundant-decls. Amends 0875626e22ad4e709ddf505e701a8d699559f5b4. Pick-to: 6.7 6.5 Task-number: QTBUG-115583 Change-Id: I26f8a42e375c1377c03fe60ccccadc5d0c3b02c5 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* qfuture_impl.h: remove redundant declarationMarc Mutz2024-05-011-3/+0
| | | | | | | | | | | | | | | QtPrivate::watchContinuationImpl() is already declared in qfutureinterface.h, which qfuture_impl.h already includes. Fixes GCC -Wredundant-decls. Amends 59e21a536f7f81625216dc7a621e7be59919da33. Pick-to: 6.7 Task-number: QTBUG-115583 Change-Id: I9c77209d2d10492f4d81aacc1f1da3201b5d1810 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Arno Rehn <a.rehn@menlosystems.com>
* QPageSize: remove redundant operator== declarationVolker Hilsheimer2024-05-012-0/+13
| | | | | | | | | | | | Amends a45a3b1ece490bcae5cccd858dbe11408a19bee0, which added the hidden friend as an inline function, without removing the already existing declaration. Since that declaration was exported, keep it in the ABI via Q_REMOVED_API, and only remove it from the API. Fixes: QTBUG-115583 Pick-to: 6.7 Change-Id: I169b565ed02168248f96c1379f537b90b4ea481c Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QVLA: fix assert message in erase()Giuseppe D'Angelo2024-05-011-2/+2
| | | | | | | Likely a c&p error from insert(). Change-Id: I9fd4ce19d3350a5c7e66e8eb2b0e8b80997c2a56 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Http connection channel: modernize connectMårten Nordheim2024-04-301-20/+20
| | | | | | | | | | Makes it easier to see what connects are wrong once the socket type is IODevice and not AbstractSocket. Task-number: QTBUG-102855 Change-Id: I56c3db56361b0441e0b5db84b2f95339f8b03254 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mate Barany <mate.barany@qt.io>
* qtconf: Add comment to clarify code handling env varsFabian Kosmale2024-04-301-0/+4
| | | | | | | | | | The string handling is not immediately clear, unless one already knows what it is supposed to do. Change-Id: Icd5746513d760d478f03c8aded3669b06b692a87 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Improve default style of QTextTableCarl Schwan2024-04-301-1/+2
| | | | | | | | | | Collapse the border and add some padding for the table cells. [ChangeLog][QtGui][Text] QTextTableFormat now defaults to collapsed tables with no spacing between cells. Change-Id: Ibebc92820447bd5fd9c0b905261dc4426b74358c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Android: Notify listener about app state changes when quittingPetri Virkkunen2024-04-301-1/+1
| | | | | | | | | | Specifically the isStarted flag is set to false in QtNative.quitApp. This should be listened to by functionality interface providers to unregister their interfaces, in case the Activity is restarted. Task-number: QTBUG-118874 Change-Id: Iadf5ab548c4e865c89ed4b83d258f09d6c767e16 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Extend app state listener interface with native plugin statePetri Virkkunen2024-04-303-6/+21
| | | | | | | | | | | | Instead of using the generic onAppStateDetailsChanged function, use a specific callback for native plugin readiness state in cases where only native plugin readiness matters. Add default empty implementations for both functions in the interface. Task-number: QTBUG-118874 Change-Id: Ie736b0e7789400421247648cb3a008712fd959c5 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Enable required capabilities for embedding QML in servicesPetri Virkkunen2024-04-301-5/+14
| | | | | | | | | | | | | | | Enabling OpenGL, ThreadedOpenGL and ForeignWindows capabilities for all cases where we have a valid Android context. Also enable createPlatformOpenGLContext and createPlatformWindow in the same circumstance. This allows service-embedded contexts to create and manipulate windows and surfaces. Task-number: QTBUG-118874 Change-Id: I34a3153865cc1263973b8ddf67a82d61b2266bca Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: PlatformServices:Do not expect Intents in non-Activity usecasePetri Virkkunen2024-04-301-9/+12
| | | | | | | | | | | | | | | | In non-Activity contexts, do not register the QPlatformServices class as an intent listener, as only Qt applications based on Qt Activities will receive new Intents. Calling getIntent on a non-Activity context will also cause an error, as getIntent is a method of Activity, not Context. Skip both when constructing QPlatformServices for applications without an Activity context. Task-number: QTBUG-118874 Change-Id: Ide64bd6a90d8db0a7654968ff42cdaa5da1d3b51 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
* Android: Do not wait for service onBind() in service embedding pathPetri Virkkunen2024-04-301-1/+1
| | | | | | | | | | | When embedding QML into an Android service, Qt is not actually running as a service. Avoid checking for QtAndroid::Service() and assuming that means we are running as a service. Task-number: QTBUG-118874 Change-Id: I5eea32b9fc200c4f34f1507d591aa1a483849118 Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Add delegate class for embedding QML into Android ServicesPetri Virkkunen2024-04-302-0/+116
| | | | | | | | | | QtServiceEmbeddedDelegate implements QtEmbeddedViewInterface to allow QtView communication, listens to Qt plugin load state and loads embedded views. Task-number: QTBUG-118874 Change-Id: I673eefd8da425c96af436b2286899f699752d60a Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
* Android: Add interface to handle interactions between delegate and QtViewPetri Virkkunen2024-04-304-9/+38
| | | | | | | | | | | | Classes implementing QtEmbeddedViewConnector should support embedded usecases for both Service and regular Activity embedding. Any features that QtView requires from a delegate should be accessible via this interface. Task-number: QTBUG-118874 Change-Id: I238c6ef0451b1d08514c65f57e2875d31c5f4da9 Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
* Android: Delete parent window in QtView instead of just the child viewPetri Virkkunen2024-04-303-32/+15
| | | | | | | | | | | | | | Since the parent window wraps the QtView, it should always be destroyed when the QtView is, and live inside QtView rather than the delegate. Destroying the parent window will always destroy the child window, so do not destroy the child window separately. Move createRootWindow and deleteWindow native functions to QtView. Fixes: QTBUG-124908 Change-Id: Ib6b3c6388a9dd3f74d16fa09a442b0a6f8ccb336 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: Do not call exit when embedded Qt application is stoppedPetri Virkkunen2024-04-301-0/+1
| | | | | | | | | | | Q4A apps call exit() when leaving main(), unless the flag QT_ANDROID_NO_EXIT_CALL is set. For embedded applications this is incorrect behavior, because calling exit() will also make the host application shut down. Task-number: QTBUG-123711 Change-Id: I693f65d22568ab7d2a094a3c2336bf392cee214f Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QCompleter: Hide popup when widget is hiddenEike Ziller2024-04-301-4/+15
| | | | | | | | | | | When the widget the completer is attached to was hidden, the popup stayed open. It would "hang around" with no corresponding UI being around anymore, which is weird. Fixes: QTBUG-124861 Pick-to: 6.7 Change-Id: If9cb04e693c2663ef9da14164611f26becafc4b4 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove old copyright notice from QTZP_data_p.hEdward Welbourne2024-04-301-21/+0
| | | | | | | | | | The SPDX header now makes this redundant. Pick-to: 6.7 6.5 Task-number: QTBUG-121653 Change-Id: I46624407ab268920b31238b26ca9cdc825dea84a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lucie Gerard <lucie.gerard@qt.io>
* QWindows11Style: Respect user set StylesheetsWladimir Leuschner2024-04-303-13/+44
| | | | | | | | | | | | | | | | QWindows11Style inherits from QWindowsVistaStyle for which StyleSheet theming is deactivated. QWindows11Style draws most elements with QPainter and should therefore be able to use overrides by StyleSheets. This patch checks, whether QWindows11Style is used and enables the theming by declaring it not to be a QPixmap based style. Further drawing routines for QComboBox, QPushButton and QLineEdit are now drawing always the base background and when they are hovered a alpha mask is used to overdraw the elemens to create a highlight effect. Fixes: QTBUG-124286 Pick-to: 6.7 6.7.1 Change-Id: I65436493bc2b1572c0d9423a066caea3ba9e1459 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Add QHttpHeaders to QNetworkReplyLena Biliaieva2024-04-302-0/+56
| | | | | | | | | | | | | | Added headers(), setHeaders() and setWellKnownHeader() methods to QNetworkRequest that work with QHttpHeaders. [ChangeLog][QtNetwork][QNetworkRequest] Added headers(), setHeaders() and setWellKnownHeader() methods to QNetworkRequest to provide an interface to work with QHttpHeaders. Task-number: QTBUG-107751 Change-Id: Icfb132a307aed030817c8e01ef908d4fd2faf60c Reviewed-by: Juha Vuolle <juha.vuolle@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QMimeType: use modernize comparisonsTatiana Borisova2024-04-303-8/+22
| | | | | | | | | | | | | Replace class operators operator==(), operator!=() of QMimeType to friend method comparesEqual() and Q_DECLARE_EQUALITY_COMPARABLE macro. Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of current comparison methods and replace them with a friend. Task-number: QTBUG-120304 Change-Id: I9776e98c8a3b14d599733c91af61fbc12b1f0e57 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QMetaMethod: use new comparison helper macrosTatiana Borisova2024-04-302-8/+11
| | | | | | | | | | Replace public friend operators operator==(), operator!=() of QMetaMethod to friend method comparesEqual() and Q_DECLARE_EQUALITY_COMPARABLE macro. Task-number: QTBUG-120304 Change-Id: Idb3f880a1db4850d73a58ed37f8cbd3454dd5ea2 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QThread: Use storeRelease when assigning the pointerJarek Kobus2024-04-291-1/+1
| | | | | | | Make it consistent with other assignments. Change-Id: If6aeb1007436e3b6a035494116786c2ab2f079ca Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QThread: Reuse isMainThread()Jarek Kobus2024-04-293-6/+6
| | | | | | | Internally, reuse threadId and theMainThreadId. Change-Id: Iea6e7d8fcbcaf7e2f4dbf8ab33890d0f7954edc0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMetaSequence and QMetaAssociation: use new comparison helper macrosTatiana Borisova2024-04-292-26/+21
| | | | | | | | | | | Replace public friend operators operator==(), operator!=() of QMetaSequence and QMetaAssociation classes to friend methods comparesEqual() and Q_DECLARE_EQUALITY_COMPARABLE macroses. Task-number: QTBUG-120304 Change-Id: I88e9b228220d36092437bfb71ae2f053d2e99fdf Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* rcc: don't track source file locationSamuli Piippo2024-04-291-1/+1
| | | | | | | | | | | | Generate source code without information about original location of the source file. Useful for reproducible builds. Task-number: QTBUG-105926 Task-number: QTBUG-105913 Change-Id: Ia4ca8d1b22751d0bf110082872b6b4228d01ff9a Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Ari Parkkila <ari.parkkila@qt.io> Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* QSettings/removed_api: don't return <void expr>Marc Mutz2024-04-291-1/+1
| | | | | | | | | | Fixes clazy-returning-void-expression. Amends 4cf299eb5bbdbac8484c2ee8c5afbd260dccc6d5. Pick-to: 6.7 6.5 Change-Id: I6192deb82afe9a5ba7ddaf6203d4046f518c545a Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Enable resetting a sort model by descending orderAli Kianian2024-04-291-3/+8
| | | | | | | | | | | | | | | | | By this change, sort(any_negative_number) will stay unchanged, and it unsorts the model so that the order will be the same as the source model. But when the second argument of the sort is set to DescendingOrder deliberately, the result will be the same as the source model, but in reverse order. [ChangeLog][QTCore][QSortFilterProxyModel] QSortFilterProxyModel.sort sorts the proxy by the source model index descending if the sort column is less than zero and the order is descending. Fixes: QTBUG-124863 Change-Id: I73f9d3b500a929efa969cf24ef3d8fe758167645 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix progress bar rendering issue when using windows 11 styleSanthosh Kumar2024-04-291-60/+57
| | | | | | | | | | | | | The Windows 11 style checks for QProgressBar type and gets the respective orientation required for rendering. This creates an issue when we use QStyleItemDelegate as it's not QProgressBar type. This patch removes that condition and gets the orientation information through the style option similar to Windows Vista style. Fixes: QTBUG-124447 Pick-to: 6.7 Change-Id: Ic2b36d79d7af017262e44dd2800ad45fbe63f8f2 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Add QHttpHeaders to QNetworkRequestLena Biliaieva2024-04-297-1/+138
| | | | | | | | | | | | Added headers() and setHeaders() methods to QNetworkRequest. [ChangeLog][QtNetwork][QNetworkRequest] Added headers() and setHeaders() methods to QNetworkRequest, which provide an interface to work with QHttpHeaders. Task-number: QTBUG-107751 Change-Id: I2e1dc7cb2efab5903eb7ff23b75d01aefe13273d Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Doc: Remove \note that indicates you can access the source codeAndreas Eliasson2024-04-291-2/+0
| | | | | | | | | | There used to be an examples page; this is no longer the case. Thus, remove the \note that indicates you can access the source code. Fixes: QTBUG-122166 Pick-to: 6.7 6.6 6.5 Change-Id: I1abe88000ae406e8d2cc9cc1deed42664607626b Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Don't quit automatically via QEventLoopLocker if there are open windowsTor Arne Vestbø2024-04-293-6/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As part of df359bcb703db5a8adbf14e88ba4ae0d54f0cfcd the semantics and interaction between QEventLoopLocker and QGuiApplication was changed, based on the assumption that these two mechanisms were independent and should not affect each other. This had a surprising regression where the use of QEventLoopLocker in combination with the QCoreApplication::isQuitLockEnabled() automatic quit would end up quitting the app, even if it had open windows, for example when the last job of some internal job queue finished. It could be argued that if the app has open windows that should not be closed, they should ignore the Close event, and that an application with running QEventLoopLocker jobs should maintain an active window showing the progress of those jobs, but still, this is regression that we want to fix. We now bail out if !lastWindowClosed() in QGuiApplication's canQuitAutomatically, which is triggered from QEventLoopLocker's isQuitLockEnabled() behavior. And we do so regardless of whether quitOnLastWindowClosed is set or not, as the latter property determines the behavior when closing a window, not the behavior when a QEventLoopLocker goes out of scope. Similarly, we now block quitting of the application when triggered by quitOnLastWindowClosed() if a QEventLoop is active, regardless of the isQuitLockEnabled(), as the latter property is determining whether we should trigger a quit, not whether we should block them. [ChangeLog][Important behavior changes] Fixed a regression where the last QEventLoopLocker going out of scope would quit the app, even if there were open windows, if quitOnLastWindowClosed was false. [ChangeLog][Important behavior changes] Fixed a regression where closing the last window would quit the app, even if there were active QEventLoopLockers, if isQuitLockEnabled was false. Fixes: QTBUG-124386 Pick-to: 6.7 6.5 Change-Id: I84fd0ddea78a2f417f3a17b326113c880079cf85 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QRegularExpressionMatch: port API from QString to QAnyStringView keysMatthias Rauter2024-04-293-57/+79
| | | | | | | | | | | | | | The QRegularExpression capture-by-name keys are currently QStringViews, but are only ever used to compare them against a const char16_t*, so this API is a perfect candidate for replacing all of these overload sets with a single QAnyStringView function. [ChangeLog][QtCore][QRegularExpression] Keys can now be passed as QAnyStringView (was QStringView). Fixes: QTBUG-103097 Change-Id: I1a80e85f301cc08370d70b3b5eb0ae10c6a51f33 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QSignalSpy: fix -Wweak-vtable by removing the QObject inheritanceMarc Mutz2024-04-292-31/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally, we'd fix -Wweak-vtable by exporting the class and making at least one virtual method out-of-line (typically the dtor), thereby pinning the vtable to exactly one TU. We can't export QSignalSpy, though, because it also inherits QList, and we don't want to export QList subclasses to avoid QList API becoming part of the ABI. So remove the vtable, and therefore its being a weak symbol, by moving the qt_metacall implementation from QSignalSpy into its newly-added Private, at the cost of an additional memory allocation at construction (though there was already the wish to make this class pimpl'ed for extensibility, and this patch accomplishes exactly that). This class used to be one of few places left that prevents adding -Wweak-vtable to headersclean, so while this is a breaking change, QSignalSpy doesn't really model is-a QObject. It uses QObject to reuse, not to be reused. In fact, no external code should use the QObject-ness of QSignalSpy, so it should be an acceptable SC break to drop the inheritance. We don't need to care about BC here, as we don't promise BC for QtTest. This now also allows (and requires) to make the dtor and the private ctor out-of-line, avoiding the need for the init() hack. [ChangeLog][QtTest][Potentially Source-Incompatible Changes] QSignalSpy no longer inherits from QObject. If your code uses the fact that QSignalSpy is-a QObject, you need to redesign around this now. Task-number: QTBUG-45582 Fixes: QTBUG-123544 Change-Id: Id93ba0ee6bbb811455d3744a045e38e1b9f9c584 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Jason McDonald <macadder1@gmail.com> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* [QNX] Add support for QLoggingCategory in QNX QPA debug log outputTuomas Vaarala2024-04-2934-347/+299
| | | | | | | | Makes it possible to enable debug log outputs via QLoggingCategory. Earlier it was only possible via buid time flags. Change-Id: Iaec732e7acdf44a74c9d7c806bf0e6f5a5f87b1c Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
* SQLite: Update identified licenseKai Köhne2024-04-281-2/+2
| | | | | | | | | | | | | SPDX nowadays has a dedicated license identifier for SQLite. Let's use this. [ChangeLog][Third-Party Code] Change identified license for SQLite from 'Public Domain' to more accurate 'SQLite Blessing': https://spdx.org/licenses/blessing.html Pick-to: 5.15 6.2 6.5 6.7 Change-Id: I6c3378c45bc5edf498673c1b060f8e8c14d96a62 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* QTest::test*Operators: test reverse order tooThiago Macieira2024-04-271-8/+6
| | | | | | | | | | There's no need to condition that comparison only for heterogeneous types. The reverse comparisons will compile if the types are homogeneous (it's what we had already tested), but this now ensures the results are also the expected ones. Change-Id: If1bf59ecbe014b569ba1fffd17c4a2dd756157b2 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>