4#ifndef QDARWINPERMISSIONPLUGIN_P_P_H
5#define QDARWINPERMISSIONPLUGIN_P_P_H
17#if !defined(QT_DARWIN_PERMISSION_PLUGIN)
18#error "This header should only be included from permission plugins"
21#include <QtCore/qnamespace.h>
22#include <QtCore/private/qpermissions_p.h>
23#include <QtCore/private/qcore_mac_p.h>
27using namespace QPermissions::Private;
30#define QT_JOIN_IMPL(A, B) A ## B
34#define PERMISSION_PLUGIN_NAME(SUFFIX)
36 QDarwin, QT_DARWIN_PERMISSION_PLUGIN), Permission), SUFFIX)
41QT_DECLARE_NAMESPACED_OBJC_INTERFACE(
43 QDarwinPermissionHandler
52 IID QPermissionPluginInterface_iid
53 FILE
"QDarwin" QT_STRINGIFY(QT_DARWIN_PERMISSION_PLUGIN)
"PermissionPlugin.json")
63#if defined(BUILDING_PERMISSION_REQUEST)
66extern "C" void QT_MANGLE_NAMESPACE(PERMISSION_PLUGIN_NAME(Request))() { }
72template <
typename NativeStatus>
73struct NativeStatusHelper;
75template <
typename NativeStatus>
76Qt::PermissionStatus nativeStatusToQtStatus(NativeStatus status)
78 using Converter = NativeStatusHelper<NativeStatus>;
80 case Converter::Authorized:
81 return Qt::PermissionStatus::Granted;
82 case Converter::Denied:
83 case Converter::Restricted:
84 return Qt::PermissionStatus::Denied;
85 case Converter::Undetermined:
86 return Qt::PermissionStatus::Undetermined;
88 qCWarning(lcPermissions) <<
"Unknown permission status" << status <<
"detected in"
89 << QT_STRINGIFY(QT_DARWIN_PERMISSION_PLUGIN);
90 return Qt::PermissionStatus::Denied;
94#define QT_DEFINE_PERMISSION_STATUS_CONVERTER(NativeStatus) namespace
96 NativeStatusHelper<NativeStatus> \
97{
99 Authorized = NativeStatus##Authorized,
100 Denied = NativeStatus##Denied,
101 Restricted = NativeStatus##Restricted,
102 Undetermined = NativeStatus##NotDetermined
104};}
QList< QString > QStringList
Constructs a string list that contains the given string, str.
#define PERMISSION_PLUGIN_HANDLER
#define QT_JOIN_IMPL(A, B)
#define PERMISSION_PLUGIN_CLASSNAME
#define PERMISSION_PLUGIN_NAME(SUFFIX)