annotate src/sys/osx/permissions.cc @ 237:a7d0d543b334

*: make OS X builds succeed new script: deploy_build.sh, creates the app bundle
author Paper <paper@paper.us.eu.org>
date Fri, 19 Jan 2024 11:14:44 -0500
parents
children 862d0d8619f6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
237
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
1 #include "sys/osx/permissions.h"
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
2
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
3 #include <ApplicationServices/ApplicationServices.h>
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
4
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
5 #include <QCoreApplication>
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
6 #include <QMessageBox>
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
7 #include <QDesktopServices>
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
8 #include <QUrl>
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
9
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
10 namespace osx {
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
11
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
12 bool AskForPermissions() {
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
13 if (::AXIsProcessTrusted())
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
14 return true;
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
15
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
16 QMessageBox msg;
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
17 msg.setIcon(QMessageBox::Information);
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
18 msg.setText(QCoreApplication::tr("Permissions needed!"));
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
19 msg.setInformativeText(QCoreApplication::tr("Minori needs access to accessibility features for certain features to work. Open System Preferences?"));
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
20 msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
21 msg.setDefaultButton(QMessageBox::Yes);
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
22 int ret = msg.exec();
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
23 if (ret != QMessageBox::Yes)
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
24 return false;
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
25
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
26 QDesktopServices::openUrl(QUrl("x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"));
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
27 return true;
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
28 }
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
29
a7d0d543b334 *: make OS X builds succeed
Paper <paper@paper.us.eu.org>
parents:
diff changeset
30 }