diff --git a/src/qt/macnotificationhandler.h b/src/qt/macnotificationhandler.h --- a/src/qt/macnotificationhandler.h +++ b/src/qt/macnotificationhandler.h @@ -7,20 +7,16 @@ #include -/** Macintosh-specific notification handler (supports UserNotificationCenter and - * Growl). +/** Macintosh-specific notification handler (supports UserNotificationCenter). */ class MacNotificationHandler : public QObject { Q_OBJECT public: - /** shows a 10.8+ UserNotification in the UserNotificationCenter + /** shows a macOS 10.8+ UserNotification in the UserNotificationCenter */ void showNotification(const QString &title, const QString &text); - /** executes AppleScript */ - void sendAppleScript(const QString &script); - /** check if OS can handle UserNotifications */ bool hasUserNotificationCenterSupport(void); static MacNotificationHandler *instance(); diff --git a/src/qt/macnotificationhandler.mm b/src/qt/macnotificationhandler.mm --- a/src/qt/macnotificationhandler.mm +++ b/src/qt/macnotificationhandler.mm @@ -47,20 +47,6 @@ } } -// sendAppleScript just take a QString and executes it as apple script -void MacNotificationHandler::sendAppleScript(const QString &script) -{ - QByteArray utf8 = script.toUtf8(); - char* cString = (char *)utf8.constData(); - NSString *scriptApple = [[NSString alloc] initWithUTF8String:cString]; - - NSAppleScript *as = [[NSAppleScript alloc] initWithSource:scriptApple]; - NSDictionary *err = nil; - [as executeAndReturnError:&err]; - [as release]; - [scriptApple release]; -} - bool MacNotificationHandler::hasUserNotificationCenterSupport(void) { Class possibleClass = NSClassFromString(@"NSUserNotificationCenter"); diff --git a/src/qt/notificator.h b/src/qt/notificator.h --- a/src/qt/notificator.h +++ b/src/qt/notificator.h @@ -60,8 +60,6 @@ dialog for Critical notifications. */ Freedesktop, /**< Use DBus org.freedesktop.Notifications */ QSystemTray, /**< Use QSystemTray::showMessage */ - Growl12, /**< Use the Growl 1.2 notification system (Mac only) */ - Growl13, /**< Use the Growl 1.3 notification system (Mac only) */ UserNotificationCenter /**< Use the 10.8+ User Notification Center (Mac only) */ }; @@ -77,8 +75,6 @@ void notifySystray(Class cls, const QString &title, const QString &text, const QIcon &icon, int millisTimeout); #ifdef Q_OS_MAC - void notifyGrowl(Class cls, const QString &title, const QString &text, - const QIcon &icon); void notifyMacUserNotificationCenter(Class cls, const QString &title, const QString &text, const QIcon &icon); diff --git a/src/qt/notificator.cpp b/src/qt/notificator.cpp --- a/src/qt/notificator.cpp +++ b/src/qt/notificator.cpp @@ -58,27 +58,6 @@ if (MacNotificationHandler::instance() ->hasUserNotificationCenterSupport()) { mode = UserNotificationCenter; - } else { - // Check if Growl is installed (based on Qt's tray icon implementation) - CFURLRef cfurl; - OSStatus status = LSGetApplicationForInfo( - kLSUnknownType, kLSUnknownCreator, CFSTR("growlTicket"), - kLSRolesAll, 0, &cfurl); - if (status != kLSApplicationNotFoundErr) { - CFBundleRef bundle = CFBundleCreate(0, cfurl); - if (CFStringCompare(CFBundleGetIdentifier(bundle), - CFSTR("com.Growl.GrowlHelperApp"), - kCFCompareCaseInsensitive | - kCFCompareBackwards) == kCFCompareEqualTo) { - if (CFStringHasSuffix(CFURLGetString(cfurl), - CFSTR("/Growl.app/"))) - mode = Growl13; - else - mode = Growl12; - } - CFRelease(cfurl); - CFRelease(bundle); - } } #endif } @@ -250,67 +229,6 @@ // Based on Qt's tray icon implementation #ifdef Q_OS_MAC -void Notificator::notifyGrowl(Class cls, const QString &title, - const QString &text, const QIcon &icon) { - const QString script("tell application \"%5\"\n" - " set the allNotificationsList to " - "{\"Notification\"}\n" // -- Make a list of all the - // notification types (all) - " set the enabledNotificationsList to " - "{\"Notification\"}\n" // -- Make a list of the - // notifications (enabled) - " register as application \"%1\" all notifications " - "allNotificationsList default notifications " - "enabledNotificationsList\n" // -- Register our script - // with Growl - " notify with name \"Notification\" title \"%2\" " - "description \"%3\" application name \"%1\"%4\n" // -- - // Send - // a - // Notification - "end tell"); - - QString notificationApp(QApplication::applicationName()); - if (notificationApp.isEmpty()) notificationApp = "Application"; - - QPixmap notificationIconPixmap; - if (icon.isNull()) { // If no icon specified, set icon based on class - QStyle::StandardPixmap sicon = QStyle::SP_MessageBoxQuestion; - switch (cls) { - case Information: - sicon = QStyle::SP_MessageBoxInformation; - break; - case Warning: - sicon = QStyle::SP_MessageBoxWarning; - break; - case Critical: - sicon = QStyle::SP_MessageBoxCritical; - break; - } - notificationIconPixmap = QApplication::style()->standardPixmap(sicon); - } else { - QSize size = icon.actualSize(QSize(48, 48)); - notificationIconPixmap = icon.pixmap(size); - } - - QString notificationIcon; - QTemporaryFile notificationIconFile; - if (!notificationIconPixmap.isNull() && notificationIconFile.open()) { - QImageWriter writer(¬ificationIconFile, "PNG"); - if (writer.write(notificationIconPixmap.toImage())) - notificationIcon = QString(" image from location \"file://%1\"") - .arg(notificationIconFile.fileName()); - } - - QString quotedTitle(title), quotedText(text); - quotedTitle.replace("\\", "\\\\").replace("\"", "\\"); - quotedText.replace("\\", "\\\\").replace("\"", "\\"); - QString growlApp(this->mode == Notificator::Growl13 ? "Growl" - : "GrowlHelperApp"); - MacNotificationHandler::instance()->sendAppleScript(script.arg( - notificationApp, quotedTitle, quotedText, notificationIcon, growlApp)); -} - void Notificator::notifyMacUserNotificationCenter(Class cls, const QString &title, const QString &text, @@ -337,10 +255,6 @@ case UserNotificationCenter: notifyMacUserNotificationCenter(cls, title, text, icon); break; - case Growl12: - case Growl13: - notifyGrowl(cls, title, text, icon); - break; #endif default: if (cls == Critical) {