summaryrefslogtreecommitdiffstats
path: root/examples/corelib/permissions/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/corelib/permissions/main.cpp')
-rw-r--r--examples/corelib/permissions/main.cpp87
1 files changed, 0 insertions, 87 deletions
diff --git a/examples/corelib/permissions/main.cpp b/examples/corelib/permissions/main.cpp
deleted file mode 100644
index 913aed2fec..0000000000
--- a/examples/corelib/permissions/main.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright (C) 2022 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-#include <QtCore/qmetaobject.h>
-#include <QtWidgets/qapplication.h>
-#include <QtWidgets/qwidget.h>
-#include <QtWidgets/qpushbutton.h>
-#include <QtWidgets/qlayout.h>
-#include <QtWidgets/qmessagebox.h>
-
-#if !QT_CONFIG(permissions)
-#error "This example requires the permissions feature, which is not enabled on this platform"
-#endif
-
-#include <QtCore/qpermissions.h>
-
-class PermissionWidget : public QWidget
-{
- Q_OBJECT
-public:
- explicit PermissionWidget(QWidget *parent = nullptr) : QWidget(parent)
- {
- QVBoxLayout *layout = new QVBoxLayout(this);
-
- static const QPermission permissions[] = {
- QCameraPermission{},
- QMicrophonePermission{},
- QBluetoothPermission{},
- QContactsPermission{},
- QCalendarPermission{},
- QLocationPermission{}
- };
-
- for (auto permission : permissions) {
- auto permissionName = QString::fromLatin1(permission.type().name());
- QPushButton *button = new QPushButton(permissionName.sliced(1, permissionName.length() - 11));
- connect(button, &QPushButton::clicked, this, &PermissionWidget::buttonClicked);
- button->setProperty("permission", QVariant::fromValue(permission));
- layout->addWidget(button);
- }
-
- QPalette pal = palette();
- pal.setBrush(QPalette::Window, QGradient(QGradient::HappyAcid));
- setPalette(pal);
- }
-
-private:
- void buttonClicked()
- {
- auto *button = static_cast<QPushButton*>(sender());
-
- auto permission = button->property("permission").value<QPermission>();
- Q_ASSERT(permission.type().isValid());
-
- switch (qApp->checkPermission(permission)) {
- case Qt::PermissionStatus::Undetermined:
- qApp->requestPermission(permission, this,
- [button](const QPermission &permission) {
- Q_UNUSED(permission);
- emit button->clicked(); // Try again
- }
- );
- return;
- case Qt::PermissionStatus::Denied:
- QMessageBox::warning(this, button->text(),
- tr("Permission is needed to use %1. Please grant permission "\
- "to this application in the system settings.").arg(button->text()));
- return;
- case Qt::PermissionStatus::Granted:
- break; // Proceed
- }
-
- // All good, can use the feature
- QMessageBox::information(this, button->text(),
- tr("Accessing %1").arg(button->text()));
- }
-};
-
-int main(int argc, char **argv)
-{
- QApplication app(argc, argv);
- PermissionWidget widget;
- widget.show();
- return app.exec();
-}
-
-#include "main.moc"