Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qdarwinpermissionplugin_p_p.h
Go to the documentation of this file.
1
// Copyright (C) 2022 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QDARWINPERMISSIONPLUGIN_P_P_H
6
#
define
QDARWINPERMISSIONPLUGIN_P_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. This header file may change
13
// from version to version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
if
!
defined
(
QT_DARWIN_PERMISSION_PLUGIN
)
19
#
error
"This header should only be included from permission plugins"
20
#
endif
21
22
#
include
<
QtCore
/
qnamespace
.
h
>
23
#
include
<
QtCore
/
private
/
qpermissions_p
.
h
>
24
#
include
<
QtCore
/
private
/
qcore_mac_p
.
h
>
25
26
#
include
"qdarwinpermissionplugin_p.h"
27
28
using
namespace
QPermissions::Private;
29
30
#
ifndef
QT_JOIN
31
#
define
QT_JOIN_IMPL
(
A
,
B
)
A
##
B
32
#
define
QT_JOIN
(
A
,
B
)
QT_JOIN_IMPL
(
A
,
B
)
33
#
endif
34
35
#
define
PERMISSION_PLUGIN_NAME
(
SUFFIX
)
36
QT_JOIN
(
QT_JOIN
(
QT_JOIN
(
37
QDarwin
,
QT_DARWIN_PERMISSION_PLUGIN
)
,
Permission
)
,
SUFFIX
)
38
39
#
define
PERMISSION_PLUGIN_CLASSNAME
PERMISSION_PLUGIN_NAME
(
Plugin
)
40
#
define
PERMISSION_PLUGIN_HANDLER
PERMISSION_PLUGIN_NAME
(
Handler
)
41
42
QT_DECLARE_NAMESPACED_OBJC_INTERFACE(
43
PERMISSION_PLUGIN_HANDLER
,
44
QDarwinPermissionHandler
45
)
46
47
QT_BEGIN_NAMESPACE
48
49
class
Q_CORE_EXPORT
PERMISSION_PLUGIN_CLASSNAME
:
public
QDarwinPermissionPlugin
50
{
51
Q_OBJECT
52
Q_PLUGIN_METADATA(
53
IID QPermissionPluginInterface_iid
54
FILE
"QDarwin"
QT_STRINGIFY(QT_DARWIN_PERMISSION_PLUGIN)
"PermissionPlugin.json"
)
55
public
:
56
PERMISSION_PLUGIN_CLASSNAME
()
57
: QDarwinPermissionPlugin([[
PERMISSION_PLUGIN_HANDLER
alloc] init])
58
{}
59
};
60
61
QT_END_NAMESPACE
62
63
// Request
64
#
if
defined
(
BUILDING_PERMISSION_REQUEST
)
65
// dummy symbol to be resolved by the linker to force loading of static library
66
// (compare -Wl,-u)
67
extern
"C"
void
QT_MANGLE_NAMESPACE(PERMISSION_PLUGIN_NAME(Request))() { }
68
#
endif
69
70
// -------------------------------------------------------
71
72
namespace
{
73
template
<
typename
NativeStatus>
74
struct
NativeStatusHelper;
75
76
template
<
typename
NativeStatus>
77
Qt::PermissionStatus nativeStatusToQtStatus(NativeStatus status)
78
{
79
using
Converter = NativeStatusHelper<NativeStatus>;
80
switch
(status) {
81
case
Converter::Authorized:
82
return
Qt::PermissionStatus::Granted;
83
case
Converter::Denied:
84
case
Converter::Restricted:
85
return
Qt::PermissionStatus::Denied;
86
case
Converter::Undetermined:
87
return
Qt::PermissionStatus::Undetermined;
88
}
89
qCWarning(lcPermissions) <<
"Unknown permission status"
<< status <<
"detected in"
90
<< QT_STRINGIFY(QT_DARWIN_PERMISSION_PLUGIN);
91
return
Qt::PermissionStatus::Denied;
92
}
93
}
// namespace
94
95
#
define
QT_DEFINE_PERMISSION_STATUS_CONVERTER
(
NativeStatus
)
namespace
96
{
template
<
>
struct
97
NativeStatusHelper
<
NativeStatus
>
\
98
{
99
enum
{
100
Authorized
=
NativeStatus
##
Authorized
,
101
Denied
=
NativeStatus
##
Denied
,
102
Restricted
=
NativeStatus
##
Restricted
,
103
Undetermined
=
NativeStatus
##
NotDetermined
104
}
;
\
105
}
;
}
106
107
#
endif
// QDARWINPERMISSIONPLUGIN_P_P_H
QStringList
QList< QString > QStringList
Constructs a string list that contains the given string, str.
Definition
qcontainerfwd.h:41
PERMISSION_PLUGIN_HANDLER
#define PERMISSION_PLUGIN_HANDLER
Definition
qdarwinpermissionplugin_p_p.h:40
QT_JOIN
#define QT_JOIN(A, B)
Definition
qdarwinpermissionplugin_p_p.h:32
QT_JOIN_IMPL
#define QT_JOIN_IMPL(A, B)
Definition
qdarwinpermissionplugin_p_p.h:31
PERMISSION_PLUGIN_CLASSNAME
#define PERMISSION_PLUGIN_CLASSNAME
Definition
qdarwinpermissionplugin_p_p.h:39
PERMISSION_PLUGIN_NAME
#define PERMISSION_PLUGIN_NAME(SUFFIX)
Definition
qdarwinpermissionplugin_p_p.h:35
qtbase
src
corelib
platform
darwin
qdarwinpermissionplugin_p_p.h
Generated on
for Qt by
1.18.0