Support Growl >=1.3 in QSystemTrayIcon
authorVincent A <vincent@ftopia.com>
Wed, 7 Mar 2012 18:24:29 +0000 (19:24 +0100)
committerQt by Nokia <qt-info@nokia.com>
Mon, 12 Mar 2012 06:44:01 +0000 (07:44 +0100)
The app name has changed in Growl 1.3, but the id
stays the same. Also don't send notifications if
Growl is not running to follow recommendations.

Change-Id: I31ff7df272b4af1b4f1e4db80c47e7ba75038dec
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
src/widgets/util/qsystemtrayicon_mac.mm

index 59342cb..7f7d7cd 100644 (file)
@@ -260,7 +260,11 @@ void QSystemTrayIconPrivate::showMessage_sys(const QString &title, const QString
                 notificationIcon = QLatin1String("image from location \"file://") + notificationIconFile.fileName() + QLatin1String("\"");
         }
         const QString script(QLatin1String(
-            "tell application \"GrowlHelperApp\"\n"
+            "tell application \"System Events\"\n"
+            "set isRunning to (count of (every process whose bundle identifier is \"com.Growl.GrowlHelperApp\")) > 0\n"
+            "end tell\n"
+            "if isRunning\n"
+            "tell application id \"com.Growl.GrowlHelperApp\"\n"
             "-- Make a list of all the notification types (all)\n"
             "set the allNotificationsList to {\"") + notificationType + QLatin1String("\"}\n"
 
@@ -276,7 +280,7 @@ void QSystemTrayIconPrivate::showMessage_sys(const QString &title, const QString
             QLatin1String("\" description \"") + message +
             QLatin1String("\" application name \"") + notificationApp +
             QLatin1String("\" ")  + notificationIcon +
-            QLatin1String("\nend tell"));
+            QLatin1String("\nend tell\nend if"));
         qt_mac_execute_apple_script(script, 0);
 #elif 0
         Q_Q(QSystemTrayIcon);