@ -60,22 +60,6 @@ Notificator::Notificator(const QString &_programName, QSystemTrayIcon *_trayIcon
if ( MacNotificationHandler : : instance ( ) - > hasUserNotificationCenterSupport ( ) ) {
if ( MacNotificationHandler : : instance ( ) - > hasUserNotificationCenterSupport ( ) ) {
mode = UserNotificationCenter ;
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
# endif
}
}
@ -241,52 +225,6 @@ void Notificator::notifySystray(Class cls, const QString &title, const QString &
// Based on Qt's tray icon implementation
// Based on Qt's tray icon implementation
# ifdef Q_OS_MAC
# 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 ( & notificationIconFile , " 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 , const QIcon & icon ) {
void Notificator : : notifyMacUserNotificationCenter ( Class cls , const QString & title , const QString & text , const QIcon & icon ) {
// icon is not supported by the user notification center yet. OSX will use the app icon.
// icon is not supported by the user notification center yet. OSX will use the app icon.
MacNotificationHandler : : instance ( ) - > showNotification ( title , text ) ;
MacNotificationHandler : : instance ( ) - > showNotification ( title , text ) ;
@ -310,10 +248,6 @@ void Notificator::notify(Class cls, const QString &title, const QString &text, c
case UserNotificationCenter :
case UserNotificationCenter :
notifyMacUserNotificationCenter ( cls , title , text , icon ) ;
notifyMacUserNotificationCenter ( cls , title , text , icon ) ;
break ;
break ;
case Growl12 :
case Growl13 :
notifyGrowl ( cls , title , text , icon ) ;
break ;
# endif
# endif
default :
default :
if ( cls = = Critical )
if ( cls = = Critical )