summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* macOS: Clean up headersHEADdevTor Arne Vestbø3 hours2-19/+48
| | | | | | | | | | | | | | The headers are now C++ clean and can be used outside of Objective-C code. All includes of Objective-C frameworks have been moved to the implementation files. Header guards have been added in the few places they were missing. All includes are now done via #include, instead of sometimes using the #import variant. Change-Id: Ibb0a9c0bcfefbda4347737212e40e300a3184982 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Enforce two's complement integersGiuseppe D'Angelo5 hours1-0/+4
| | | | | | | | | | | C++20 will make this true for everyone, but as far as Qt goes, this has to apply to all platforms even before that. Just add another couple of checks to the list. Change-Id: I0251ce431d4584380cfd3fc3e4b36f1dbdbf9df2 Pick-to: 5.15 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Deprecate the pause-related APIs of QFuture* classesSona Kurazyan5 hours7-88/+365
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Deprecated the pause-related APIs of QFuture* classes and added alternatives having "suspend" in the name instead. With 2f15927f01ceef0aca490746302a5ea57ea9441c new isSuspended()/suspended() APIs have been added to QFuture* classes for checking if pause/suspension is still in progress or it already took effect. To keep the naming more consistent, renamed: - setPaused() -> setSuspended() - pause() -> suspend() - togglePaused() -> toggleSuspended() - QFutureWatcher::paused() -> QFutureWatcher::suspending() Note that QFuture*::isPaused() now corresponds to (isSuspending() || isSuspended()). [ChangeLog][Deprecation Notice] Deprecated pause-related APIs of QFuture and QFutureWatcher. Added alternatives having "suspend" in the name instead. Change-Id: Ibeb75017a118401d64d18b72fb95d78e28c4661c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* QNX: assume QNX is always UTF-8Samuli Piippo8 hours1-1/+2
| | | | | | | | | | | Override locale encoding to UTF-8 on supported platforms. QNX has nl_langinfo, but the header is not using extern "C". Tests show that it returns UTF-8 regardless of the locale, so let's assume it's always UTF-8. Change-Id: I0fe98f8441287df9f99c334e537a7b962df105f6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Limit QByteArray's 8-bit support to ASCIIEdward Welbourne17 hours2-154/+129
| | | | | | | | | | | | | | | | | | | | | Previously it handled Latin-1, which made it incompatible with UTF-8, which is now our preferred 8-bit encoding. For Qt6 it is limited to ASCII. Adjusted tests to match. QLatin1String::compare() turned out to be relying on qstrnicmp()'s Latin-1 handling. Removed some spurious Q_UNLIKELY()s and tidied up code a little in the process. [ChangeLog][QtCore][Important Behavior Changes] Encoding-dependent features of QByteArrray are now limited to ASCII, where previously they worked for the whole of Latin-1. This affects case-insensitive comparison, notably including qstricmp() and qstrnicmp(), and case-transforming functions. Fixes: QTBUG-84323 Change-Id: I2925d9908f8654599195a2860847b17083911b41 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Overhaul documentation of QByteArray numeric conversionsEdward Welbourne17 hours1-74/+96
| | | | | | | | | | | | | | | | | | | | | | A few pet peeves, a bunch of missing details and some phrasing I like better. Telling folk you're using "base 10" in fact communicates no information; it *assumes* a base that folk shall read that text with and tells them they are indeed using that. If they happen to be reading with a different assumption than you, they'll duly see you confirming their expectation. If you mean "base ten", say so. Values "between 2 and 36" may nor may not include the bounds, depending on weird cultural cues and contextual complications. Be explicit about octal being base 8 and hexadecimal being base 16; most readers shall know, but best to be clear. Be explicit about the digits used for bases beyond ten. Mention that QLocale is the way to do locale-sensitive conversions. Change-Id: I4efcec6242644f37a48ff6391b96ed5b371d5be8 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QByteArray: clean up docs of trimmed() and simplified()Edward Welbourne17 hours1-15/+17
| | | | | | | | | Make the set of spacing characters explicit (rather than "includes" hinting that there might be more) and makes explicit that this is an ASCII operation. Change-Id: I61b543bcb450ee82bcce980ecb469901e287b46f Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Rename snippet files to match the carved up corelib/tools/Edward Welbourne17 hours19-159/+159
| | | | | | | | | | | This is a folllow-up to commits 548513a4bd050d3df0a85fed6e2d1a00ce06d2ab and a9aa206b7b8ac4e69f8c46233b4080e00e845ff5, renaming the snippets files referenced by the files moved out of corelib/tools/ to match the new locations of the files using them. Change-Id: I59f5d3c217ef835e9244387cc769e7212de9d8f5 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Long live QStringTokenizer!Marc Mutz32 hours3-0/+797
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class is designed as C++20-style generator / lazy sequence, and the new return value of QString{,View}::tokenize(). It thus is more similar to a hand-coded loop around indexOf() than QString::split(), which returns a container (the filling of which allocates memory). The template arguments of QStringTokenizer intricately depend on the arguments with which it is constructed, so QStringTokenizer cannot be used directly without C++17 CTAD. To work around this issue, add a factory function, qTokenize(). LATER: - ~Optimize QLatin1String needles (avoid repeated L1->UTF16 conversion)~ (out of scope for QStringTokenizer, should be solved in the respective indexOf()) - Keep per-instantiation state: * Boyer-Moore table [ChangeLog][QtCore][QStringTokenizer] New class. [ChangeLog][QtCore][qTokenize] New function. Change-Id: I7a7a02e9175cdd3887778f29f2f91933329be759 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix and compactify QNotifiedPropertyUlf Hermann33 hours3-14/+82
| | | | | | | | | | | | The static observer can live in a union with the inline observers. We only need to take care of calling the ctors and dtors manually then. In order for any observers to be called in the presence of a static observer, the static observer has to be called after the other observers. Change-Id: I2f56fa64f3fe6fcd7f06cc403929362da7d86f65 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Do not multithread if already in a global threadpool threadAllan Sandfeld Jensen33 hours2-0/+26
| | | | | | | | | | This can lead to a deadlock if we block all the worker threads, waiting for the worker threads to finish. Pick-to: 5.15 Fixes: QTBUG-84619 Change-Id: I92b7f96007897d86ece0c34223bab0df4ccbed9a Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* QEventDispatcherWin32: retrieve PM_REMOVE value as a bit flagAlex Trotsenko33 hours1-1/+5
| | | | | | | | | | | | | | Windows unexpectedly passes PM_NOYIELD flag in wParam parameter to the hook procedure, if ::PeekMessage(..., PM_REMOVE | PM_NOYIELD) is called from the event loop. So, to ignore undocumented flag, we should interpret wParam as a bit field. Thanks to Robin Lobel for research. Pick-to: 5.15 Fixes: QTBUG-84562 Change-Id: Ib16d7d747aebc9a3628e4ee67478c4d3edeb96f1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QPoint(F): API cleanupsGiuseppe D'Angelo33 hours1-117/+117
| | | | | | | Unexport the classes, plaster noexcept, and port to constexpr. Change-Id: I5cc7928fb08e8e32c67cff2d84c1b0ed9d46a2fa Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add missing lock in QFactoryLoaderAlex Blasche42 hours1-0/+1
| | | | | | | | | | | libraryList is modified in a code section that was not yet properly locked. This was overlooked by 7ca66b1e66e73a0cb35705df04507ef9f3440cab. Task-number: QTBUG-42855 Change-Id: I028ad21a7df314133931f860ad49453bb2db9da0 Pick-to: 5.15 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add Q_OS_WEBOS to qsystemdetectionDominik Holland43 hours1-0/+4
| | | | | | | | | | This can be used to guard WebOS specific patches. Change-Id: Ia770562b92c59fc3410d6254acd1313776d15a28 Pick-to: 5.15 Fixes: QTPM-1826 Reviewed-by: Johannes Oikarinen <johannes.oikarinen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Doc: fix some typos in QRegularExpression documentationSamuel Gaist2 days1-8/+8
| | | | | | Pick-to: 5.15 Change-Id: Ibf96fc775b08df4de0b20d499d8779204ff7df30 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QTranslator: replace manual memory handling with std::unique_ptrMarc Mutz2 days1-18/+14
| | | | | | | | The QTranslator owns its QResource and its sub-translators, so hold them in unique_ptr to show what's going on. Change-Id: I65dfa8c3b6dd774066a01de23ae6cff7449b363a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QMetaType: create metatype for voidFabian Kosmale2 days2-11/+23
| | | | | | | | | | | Create a QMetaTypeInterface for void. This allows us differentiate QMetaType::Unknown from QMetaType::Void. In addition, this will enable the usage of QMetaMethod::metaReturnType in QMetaMethod::returnType, and will facilitate using metaReturnType in declarative, which needs to distinguish between Unknown and Void. Change-Id: I83296b49587f3deb7ec73e25a33f0d8c98cf8da0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* MetaObject: Store the QMetaType of the methodsFabian Kosmale2 days6-38/+129
| | | | | | | | | | | | | | | | | | | | | | | | This does the analog of 46f407126ef3e94d59254012cdc34d6a4ad2faf2 for the methods we care about (signals, slots, Q_INVOKABLEs). In addition to the actual QMetaType, we store an array with offsets so that we later can do a mapping from methodIndex to metatype. The newly added QMetaMethod::{return,parameter}MetaType methods can then be used to retrieve the metatypes. This does however require that all involved types are complete. This is unfortunately not a feasible requirement. Thus, we only populate the metatype array on a best effort basis. For any incomplete type, we store QMetaType::Unknown. Then, when accessing the metatype, we fall back to the old string based code base if it's Unknown. Squashes "moc: support incomplete types" and "Fix compile failures after QMetaMethod change" Fixes: QTBUG-82932 Change-Id: I6b7a587cc364b7cad0c158d6de54e8a204289ad4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Support qbswap for all integral typesLars Knoll3 days1-41/+13
| | | | | | | | long and ulong where missing. Generalize the code so that it'll work for all integral types. Change-Id: I74591e9c8b375e0ecdcfdd856970ce355eb2d4ce Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add QStringView::split() methodsLars Knoll3 days2-7/+68
| | | | | | | | | | | | | Since QString::split() is not going away in Qt 6, we should aim to provide API symmetry here, and ease porting existing code from QString(Ref) to use QStringView. This is easier than having to port everything to use tokenize() at the same time. tokenize() will however lead to better performance and thus should be preferred. Change-Id: I1eb43300a90167c6e9389ab56f416f2bf7edf506 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QMimeType::suffixForFileName shouldn't lowercase the file suffixDavid Faure4 days4-16/+27
| | | | | | | | | | | | | It was returning a lowercased suffix because it was extracting it from the pattern (*.txt) rather than from the filename ("README.TXT"). This broke expectations on the application side, since this method is documented to return a suffix from the given filename. Ref: https://bugs.kde.org/show_bug.cgi?id=402388 Change-Id: I7dae13db31280249d3f592fa9592c4067804e22d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Refactor splitString to use QStringViewLars Knoll4 days1-12/+11
| | | | | | | Instead of a QChar * and a length. Change-Id: Ic07e92fe0889e57c19ce7c1bf6902f3a598fad05 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Port QRegularExpression to QStringView, drop QStringRefGiuseppe D'Angelo4 days3-177/+109
| | | | | | | | | | | | | | | | | | | | | | The idea is pretty simple -- add QRegularExpression matching over QStringView. When matching over a QString, keep the string alive (by taking a copy), and set the view onto that string. Otherwise, just use the view provided by the user (who is then responsible for ensuring the data stays valid while matching). Do just minor refactorings to support this use case in a cleaner fashion. In QRegularExpressionMatch drop the QStringRef-returning methods, as they cannot work any more -- in the general case there won't be a QString to build a QStringRef from. [ChangeLog][QtCore][QRegularExpression] All the APIs dealing with QStringRef have been ported to QStringView, following QStringRef deprecation in Qt 6.0. Change-Id: Ic367991d9583cc108c045e4387c9b7288c8f1ffd Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add QStringView::constData()Lars Knoll5 days2-0/+12
| | | | | | | | | | This is doing the same as data(), but the method is widely being used in Qt (e.g. in QString), so this will make it easier to change the type of a variable from QString(Ref) to QStringView in a source compatible way. Change-Id: Ic49bef688d3ce3c550336edf90130aa5cac8b497 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add support for count() to QStringViewLars Knoll5 days4-11/+46
| | | | | | | Make the API more symmetric with regards to both QString and QStringRef. Change-Id: Ia67c53ba708f6c33874d1a127de8e2857ad9b5b8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Return correct threadId in all casesSamuli Piippo6 days1-10/+1
| | | | | | | | | | | | | If the assembler code cannot be used to retrieve the threadId, always use pthread_self() for it. QObject uses QThread::currentThreadId() and QThreadData::threadId to match threads, which makes address of the currentThreadData unsuitable as the thread id. Reading the threadId from currentThreadData is slower than calling pthread_self(), as tested on Aarch64 linux and x86_64 QNX. Change-Id: If9afc8ed2810ad1e04bd42ead8f40b43ef3bac30 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Regenerate src/corelibAlexandru Croitor6 days2-4/+5
| | | | | Change-Id: I985f9cca78e173f066d65e704c101d499668163a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add toInt() and friends to QStringViewLars Knoll6 days4-0/+258
| | | | | | | | | Make the API more symmetric with regards to both QString and QStringRef. Having this available helps making QStringView more of a drop-in replacement for QStringRef. QStringRef is planned to get removed in Qt 6. Change-Id: Ife036c0b55970078f42e1335442ff9ee5f4a2f0d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Check CMAKE_CONFIGURATION_TYPES when doing automoc extractionAlexandru Croitor6 days1-1/+1
| | | | | | | | | | Otherwise when configuring a standalone example without specifying a CMAKE_BUILD_TYPE (so it's empty), building fails because qt6_generate_meta_types_json_file thinks it's being called with a multi-config generator. Change-Id: I360c7dbb19522155d8e72f98836fb663916715a0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Use default location for installing metatypes json filesAlexandru Croitor6 days1-47/+66
| | | | | | | | | | | | | | | | | | | | | Previously configuring a standalone example that had no explicit INSTALL_DIR option for qt6_generate_meta_types_json_file would fail. When no explicit location is specified to qt6_generate_meta_types_json_file via INSTALL_DIR option, default to installing into a lib/metatypes location relative to the install prefix. This is required for supporting calling qt6_generate_meta_types_json_file when building standalone applications or libraries (not part of the Qt build). Make sure not to install the metatypes.json file for executables. Install it only for libraries (aka modules). Task-number: QTBUG-84403 Change-Id: Ie0dd75fca0cde71ccb4eb48030871e72d31d1725 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Cosmetic whitespace / indentationIvan Tkachenko6 days2-55/+65
| | | | | | | | | | Split long signature into multiple lines, and indent some existing misaligned signatures. Change-Id: Icaed7b703c3f0b20472400b186ac2a28f1ff1dd1 Pick-to: 5.15 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Add a way of notifying QFutureWatcher when pause is in effectSona Kurazyan6 days7-16/+82
| | | | | | | | | | | | | | | | | | | | | | | | Because setting QFutureInterface to paused state does not mean that the computations that are already in progress will stop immediately, it may be useful to get notified when pause actually takes effect. Introduced the QFutureWatcher::suspended() signal, to be emitted when there are no more computations in progress, and no more result ready or progress reporting signals will be emitted, i.e. when pause took effect. Added {QFuture, QFutureWatcher}::isSuspended() methods for checking if pause took effect. QtConcurrent will now to send QFutureCallOutEvent::Suspended event when the state is paused and there are no more active threads. [ChangeLog][QtCore][QFutureWatcher] Added a new QFutureWatcher::suspended() signal, to be emitted when pause took effect, meaning that there are no more computations in progress. Added {QFuture, QFutureWatcher}::isSuspended() methods for checking if pause took effect. Fixes: QTBUG-12152 Change-Id: I88f2ad24d800cd6293dec63977d45bd35f9a09f0 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* CMake Build: Do not set "lib" prefix for modules (plugins)Cristian Adam6 days1-0/+4
| | | | | | | CMake sets "lib" as default prefix for Windows-GNU platforms. Change-Id: I49e3123c385610307c84c584a21f5f3827a6fafd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix a typo and an odd phrasingEdward Welbourne6 days1-7/+6
| | | | | | | | | | | One initializes data "byte by byte" not "byte per byte", at least in any dialect I'm familiar with. A byte array can be "created from raw data" but if it was "from a" thing it'd have to be a datum of some sort. Change-Id: Id9706b191f08f03418b9ea6f481797d93a278dff Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Implement support for QProperty<T> with a static observerSimon Hausmann7 days5-4/+382
| | | | | | | | | | | | | | | | | | | | | | | A common pattern in Qt Quick will be QProperty members that are connected to a callback that needs to perform something when the value changes, for example emitting a compatibility signal or marking scene graph node data dirty. To make such a pattern more efficient, a new QNotifiedProperty type is introduced that offers the same API as QProperty<T>, with two changes: (1) The template instantiation not only takes the property type as parameter but also a callback pointer-to-member. (2) Since that member itself cannot be called without an instance and to avoid storing an instance pointer permanently, the API for setBinding and setValue are adjusted to also take the instance pointer. For the former it gets stored in the binding, for the latter it is used to invoke the callback after setting the new value. Change-Id: I85cc1d1d1c0472164c4ae87808cfdc0d0b1475e1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add missing number/setNum() overloadsLars Knoll7 days2-0/+46
| | | | | | | | QString has the overloads taking a long/ulong. QByteArray also has toLong/ULong(), so add these to make the API symmetric. Change-Id: I6d1f98ca95fabd32b012f1c3df603dc54e187ec3 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix most obvious typos in doc commentsIvan Tkachenko7 days3-18/+18
| | | | | | | | | | | Just opened some files with spell checker turned on, and corrected what was underlined. Also, see QTBUG-84427. Change-Id: I702b5bf2cfe1f23c928a6a57f117a2f571ad86ea Pick-to: 5.15 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Cache system zone ID when fetched from the file-systemEdward Welbourne8 days1-64/+141
| | | | | | | | | | | | | | Record the device and inode numbers when found and assume we can safely re-use the name if those have not changed. Tidy up some preprocessor trivia in the process and moved zone-availability check functions to before the system name lookup. Pick-to: 5.15 Task-number: QTBUG-75585 Change-Id: I3660922ef3c94b553a20f887a676e8921693b30f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make QDateTimeParser recognize local time offsetsAndrei Golubev8 days1-13/+10
| | | | | | | Fixes: QTBUG-84209 Pick-to: 5.15 Change-Id: Iedbc7beafcaa55c72fec3ac5a5f519c6ed5f7770 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add a QPropertyAliasUlf Hermann9 days3-10/+399
| | | | | | | | | | | | A property alias is the equivalent of the "alias" keyword in QML. It provides the same API as QProperty, but redirects any access to the QProperty it was initialized with. When the original property is destroyed the binding becomes invalid and ignores any further acccess. Task-number: QTBUG-84370 Change-Id: I0aef8d50e73a2aa9e7703d51194d4c5480573578 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove deprecated QProcess methodsVolker Hilsheimer9 days2-187/+3
| | | | | | | | | | | | | Add default parameter for arguments in start, startDetached, and execute for better source compatibility with Qt 5.15. This has the risk of then hiding incorrect calls to the previous overload taking a single "command" strings if code is ported from pre-5.15 or ignores deprecation warnings. This is acceptable, given that the alternative is that all calls to these functions would require a default constructed QStringList as the second parameter. Change-Id: I1ba4df97ac4894d007da5083c8359015d784ddbb Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QProperty: Support multiple observersUlf Hermann9 days4-17/+32
| | | | | | | | | Previously, only the first observer would get notified. Also, make sure that the notifiers are always retained when switching between bindings and values. Change-Id: I9c25c0f2e288dac3a335b68e618f7ddeb44be25a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QProperty: Apply coding style and avoid warningsUlf Hermann9 days1-1/+1
| | | | | Change-Id: I14efdb293a4be39b3849b34bd8013fdab016ce7e Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* Don't queue events in QFutureWatcher when pause is requestedSona Kurazyan9 days2-26/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When QFutureWatcher (or QFutureInterface) is paused, it doesn't mean that it will take effect immediately: the pending tasks may still be in progress and keep reporting results. At the moment QFutureWatcher will queue those events and report only with the next resume. This behavior is wrong, QFutureWatcher should not decide when to report events, the sender should decide when is the right time. There's no benefit in reporting already happened events with delay. Because of this, even the pause event itself was being reported after resume. Fixed the behavior by removing the logic of queueing events when the state is set to "paused". It seems unlikely that the users of QFutureWatcher rely on reporting events with delay. [ChangeLog][Important Behavior Changes][QtCore] QFutureWatcher will not immediately stop delivering progress and result ready signals when the future is paused. At the moment of pausing there may be still computations that are in progress and cannot be stopped. Signals for such computations will be still delivered after pause, instead of being postponed and reported only after next resume. Fixes: QTBUG-12152 Change-Id: I9f0b545ac096578c52cc72d60575c018c01e3368 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* QMimeDatabase/xml: use xmlstarlet instead of xmlEric Lemanissier9 days1-2/+2
| | | | | | | | some distributions (eg Ubuntu) don't provide xml executable, but only xmlstarlet executable Change-Id: Icc801ded8d4ec1ec4d1dab93289a2365f8cd9cbd Pick-to: 5.15 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Don't change the implementation of a method depending on QT_USE_QSTRINGUILDERLars Knoll10 days1-23/+13
| | | | | | | | | | | | | | | | | | | | | | | This is rather evil and caused crashes in static builds, when library and application where compiler with different settings of the QT_USE_QSTRINGBUILDER flag. The reason is that the implementation of QStringDecoder::operator() was different (and returning different data) with or without the setting. The compiler would thus create two very different versions of this method in different .o files. When linking the app, one of the implementations would be chosen, leading to crashes in places where the other one was expected. Fix this by only providing the QStringBuilder enabled version of the methods. They return a temporary object that's converatable to a QString/QByteArray anyway. Make sure that qdoc shows a simple signature. As a drive by fix a compile error in a code path that didn't get hit so far. Change-Id: I312fa564d0bc6b464f2b4466de1d53841f7b7b0f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Initialize variableLars Knoll10 days1-1/+1
| | | | | | Change-Id: Ibcccd93fd4654a087c323fde08dbadb64d22156c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Doc: Document Qt 6 changes for QHash, QMultiHash, QSetKai Koehne10 days1-0/+47
| | | | | Change-Id: I9a83d33f05d7c3e5d23399129dfac45a1cb0d6ad Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add 'Qt Core Changes in Qt 6'Kai Koehne10 days2-0/+46
| | | | | | | | | Skeleton to document changes to Qt Core in Qt 6. Task-number: QTBUG-71036 Task-number: QTBUG-84051 Change-Id: I2720beffb934121258331efd9eeb91c07d40a5bf Reviewed-by: Paul Wicking <paul.wicking@qt.io>