Rename QPermission namespace to QApplicationPermission
Pick-to: 6.2 Task-number: QTBUG-94407 Change-Id: Ie9c05dbe498cd372c015b5125e6cb8d59ca96b59 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
b612014ae7
commit
07d4ecd734
@ -58,8 +58,9 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
|
||||
auto permission = QPermission::WriteStorage;
|
||||
if (QCoreApplication::requestPermission(permission).result() != QPermission::Authorized) {
|
||||
auto permission = QApplicationPermission::WriteStorage;
|
||||
if (QCoreApplication::requestPermission(permission).result()
|
||||
!= QApplicationPermission::Authorized) {
|
||||
qWarning() << "Couldn't get 'WriteStorage' permission!";
|
||||
return -1;
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ qt_internal_add_module(Core
|
||||
kernel/qobjectcleanuphandler.cpp kernel/qobjectcleanuphandler.h
|
||||
kernel/qobjectdefs.h
|
||||
kernel/qobjectdefs_impl.h
|
||||
kernel/qpermission.h
|
||||
kernel/qapplicationpermission.h
|
||||
kernel/qpointer.cpp kernel/qpointer.h
|
||||
kernel/qproperty.cpp kernel/qproperty.h kernel/qproperty_p.h
|
||||
kernel/qpropertyprivate.h
|
||||
|
@ -58,8 +58,8 @@ void requestCameraPermissionAndroid()
|
||||
{
|
||||
//! [Request camera permission on Android]
|
||||
QCoreApplication::requestPermission(QStringLiteral("android.permission.CAMERA"))
|
||||
.then([=](QPermission::PermissionResult result) {
|
||||
if (result == QPermission::Authorized)
|
||||
.then([=](QApplicationPermission::PermissionResult result) {
|
||||
if (result == QApplicationPermission::Authorized)
|
||||
takeSelfie();
|
||||
});
|
||||
//! [Request camera permission on Android]
|
||||
@ -68,9 +68,9 @@ void requestCameraPermissionAndroid()
|
||||
void requestCameraPermission()
|
||||
{
|
||||
//! [Request camera permission]
|
||||
QCoreApplication::requestPermission(QPermission::Camera)
|
||||
.then([=](QPermission::PermissionResult result) {
|
||||
if (result == QPermission::Authorized)
|
||||
QCoreApplication::requestPermission(QApplicationPermission::Camera)
|
||||
.then([=](QApplicationPermission::PermissionResult result) {
|
||||
if (result == QApplicationPermission::Authorized)
|
||||
takeSelfie();
|
||||
});
|
||||
//! [Request camera permission]
|
||||
@ -81,7 +81,7 @@ void requestCameraPermissionSyncAndroid()
|
||||
//! [Request camera permission sync on Android]
|
||||
auto future = QCoreApplication::requestPermission(QStringLiteral("android.permission.CAMERA"));
|
||||
auto result = future.result(); // blocks and waits for the result to be ready
|
||||
if (result == QPermission::Authorized)
|
||||
if (result == QApplicationPermission::Authorized)
|
||||
takeSelfie();
|
||||
//! [Request camera permission sync on Android]
|
||||
}
|
||||
@ -89,9 +89,9 @@ void requestCameraPermissionSyncAndroid()
|
||||
void requestCameraPermissionSync()
|
||||
{
|
||||
//! [Request camera permission sync]
|
||||
auto future = QCoreApplication::requestPermission(QPermission::Camera);
|
||||
auto future = QCoreApplication::requestPermission(QApplicationPermission::Camera);
|
||||
auto result = future.result(); // blocks and waits for the result to be ready
|
||||
if (result == QPermission::Authorized)
|
||||
if (result == QApplicationPermission::Authorized)
|
||||
takeSelfie();
|
||||
//! [Request camera permission sync]
|
||||
}
|
||||
@ -100,8 +100,8 @@ void checkCameraPermissionAndroid()
|
||||
{
|
||||
//! [Check camera permission on Android]
|
||||
QCoreApplication::checkPermission(QStringLiteral("android.permission.CAMERA"))
|
||||
.then([=](QPermission::PermissionResult result) {
|
||||
if (result == QPermission::Authorized)
|
||||
.then([=](QApplicationPermission::PermissionResult result) {
|
||||
if (result == QApplicationPermission::Authorized)
|
||||
takeSelfie();
|
||||
});
|
||||
//! [Check camera permission on Android]
|
||||
@ -110,9 +110,9 @@ void checkCameraPermissionAndroid()
|
||||
void checkCameraPermission()
|
||||
{
|
||||
//! [Check camera permission]
|
||||
QCoreApplication::checkPermission(QPermission::Camera)
|
||||
.then([=](QPermission::PermissionResult result) {
|
||||
if (result == QPermission::Authorized)
|
||||
QCoreApplication::checkPermission(QApplicationPermission::Camera)
|
||||
.then([=](QApplicationPermission::PermissionResult result) {
|
||||
if (result == QApplicationPermission::Authorized)
|
||||
takeSelfie();
|
||||
});
|
||||
//! [Check camera permission]
|
||||
@ -124,7 +124,7 @@ void checkCameraPermissionAndroidSync()
|
||||
auto future = QCoreApplication::checkPermission(QStringLiteral("android.permission.CAMERA"));
|
||||
// may block and wait for the result to be ready on some platforms
|
||||
auto result = future.result();
|
||||
if (result == QPermission::Authorized)
|
||||
if (result == QApplicationPermission::Authorized)
|
||||
takeSelfie();
|
||||
//! [Check camera permission sync on Android]
|
||||
}
|
||||
@ -132,10 +132,10 @@ void checkCameraPermissionAndroidSync()
|
||||
void checkCameraPermissionSync()
|
||||
{
|
||||
//! [Check camera permission sync]
|
||||
auto future = QCoreApplication::checkPermission(QPermission::Camera);
|
||||
auto future = QCoreApplication::checkPermission(QApplicationPermission::Camera);
|
||||
// may block and wait for the result to be ready on some platforms
|
||||
auto result = future.result();
|
||||
if (result == QPermission::Authorized)
|
||||
if (result == QApplicationPermission::Authorized)
|
||||
takeSelfie();
|
||||
//! [Check camera permission sync]
|
||||
}
|
||||
|
@ -37,14 +37,14 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QPERMISSION_H
|
||||
#define QPERMISSION_H
|
||||
#ifndef QAPPLICATIONPERMISSION_H
|
||||
#define QAPPLICATIONPERMISSION_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
namespace QPermission
|
||||
namespace QApplicationPermission
|
||||
{
|
||||
|
||||
enum PermissionType {
|
||||
@ -71,8 +71,11 @@ enum PermissionResult {
|
||||
Restricted,
|
||||
Undetermined
|
||||
};
|
||||
} // QPermission
|
||||
} // QApplicationPermission
|
||||
|
||||
// TODO: remove after usages in other modules are renamed.
|
||||
namespace QPermission = QApplicationPermission;
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // QPERMISSION_H
|
||||
#endif // QAPPLICATIONPERMISSION_H
|
@ -26,16 +26,17 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\namespace QPermission
|
||||
\namespace QApplicationPermission
|
||||
|
||||
\brief The QPermission namespace contains enums for app permission types and results.
|
||||
\brief The QApplicationPermission namespace contains enums for app permission
|
||||
types and results.
|
||||
|
||||
This namespace's enums are used by \l {QCoreApplication::requestPermission()} and
|
||||
\l {QCoreApplication::checkPermission()}.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\enum QPermission::PermissionType
|
||||
\enum QApplicationPermission::PermissionType
|
||||
|
||||
Predefined sets of permission values.
|
||||
|
||||
@ -87,7 +88,7 @@
|
||||
*/
|
||||
|
||||
/*!
|
||||
\enum QPermission::PermissionResult
|
||||
\enum QApplicationPermission::PermissionResult
|
||||
|
||||
The result values for a permission check or request.
|
||||
|
@ -3086,42 +3086,42 @@ void QCoreApplication::setEventDispatcher(QAbstractEventDispatcher *eventDispatc
|
||||
#if QT_CONFIG(future) && !defined(QT_NO_QOBJECT)
|
||||
#if !defined(Q_OS_ANDROID)
|
||||
|
||||
QFuture<QPermission::PermissionResult> defaultPermissionFuture()
|
||||
QFuture<QApplicationPermission::PermissionResult> defaultPermissionFuture()
|
||||
{
|
||||
QPromise<QPermission::PermissionResult> promise;
|
||||
QFuture<QPermission::PermissionResult> future = promise.future();
|
||||
QPromise<QApplicationPermission::PermissionResult> promise;
|
||||
QFuture<QApplicationPermission::PermissionResult> future = promise.future();
|
||||
promise.start();
|
||||
#if defined(QT_DEBUG)
|
||||
qWarning() << "This platform doesn't have an implementation"
|
||||
<< "for the application permissions API.";
|
||||
#endif
|
||||
promise.addResult(QPermission::Authorized);
|
||||
promise.addResult(QApplicationPermission::Authorized);
|
||||
promise.finish();
|
||||
return future;
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::requestPermission(QPermission::PermissionType permission)
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::requestPermission(QApplicationPermission::PermissionType permission)
|
||||
{
|
||||
Q_UNUSED(permission)
|
||||
return defaultPermissionFuture();
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::requestPermission(const QString &permission)
|
||||
{
|
||||
Q_UNUSED(permission)
|
||||
return defaultPermissionFuture();
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::checkPermission(QPermission::PermissionType permission)
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::checkPermission(QApplicationPermission::PermissionType permission)
|
||||
{
|
||||
Q_UNUSED(permission)
|
||||
return defaultPermissionFuture();
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::checkPermission(const QString &permission)
|
||||
{
|
||||
Q_UNUSED(permission)
|
||||
@ -3148,14 +3148,14 @@ void QCoreApplication::setEventDispatcher(QAbstractEventDispatcher *eventDispatc
|
||||
\snippet permissions/permissions.cpp Request camera permission sync
|
||||
|
||||
\note Any platform that doesn't have an implementation for this API,
|
||||
returns QPermission::Authorized by default. Currently, only Android
|
||||
returns QApplicationPermission::Authorized by default. Currently, only Android
|
||||
has an implemtation for this API.
|
||||
|
||||
\since 6.2
|
||||
\sa checkPermission()
|
||||
*/
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QCoreApplication::requestPermission(QPermission::PermissionType permission)
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplication::requestPermission(QApplicationPermission::PermissionType permission)
|
||||
{
|
||||
return QCoreApplicationPrivate::requestPermission(permission);
|
||||
}
|
||||
@ -3180,13 +3180,13 @@ QCoreApplication::requestPermission(QPermission::PermissionType permission)
|
||||
\snippet permissions/permissions.cpp Request camera permission sync on Android
|
||||
|
||||
\note Any platform that doesn't have an implementation for this API,
|
||||
returns QPermission::Authorized by default. Currently, only Android
|
||||
returns QApplicationPermission::Authorized by default. Currently, only Android
|
||||
has an implemtation for this API.
|
||||
|
||||
\since 6.2
|
||||
\sa checkPermission()
|
||||
*/
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplication::requestPermission(const QString &permission)
|
||||
{
|
||||
return QCoreApplicationPrivate::requestPermission(permission);
|
||||
@ -3206,14 +3206,14 @@ QCoreApplication::requestPermission(const QString &permission)
|
||||
\snippet permissions/permissions.cpp Check camera permission sync
|
||||
|
||||
\note Any platform that doesn't have an implementation for this API,
|
||||
returns QPermission::Authorized by default. Currently, only Android
|
||||
returns QApplicationPermission::Authorized by default. Currently, only Android
|
||||
has an implemtation for this API.
|
||||
|
||||
\since 6.2
|
||||
\sa requestPermission()
|
||||
*/
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QCoreApplication::checkPermission(QPermission::PermissionType permission)
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplication::checkPermission(QApplicationPermission::PermissionType permission)
|
||||
{
|
||||
return QCoreApplicationPrivate::checkPermission(permission);
|
||||
}
|
||||
@ -3233,13 +3233,13 @@ QCoreApplication::checkPermission(QPermission::PermissionType permission)
|
||||
\snippet permissions/permissions.cpp Check camera permission sync on Android
|
||||
|
||||
\note Any platform that doesn't have an implementation for this API,
|
||||
returns QPermission::Authorized by default. Currently, only Android
|
||||
returns QApplicationPermission::Authorized by default. Currently, only Android
|
||||
has an implemtation for this API.
|
||||
|
||||
\since 6.2
|
||||
\sa requestPermission()
|
||||
*/
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplication::checkPermission(const QString &permission)
|
||||
{
|
||||
return QCoreApplicationPrivate::checkPermission(permission);
|
||||
|
@ -47,7 +47,7 @@
|
||||
#include <QtCore/qeventloop.h>
|
||||
#if QT_CONFIG(future)
|
||||
#include <QtCore/qfuture.h>
|
||||
#include <QtCore/qpermission.h>
|
||||
#include <QtCore/qapplicationpermission.h>
|
||||
#endif
|
||||
#include <QtCore/qobject.h>
|
||||
#else
|
||||
@ -168,13 +168,15 @@ public:
|
||||
|
||||
#ifndef QT_NO_QOBJECT
|
||||
#if QT_CONFIG(future)
|
||||
static QFuture<QPermission::PermissionResult> requestPermission(
|
||||
QPermission::PermissionType permission);
|
||||
static QFuture<QPermission::PermissionResult> requestPermission(const QString &permission);
|
||||
static QFuture<QApplicationPermission::PermissionResult>
|
||||
requestPermission(QApplicationPermission::PermissionType permission);
|
||||
static QFuture<QApplicationPermission::PermissionResult>
|
||||
requestPermission(const QString &permission);
|
||||
|
||||
static QFuture<QPermission::PermissionResult> checkPermission(
|
||||
QPermission::PermissionType permission);
|
||||
static QFuture<QPermission::PermissionResult> checkPermission(const QString &permission);
|
||||
static QFuture<QApplicationPermission::PermissionResult>
|
||||
checkPermission(QApplicationPermission::PermissionType permission);
|
||||
static QFuture<QApplicationPermission::PermissionResult>
|
||||
checkPermission(const QString &permission);
|
||||
#endif
|
||||
void installNativeEventFilter(QAbstractNativeEventFilter *filterObj);
|
||||
void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj);
|
||||
|
@ -59,13 +59,13 @@ static const char invalidNativePermissionExcept[] =
|
||||
"Coudn't convert the provided permission type to a native Android permission string.";
|
||||
#endif
|
||||
|
||||
QPermission::PermissionResult resultFromAndroid(jint value)
|
||||
QApplicationPermission::PermissionResult resultFromAndroid(jint value)
|
||||
{
|
||||
return value == 0 ? QPermission::Authorized : QPermission::Denied;
|
||||
return value == 0 ? QApplicationPermission::Authorized : QApplicationPermission::Denied;
|
||||
}
|
||||
|
||||
using PendingPermissionRequestsHash
|
||||
= QHash<int, QSharedPointer<QPromise<QPermission::PermissionResult>>>;
|
||||
= QHash<int, QSharedPointer<QPromise<QApplicationPermission::PermissionResult>>>;
|
||||
Q_GLOBAL_STATIC(PendingPermissionRequestsHash, g_pendingPermissionRequests);
|
||||
static QBasicMutex g_pendingPermissionRequestsMutex;
|
||||
|
||||
@ -75,7 +75,7 @@ static int nextRequestCode()
|
||||
return counter.fetchAndAddRelaxed(1);
|
||||
}
|
||||
|
||||
static QStringList nativeStringsFromPermission(QPermission::PermissionType permission)
|
||||
static QStringList nativeStringsFromPermission(QApplicationPermission::PermissionType permission)
|
||||
{
|
||||
static const auto precisePerm = QStringLiteral("android.permission.ACCESS_FINE_LOCATION");
|
||||
static const auto coarsePerm = QStringLiteral("android.permission.ACCESS_COARSE_LOCATION");
|
||||
@ -83,39 +83,39 @@ static QStringList nativeStringsFromPermission(QPermission::PermissionType permi
|
||||
QStringLiteral("android.permission.ACCESS_BACKGROUND_LOCATION");
|
||||
|
||||
switch (permission) {
|
||||
case QPermission::CoarseLocation:
|
||||
case QApplicationPermission::CoarseLocation:
|
||||
return {coarsePerm};
|
||||
case QPermission::PreciseLocation:
|
||||
case QApplicationPermission::PreciseLocation:
|
||||
return {precisePerm};
|
||||
case QPermission::CoarseBackgroundLocation:
|
||||
case QApplicationPermission::CoarseBackgroundLocation:
|
||||
// Keep the background permission first to be able to use .first()
|
||||
// in checkPermission because it takes single permission
|
||||
if (QtAndroidPrivate::androidSdkVersion() >= 29)
|
||||
return {backgroundPerm, coarsePerm};
|
||||
return {coarsePerm};
|
||||
case QPermission::PreciseBackgroundLocation:
|
||||
case QApplicationPermission::PreciseBackgroundLocation:
|
||||
if (QtAndroidPrivate::androidSdkVersion() >= 29)
|
||||
return {backgroundPerm, precisePerm};
|
||||
return {precisePerm};
|
||||
case QPermission::Camera:
|
||||
case QApplicationPermission::Camera:
|
||||
return {QStringLiteral("android.permission.CAMERA")};
|
||||
case QPermission::Microphone:
|
||||
case QApplicationPermission::Microphone:
|
||||
return {QStringLiteral("android.permission.RECORD_AUDIO")};
|
||||
case QPermission::BodySensors:
|
||||
case QApplicationPermission::BodySensors:
|
||||
return {QStringLiteral("android.permission.BODY_SENSORS")};
|
||||
case QPermission::PhysicalActivity:
|
||||
case QApplicationPermission::PhysicalActivity:
|
||||
return {QStringLiteral("android.permission.ACTIVITY_RECOGNITION")};
|
||||
case QPermission::ReadContacts:
|
||||
case QApplicationPermission::ReadContacts:
|
||||
return {QStringLiteral("android.permission.READ_CONTACTS")};
|
||||
case QPermission::WriteContacts:
|
||||
case QApplicationPermission::WriteContacts:
|
||||
return {QStringLiteral("android.permission.WRITE_CONTACTS")};
|
||||
case QPermission::ReadStorage:
|
||||
case QApplicationPermission::ReadStorage:
|
||||
return {QStringLiteral("android.permission.READ_EXTERNAL_STORAGE")};
|
||||
case QPermission::WriteStorage:
|
||||
case QApplicationPermission::WriteStorage:
|
||||
return {QStringLiteral("android.permission.WRITE_EXTERNAL_STORAGE")};
|
||||
case QPermission::ReadCalendar:
|
||||
case QApplicationPermission::ReadCalendar:
|
||||
return {QStringLiteral("android.permission.READ_CALENDAR")};
|
||||
case QPermission::WriteCalendar:
|
||||
case QApplicationPermission::WriteCalendar:
|
||||
return {QStringLiteral("android.permission.WRITE_CALENDAR")};
|
||||
|
||||
default:
|
||||
@ -151,18 +151,18 @@ static void sendRequestPermissionsResult(JNIEnv *env, jobject *obj, jint request
|
||||
env->GetIntArrayRegion(grantResults, 0, size, results.get());
|
||||
|
||||
for (int i = 0 ; i < size; ++i) {
|
||||
QPermission::PermissionResult result = resultFromAndroid(results[i]);
|
||||
QApplicationPermission::PermissionResult result = resultFromAndroid(results[i]);
|
||||
request->addResult(result, i);
|
||||
}
|
||||
|
||||
request->finish();
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult> requestPermissionsInternal(const QStringList &permissions)
|
||||
QFuture<QApplicationPermission::PermissionResult> requestPermissionsInternal(const QStringList &permissions)
|
||||
{
|
||||
QSharedPointer<QPromise<QPermission::PermissionResult>> promise;
|
||||
promise.reset(new QPromise<QPermission::PermissionResult>());
|
||||
QFuture<QPermission::PermissionResult> future = promise->future();
|
||||
QSharedPointer<QPromise<QApplicationPermission::PermissionResult>> promise;
|
||||
promise.reset(new QPromise<QApplicationPermission::PermissionResult>());
|
||||
QFuture<QApplicationPermission::PermissionResult> future = promise->future();
|
||||
promise->start();
|
||||
|
||||
// No mechanism to request permission for SDK version below 23, because
|
||||
@ -197,70 +197,70 @@ QFuture<QPermission::PermissionResult> requestPermissionsInternal(const QStringL
|
||||
return future;
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::requestPermission(const QString &permission)
|
||||
{
|
||||
// avoid the uneccessary call and response to an empty permission string
|
||||
if (permission.size() > 0)
|
||||
return requestPermissionsInternal({permission});
|
||||
|
||||
QPromise<QPermission::PermissionResult> promise;
|
||||
QFuture<QPermission::PermissionResult> future = promise.future();
|
||||
QPromise<QApplicationPermission::PermissionResult> promise;
|
||||
QFuture<QApplicationPermission::PermissionResult> future = promise.future();
|
||||
promise.start();
|
||||
#ifndef QT_NO_EXCEPTIONS
|
||||
promise.setException(std::make_exception_ptr(std::runtime_error(emptyPermissionExcept)));
|
||||
#else
|
||||
promise.addResult(QPermission::Denied);
|
||||
promise.addResult(QApplicationPermission::Denied);
|
||||
#endif
|
||||
promise.finish();
|
||||
return future;
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult> groupRequestToSingleResult(const QStringList &permissions)
|
||||
QFuture<QApplicationPermission::PermissionResult> groupRequestToSingleResult(const QStringList &permissions)
|
||||
{
|
||||
QSharedPointer<QPromise<QPermission::PermissionResult>> promise;
|
||||
promise.reset(new QPromise<QPermission::PermissionResult>());
|
||||
QFuture<QPermission::PermissionResult> future = promise->future();
|
||||
QSharedPointer<QPromise<QApplicationPermission::PermissionResult>> promise;
|
||||
promise.reset(new QPromise<QApplicationPermission::PermissionResult>());
|
||||
QFuture<QApplicationPermission::PermissionResult> future = promise->future();
|
||||
promise->start();
|
||||
requestPermissionsInternal(permissions).then(
|
||||
[promise](QFuture<QPermission::PermissionResult> future) {
|
||||
[promise](QFuture<QApplicationPermission::PermissionResult> future) {
|
||||
auto results = future.results();
|
||||
if (results.count(QPermission::Authorized) == results.count())
|
||||
promise->addResult(QPermission::Authorized, 0);
|
||||
if (results.count(QApplicationPermission::Authorized) == results.count())
|
||||
promise->addResult(QApplicationPermission::Authorized, 0);
|
||||
else
|
||||
promise->addResult(QPermission::Denied, 0);
|
||||
promise->addResult(QApplicationPermission::Denied, 0);
|
||||
promise->finish();
|
||||
});
|
||||
|
||||
return future;
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::requestPermission(QPermission::PermissionType permission)
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::requestPermission(QApplicationPermission::PermissionType permission)
|
||||
{
|
||||
const auto nativePermissions = nativeStringsFromPermission(permission);
|
||||
|
||||
if (nativePermissions.size() > 0)
|
||||
return groupRequestToSingleResult(nativePermissions);
|
||||
|
||||
QPromise<QPermission::PermissionResult> promise;
|
||||
QFuture<QPermission::PermissionResult> future = promise.future();
|
||||
QPromise<QApplicationPermission::PermissionResult> promise;
|
||||
QFuture<QApplicationPermission::PermissionResult> future = promise.future();
|
||||
promise.start();
|
||||
#ifndef QT_NO_EXCEPTIONS
|
||||
promise.setException(std::make_exception_ptr(
|
||||
std::runtime_error(invalidNativePermissionExcept)));
|
||||
#else
|
||||
promise.addResult(QPermission::Denied);
|
||||
promise.addResult(QApplicationPermission::Denied);
|
||||
#endif
|
||||
promise.finish();
|
||||
return future;
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::checkPermission(const QString &permission)
|
||||
{
|
||||
QPromise<QPermission::PermissionResult> promise;
|
||||
QFuture<QPermission::PermissionResult> future = promise.future();
|
||||
QPromise<QApplicationPermission::PermissionResult> promise;
|
||||
QFuture<QApplicationPermission::PermissionResult> future = promise.future();
|
||||
promise.start();
|
||||
|
||||
if (permission.size() > 0) {
|
||||
@ -273,7 +273,7 @@ QCoreApplicationPrivate::checkPermission(const QString &permission)
|
||||
#ifndef QT_NO_EXCEPTIONS
|
||||
promise.setException(std::make_exception_ptr(std::runtime_error(emptyPermissionExcept)));
|
||||
#else
|
||||
promise.addResult(QPermission::Denied);
|
||||
promise.addResult(QApplicationPermission::Denied);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -281,22 +281,22 @@ QCoreApplicationPrivate::checkPermission(const QString &permission)
|
||||
return future;
|
||||
}
|
||||
|
||||
QFuture<QPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::checkPermission(QPermission::PermissionType permission)
|
||||
QFuture<QApplicationPermission::PermissionResult>
|
||||
QCoreApplicationPrivate::checkPermission(QApplicationPermission::PermissionType permission)
|
||||
{
|
||||
const auto nativePermissions = nativeStringsFromPermission(permission);
|
||||
|
||||
if (nativePermissions.size() > 0)
|
||||
return checkPermission(nativePermissions.first());
|
||||
|
||||
QPromise<QPermission::PermissionResult> promise;
|
||||
QFuture<QPermission::PermissionResult> future = promise.future();
|
||||
QPromise<QApplicationPermission::PermissionResult> promise;
|
||||
QFuture<QApplicationPermission::PermissionResult> future = promise.future();
|
||||
promise.start();
|
||||
#ifndef QT_NO_EXCEPTIONS
|
||||
promise.setException(std::make_exception_ptr(
|
||||
std::runtime_error(invalidNativePermissionExcept)));
|
||||
#else
|
||||
promise.addResult(QPermission::Denied);
|
||||
promise.addResult(QApplicationPermission::Denied);
|
||||
#endif
|
||||
promise.finish();
|
||||
return future;
|
||||
|
@ -63,7 +63,7 @@
|
||||
#include "private/qobject_p.h"
|
||||
#include "private/qlocking_p.h"
|
||||
#if QT_CONFIG(future)
|
||||
#include <QtCore/qpermission.h>
|
||||
#include <QtCore/qapplicationpermission.h>
|
||||
#include <QtCore/qfuture.h>
|
||||
#endif
|
||||
#endif
|
||||
@ -204,13 +204,15 @@ public:
|
||||
QString qmljs_debug_arguments; // a string containing arguments for js/qml debugging.
|
||||
inline QString qmljsDebugArgumentsString() const { return qmljs_debug_arguments; }
|
||||
#if QT_CONFIG(future) && !defined QT_NO_QOBJECT
|
||||
static QFuture<QPermission::PermissionResult> requestPermission(
|
||||
QPermission::PermissionType permission);
|
||||
static QFuture<QPermission::PermissionResult> requestPermission(const QString &permission);
|
||||
static QFuture<QApplicationPermission::PermissionResult>
|
||||
requestPermission(QApplicationPermission::PermissionType permission);
|
||||
static QFuture<QApplicationPermission::PermissionResult>
|
||||
requestPermission(const QString &permission);
|
||||
|
||||
static QFuture<QPermission::PermissionResult> checkPermission(
|
||||
QPermission::PermissionType permission);
|
||||
static QFuture<QPermission::PermissionResult> checkPermission(const QString &permission);
|
||||
static QFuture<QApplicationPermission::PermissionResult>
|
||||
checkPermission(QApplicationPermission::PermissionType permission);
|
||||
static QFuture<QApplicationPermission::PermissionResult>
|
||||
checkPermission(const QString &permission);
|
||||
#endif
|
||||
|
||||
#ifdef QT_NO_QOBJECT
|
||||
|
Loading…
x
Reference in New Issue
Block a user