mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-25 20:22:30 +01:00
Qt: ask for camera permissions
This commit is contained in:
parent
4a4762654b
commit
3420cb0365
@ -8,6 +8,10 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
|
||||||
|
#if QT_CONFIG(permissions)
|
||||||
|
#include <QPermissions>
|
||||||
|
#endif
|
||||||
|
|
||||||
LOG_CHANNEL(camera_log, "Camera");
|
LOG_CHANNEL(camera_log, "Camera");
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
@ -226,6 +230,27 @@ void camera_settings_dialog::handle_settings_change(int index)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if QT_CONFIG(permissions)
|
||||||
|
QCameraPermission permission;
|
||||||
|
switch (qApp->checkPermission(permission))
|
||||||
|
{
|
||||||
|
case Qt::PermissionStatus::Undetermined:
|
||||||
|
camera_log.notice("Requesting camera permission");
|
||||||
|
qApp->requestPermission(permission, this, [this, index]()
|
||||||
|
{
|
||||||
|
handle_settings_change(index);
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
case Qt::PermissionStatus::Denied:
|
||||||
|
camera_log.error("RPCS3 has no permissions to access cameras on this device.");
|
||||||
|
QMessageBox::warning(this, tr("Camera permissions denied!"), tr("RPCS3 has no permissions to access cameras on this device."));
|
||||||
|
return;
|
||||||
|
case Qt::PermissionStatus::Granted:
|
||||||
|
camera_log.notice("Camera permission granted");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (index >= 0 && ui->combo_settings->itemData(index).canConvert<QCameraFormat>() && ui->combo_camera->currentData().canConvert<QCameraDevice>())
|
if (index >= 0 && ui->combo_settings->itemData(index).canConvert<QCameraFormat>() && ui->combo_camera->currentData().canConvert<QCameraDevice>())
|
||||||
{
|
{
|
||||||
const QCameraFormat setting = ui->combo_settings->itemData(index).value<QCameraFormat>();
|
const QCameraFormat setting = ui->combo_settings->itemData(index).value<QCameraFormat>();
|
||||||
|
@ -6,6 +6,11 @@
|
|||||||
|
|
||||||
#include <QMediaDevices>
|
#include <QMediaDevices>
|
||||||
|
|
||||||
|
#if QT_CONFIG(permissions)
|
||||||
|
#include <QGuiApplication>
|
||||||
|
#include <QPermissions>
|
||||||
|
#endif
|
||||||
|
|
||||||
LOG_CHANNEL(camera_log, "Camera");
|
LOG_CHANNEL(camera_log, "Camera");
|
||||||
|
|
||||||
qt_camera_handler::qt_camera_handler() : camera_handler_base()
|
qt_camera_handler::qt_camera_handler() : camera_handler_base()
|
||||||
@ -180,6 +185,26 @@ void qt_camera_handler::start_camera()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if QT_CONFIG(permissions)
|
||||||
|
QCameraPermission permission;
|
||||||
|
switch (qApp->checkPermission(permission))
|
||||||
|
{
|
||||||
|
case Qt::PermissionStatus::Undetermined:
|
||||||
|
camera_log.notice("Requesting camera permission");
|
||||||
|
qApp->requestPermission(permission, [this]()
|
||||||
|
{
|
||||||
|
start_camera();
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
case Qt::PermissionStatus::Denied:
|
||||||
|
camera_log.error("RPCS3 has no permissions to access cameras on this device.");
|
||||||
|
return;
|
||||||
|
case Qt::PermissionStatus::Granted:
|
||||||
|
camera_log.notice("Camera permission granted");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Start camera. We will start receiving frames now.
|
// Start camera. We will start receiving frames now.
|
||||||
m_camera->start();
|
m_camera->start();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user