#include "permissionmanager.hpp" #include PermissionManager::PermissionManager(std::string path) : path(path) { if (std::filesystem::exists(this->path)) { std::ifstream in(path); std::string content; in >> this->lock_mouse; in >> this->location; in >> this->notification; in >> this->media_audio_capture; in >> this->media_video_capture; in >> this->desktop_audio_video_capture; } } PermissionManager::~PermissionManager() { this->save(); } void PermissionManager::save() { std::ofstream out(this->path); out << this->lock_mouse; out << " "; out << this->location; out << " "; out << this->notification; out << " "; out << this->media_audio_capture; out << " "; out << this->media_video_capture; out << " "; out << this->desktop_audio_video_capture; } bool PermissionManager::get(QWebEnginePermission::PermissionType feature) { switch (feature) { case QWebEnginePermission::PermissionType::MouseLock: return this->lock_mouse; case QWebEnginePermission::PermissionType::Geolocation: return this->location; case QWebEnginePermission::PermissionType::Notifications: return this->notification; case QWebEnginePermission::PermissionType::MediaAudioCapture: return this->media_audio_capture; case QWebEnginePermission::PermissionType::MediaVideoCapture: return this->media_video_capture; case QWebEnginePermission::PermissionType::MediaAudioVideoCapture: return this->media_video_capture && this->media_audio_capture; case QWebEnginePermission::PermissionType::DesktopVideoCapture: return this->desktop_audio_video_capture; case QWebEnginePermission::PermissionType::DesktopAudioVideoCapture: return this->desktop_audio_video_capture; default: /* unreachable except QWebEnginePermission::PermissionType gets new entries */ return false; } } void PermissionManager::set(QWebEnginePermission::PermissionType feature, bool value) { switch (feature) { case QWebEnginePermission::PermissionType::MouseLock: this->lock_mouse = value; break; case QWebEnginePermission::PermissionType::Geolocation: this->location = value; break; case QWebEnginePermission::PermissionType::Notifications: this->notification = value; break; case QWebEnginePermission::PermissionType::MediaAudioCapture: this->media_audio_capture = value; break; case QWebEnginePermission::PermissionType::MediaVideoCapture: this->media_video_capture = value; break; case QWebEnginePermission::PermissionType::MediaAudioVideoCapture: this->media_audio_capture = value; this->media_video_capture = value; break; case QWebEnginePermission::PermissionType::DesktopVideoCapture: this->desktop_audio_video_capture = value; break; case QWebEnginePermission::PermissionType::DesktopAudioVideoCapture: this->desktop_audio_video_capture = value; break; default: break; } }