view src/sys/osx/permissions.cc @ 299:246017a7907a

dep/animone: clean up OS X code GetProcessName() really belongs in fd.cc after removing the stupid unnecessary LaunchServices code that was stolen from... some library :)
author Paper <paper@paper.us.eu.org>
date Mon, 13 May 2024 14:15:47 -0400
parents 862d0d8619f6
children
line wrap: on
line source

#include "sys/osx/permissions.h"

#include <ApplicationServices/ApplicationServices.h>

#include <QCoreApplication>
#include <QDesktopServices>
#include <QMessageBox>
#include <QUrl>

namespace osx {

bool AskForPermissions() {
	if (::AXIsProcessTrusted())
		return true;

	QMessageBox msg;
	msg.setIcon(QMessageBox::Information);
	msg.setText(QCoreApplication::tr("Permissions needed!"));
	msg.setInformativeText(QCoreApplication::tr(
	    "Minori needs access to accessibility features for certain features to work. Open System Preferences?"));
	msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
	msg.setDefaultButton(QMessageBox::Yes);
	int ret = msg.exec();
	if (ret != QMessageBox::Yes)
		return false;

	QDesktopServices::openUrl(QUrl("x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"));
	return true;
}

} // namespace osx