File indexing completed on 2025-02-02 05:02:33
0001 /* 0002 SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #ifndef PERMISSIONMANAGER_H 0007 #define PERMISSIONMANAGER_H 0008 0009 #include <QJSValue> 0010 0011 /** Permission enum for use in QML. */ 0012 namespace Permission 0013 { 0014 Q_NAMESPACE 0015 enum Permission { 0016 InvalidPermission, // captures QML errors resultin in "0" enum values 0017 ReadCalendar, 0018 WriteCalendar, 0019 PostNotification, 0020 Camera, 0021 }; 0022 Q_ENUM_NS(Permission) 0023 } 0024 0025 /** Check and request platform permissions for access to controlled resources (calendar, location, etc). */ 0026 class PermissionManager 0027 { 0028 Q_GADGET 0029 public: 0030 Q_INVOKABLE static bool checkPermission(Permission::Permission permission); 0031 Q_INVOKABLE static void requestPermission(Permission::Permission permission, QJSValue callback); 0032 }; 0033 0034 #endif // PERMISSIONMANAGER_H