summaryrefslogtreecommitdiffstats
path: root/src/corelib/platform
Commit message (Collapse)AuthorAgeFilesLines
* wasm: add Blob and File typeLorn Potter2021-11-302-0/+12
| | | | | | | Convenience getters for mime type associated with the object. Change-Id: I7e3530459e50ac4740d533db59c46e838c94dbcd Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* wasm: Move Blob creation code to qstdwebMorten Johan Sørvig2021-11-272-2/+51
| | | | | | | | | | | | | | Add Uint8Array::copyFrom() and Blob::copyFrom(), which constructs JS data containers with content copied from the C heap. These should not be confused with e.g. the Uint8Array(buffer, size) constructor, which creates a Uint8Array which references content on the heap, without making a copy. Change-Id: Id7d25d8044ee3914d74698e5a15c93226568eaf3 Reviewed-by: David Skoland <david.skoland@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* wasm: Move streamFile() to qstdwebMorten Johan Sørvig2021-11-262-0/+47
| | | | | | | | | This function is useful also outside of local file access, for example when reading clipboard (file) content. Change-Id: I132546deb6df2969467051c348c05d9331d2cfd2 Reviewed-by: David Skoland <david.skoland@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* QAndroidActivityResultReceiver: make uniqueActivityRequestCode() lock- and ↵Marc Mutz2021-11-251-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UB-free The old code attempted to detect the overflow of the requestCode variable, but because it didn't do anything about it except warn, it still ran into the overflow, and, since the variable is signed, into UB. That means that a clever compiler will just eliminate the warning as dead code because it can backtrack and see that the condition guarding it is never true, because otherwise UB happens. Fix that problem by using a uint counter (unsigned overflow is defined to wrap) and only convert to int after the check. Also fix two inefficiencies with the old code: 1. We don't need a mutex just to up a counter in a thread-safe way. Upping a shared counter is the prototypical use-case for relaxed atomics, so use that. That also solves the problem of the non-POD static object at function scope (QMutex) that forced compilers to emit thread-safe static initialization code. 2. We had a static variable whose initial value isn't 0, which means it can't be in stored in the BSS, but only in the DATA segment. Do the trivial transformation of subtracting the offset so the variable starts at 0. The offset can be added afterwards. Pick-to: 6.2 Change-Id: I3560df21d6b4e4201cb6772237780cc8b400631d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QAndroidActivityResultReceiver: avoid double(triple)-lookupMarc Mutz2021-11-201-6/+9
| | | | | | | | | | | | | | | | The code used the if (!contains()) { insert() } anti-pattern, necessitated by Qt's deviation from the STL of allowing insert() to overwrite an existing entry, causing two lookups of the same key. Fix by recording the size prior to the execution of the indexing operator and taking a size increase as the cue to populate the (new) entry. This way, we look up the key only once. Also fix two instances of double lookup caused by the if (contains()) { value() } anti-pattern. Change-Id: I961fe45ec571aa94aff5dd578f2276e7b74d800d Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Do not include qloggingcategory.h in public headersKai Köhne2021-11-161-0/+1
| | | | | | | | | | | | | | | Reduce overhead for including qguiapplication.h by splitting up qnativeinterface.h into a public and a private part. [ChangeLog][Potentially Source-Incompatible Changes] The qguiapplication.h header no longer implicitly includes qloggingcategory.h. If your code depends on the transitive include, explicitly include <QLoggingCategory> where needed. Pick-to: 6.2 Task-number: QTBUG-97601 Change-Id: Ic02327a1c3092e21730160af5c59a9d58dc1239c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* corelib: Fix typos in source code commentsJonas Kvinge2021-10-121-1/+1
| | | | | | Pick-to: 6.2 Change-Id: Ic78afb67143112468c6f84677ac88f27a74b53aa Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix compile error on AndroidLars Knoll2021-09-241-2/+0
| | | | | | | | | | Remove an unused and deprecated enum value that was giving compile errors due to a missing case statement when compiling locally with -developer-build. Pick-to: 6.2 Change-Id: Ieca2124beda122f603acfd1b5f5746284a8a1a6c Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Pass QDeadlineTimer by value in runOnAndroidMainThread()Assam Boudjelthia2021-08-011-1/+1
| | | | | | | | Also change the timer default value to use QDeadlineTimer::Forever. Pick-to: 6.2 Change-Id: Ia6d0101872a5d01b04e146cd9b2f90315cb8eb2e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove app permission API from QCoreApplicationAssam Boudjelthia2021-07-301-0/+33
| | | | | | | | | | | | | From the API review session, a potential deadlock behavior might occur when using QFuture's synchronous APIs on the UI thread. Also the fact that this api currently have an implementation only for Android. For those reasons we thought this API could be postponed until Qt 6.3, when the QFuture concern is addressed and other platforms other than Android are implemented as well. Pick-to: 6.2 Change-Id: I1aef025488c24791da85d15fb57367d3e5e681be Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move Android implementation of permissions API to QtAndroidPrivateTor Arne Vestbø2021-07-262-0/+292
| | | | | | | | | | | | And remove plumbing from public QCoreApplication API, which is going to be removed in follow up patch after leaf modules have moved to the private Android API. The public permissions API will be reintroduced in 6.3 after further work. Pick-to: 6.2 Change-Id: I46772284b98d0ced8d4a624a850adaa4a1dfe645 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Remove ministro codeAssam Boudjelthia2021-07-011-3/+0
| | | | | | | | | | | | | | Since Ministro no longer work on recent Android versions (Android 8+), and it hasn't been maintained and the repos are not updated, the existing code is practically a dead code. [ChangeLog][Android] Remove ministro code since it's been unmaintained and not working with recent Android versions. Task-number: QTBUG-85201 Pick-to: 6.2 Change-Id: I18d7b1e209cba3cfd04674060e9bf39aa5a5510f Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Doc: QtCore: Fix more documentation warningsTopi Reinio2021-06-072-2/+2
| | | | | | | | | | | | | | * Omit 'Bluetooth' enum value in QPermission::PermisionType (sic) as that seems to be unimplemented. * Comment out \sa links to internal/undocumented functions. * Fix incomplete template parameters in \fn commands for QProperty methods. Task-number: QTBUG-93995 Change-Id: Ic8e63fca22c9c72325c76f90f537b221f56ebace Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Doc: mark private android classes as \preliminaryAssam Boudjelthia2021-06-031-0/+6
| | | | | | | Those classes are temporary and will change in the future releases. Change-Id: I1d516e34977bd6f5ae9526704b021e616c4746f3 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: QtCore: Fix documentation issuesTopi Reinio2021-06-011-1/+2
| | | | | | | | | | | | | | | | | | * Add module header wrapper that loads the real QtCore header and qandroidextras_p.h to generate docs for those types * Add missing dummy typedefs to doc/include/jni.h * Use the correct \namespace name (QtAndroidPrivate) and mark it as \preliminary * Add missing 'const' specifier for Q[Untyped]Bindable methods * Drop documentation for removed method QProperty::markDirty() * qmath.h: Fix \fn commands for qFloor(), qCeil() * QHashSeed: Drop incorrect usage of \relates Fixes: QTBUG-93942 Task-number: QTBUG-93995 Change-Id: If76b5aa4b79a64add3cb6275eac82ec44ef10319 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Android: Add runOnMainAndroidThread() under QNativeInterfaceAssam Boudjelthia2021-05-261-1/+148
| | | | | | | | | | | | This replaces QtAndroidPrivate::runOnAndroidThread{Sync} calls. This also now allows passing std::function<> that can return values, and not only an std::function<void()>. This adds some tests for this calls as well. Fixes: QTBUG-90501 Change-Id: I138d2aae64be17347f7ff712d8a86edb49ea8350 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Move Android Extras as private APIs under qtbaseAssam Boudjelthia2021-05-102-0/+1292
| | | | | | | | To the option to users to use some needed APIs until we make them ready as proper cross-platform public APIs. Change-Id: I53006397463331ebae8314bf8a3a019474aec617 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Move hideSplashScreen() from qjnihelpers_p to QNativeInterfaceAssam Boudjelthia2021-05-081-0/+17
| | | | | | | | | | | | Hiding the splash screen require one JNI call instead of having to keep it as a global in qjnihelpers, and since it's not really easy to have a cross platform way for it it makes sense to have it under QNativeInterface. The alternative is probably removing it altogether since it's not useful often. Task-number: QTBUG-90500 Change-Id: I9b375c52afbf07e1ddd7957c1ec60af5c258f404 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Add sdkVersion() to QNativeInterface::QAndroidApplicationAssam Boudjelthia2021-05-061-0/+11
| | | | | | | | | | | The androidSdkVersion() is probably the most used call from QtAndroidPrivate, so instead of waiting long time for a cross platform api that could offer this functionality, it's better to have it now under the NativeInterface. Task-number: QTBUG-90497 Change-Id: I008d4c77d347d36e0a7e8ca4d6f33f993b02511b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add QAndroidApplication as a nativeInterfaceAssam Boudjelthia2021-02-201-0/+85
| | | | | | | | | | QAndroidApplication provides the Android specific app context() and isActivityContext() to determine whether the context is an Activity or otherwise a Service. Task-number: QTBUG-90499 Change-Id: Iae2eef7ec44859a89825b09f52f09506b20b5420 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-072-4/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* wasm: Use common “qt” prefix for exported functionsMorten Johan Sørvig2019-03-261-1/+1
| | | | | | | | Prevent namespace collisions and make sure Qt functions are grouped together. Change-Id: I217188ee93e4300e273d10a79d6014179fc5a1ef Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* wasm: add qstdweb private APIMorten Johan Sørvig2019-02-074-0/+409
qstdweb provides a C++ API covering parts of the DOM API useful for implementing Qt. This currently includes ArrayBuffer, Blob, File, FileReader, and Uint8Array. The implementation uses emscripten::val, which currently proxies via JavaScript, but should at some point be able to acccess the DOM directly, once WebAssembly gains such access. This API should be easier to use than the string-and-casting emscripten::val API. It is currently private, and can be changed and extended as needed. Change-Id: I95a2ad735e511c8da61f3cc21357fbffe3b05d8e Reviewed-by: Lorn Potter <lorn.potter@gmail.com>