237
+ − 1 #include "sys/osx/permissions.h"
+ − 2
+ − 3 #include <ApplicationServices/ApplicationServices.h>
+ − 4
+ − 5 #include <QCoreApplication>
258
+ − 6 #include <QDesktopServices>
237
+ − 7 #include <QMessageBox>
+ − 8 #include <QUrl>
+ − 9
+ − 10 namespace osx {
+ − 11
+ − 12 bool AskForPermissions() {
+ − 13 if (::AXIsProcessTrusted())
+ − 14 return true;
+ − 15
+ − 16 QMessageBox msg;
+ − 17 msg.setIcon(QMessageBox::Information);
+ − 18 msg.setText(QCoreApplication::tr("Permissions needed!"));
258
+ − 19 msg.setInformativeText(QCoreApplication::tr(
+ − 20 "Minori needs access to accessibility features for certain features to work. Open System Preferences?"));
237
+ − 21 msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
+ − 22 msg.setDefaultButton(QMessageBox::Yes);
+ − 23 int ret = msg.exec();
+ − 24 if (ret != QMessageBox::Yes)
+ − 25 return false;
+ − 26
+ − 27 QDesktopServices::openUrl(QUrl("x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"));
+ − 28 return true;
+ − 29 }
+ − 30
258
+ − 31 } // namespace osx