diff options
Diffstat (limited to 'src/corelib/kernel/qpermissions.h')
-rw-r--r-- | src/corelib/kernel/qpermissions.h | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/corelib/kernel/qpermissions.h b/src/corelib/kernel/qpermissions.h index 3bd1fda461..9573e377e5 100644 --- a/src/corelib/kernel/qpermissions.h +++ b/src/corelib/kernel/qpermissions.h @@ -37,9 +37,6 @@ class QPermission static constexpr inline bool is_permission_v = false; template <typename T> - static constexpr inline bool is_permission_v<T, typename T::QtPermissionHelper> = true; - - template <typename T> using if_permission = std::enable_if_t<is_permission_v<T>, bool>; public: explicit QPermission() = default; @@ -72,6 +69,9 @@ private: friend class QCoreApplication; }; +template <typename T> +constexpr bool QPermission::is_permission_v<T, typename T::QtPermissionHelper> = true; + #define QT_PERMISSION(ClassName) \ using QtPermissionHelper = void; \ friend class QPermission; \ @@ -173,6 +173,32 @@ private: }; Q_DECLARE_SHARED(QContactsPermission) +class QBluetoothPermissionPrivate; +class QBluetoothPermission +{ + Q_GADGET_EXPORT(Q_CORE_EXPORT) +public: + enum CommunicationMode : quint8 { + Access = 0x01, + Advertise = 0x02, + Default = Access | Advertise, + }; + Q_DECLARE_FLAGS(CommunicationModes, CommunicationMode) + Q_FLAG(CommunicationModes) + + Q_CORE_EXPORT void setCommunicationModes(CommunicationModes modes); + Q_CORE_EXPORT CommunicationModes communicationModes() const; + +private: + struct ShortData { + CommunicationMode mode; + char reserved[sizeof(void*) - sizeof(mode)]; + }; + QT_PERMISSION(QBluetoothPermission) +}; +Q_DECLARE_OPERATORS_FOR_FLAGS(QBluetoothPermission::CommunicationModes) +Q_DECLARE_SHARED(QBluetoothPermission) + #define Q_DECLARE_MINIMAL_PERMISSION(ClassName) \ class ClassName##Private; \ class ClassName \ @@ -184,7 +210,6 @@ Q_DECLARE_SHARED(QContactsPermission) Q_DECLARE_MINIMAL_PERMISSION(QCameraPermission) Q_DECLARE_MINIMAL_PERMISSION(QMicrophonePermission) -Q_DECLARE_MINIMAL_PERMISSION(QBluetoothPermission) #undef QT_PERMISSION #undef Q_DECLARE_MINIMAL_PERMISSION |