knotify.cpp
notifybysound.cpp
notifybypopup.cpp
-notifybypopupgrowl.cpp
notifybylogfile.cpp
notifybytaskbar.cpp
notifybyexecute.cpp
#include "notifybypopup.h"
#include "imageconverter.h"
-#include "notifybypopupgrowl.h"
#include <kdebug.h>
#include <kpassivepopup.h>
// Default to 6 seconds if no timeout has been defined
int timeout = config->timeout == -1 ? 6000 : config->timeout;
- // if Growl can display our popups, use that instead
- if(NotifyByPopupGrowl::canPopup())
- {
- KNotifyConfig *c = ensurePopupCompatibility( config );
-
- QString appCaption, iconName;
- getAppCaptionAndIconName(c, &appCaption, &iconName);
-
- KIconLoader iconLoader(iconName);
- QPixmap appIcon = iconLoader.loadIcon( iconName, KIconLoader::Small );
-
- NotifyByPopupGrowl::popup( &appIcon, timeout, appCaption, c->text );
-
- // Finish immediately, because current NotifyByPopupGrowl can't callback
- finish(id);
- delete c;
- return;
- }
-
KPassivePopup *pop = new KPassivePopup( config->winId );
m_popups[id]=pop;
fillPopup(pop,id,config);
sendNotificationDBus(id, id, config);
return;
}
-
- // otherwise, just display a new Growl notification
- if(NotifyByPopupGrowl::canPopup())
- {
- notify( id, config );
- }
}
void NotifyByPopup::fillPopup(KPassivePopup *pop,int id,KNotifyConfig * config)
QStringList NotifyByPopup::popupServerCapabilities()
{
if (!m_dbusServiceExists) {
- if( NotifyByPopupGrowl::canPopup() ) {
- return NotifyByPopupGrowl::capabilities();
- } else {
- // Return capabilities of the KPassivePopup implementation
- return QStringList() << "actions" << "body" << "body-hyperlinks"
- << "body-markup" << "icon-static";
- }
+ // Return capabilities of the KPassivePopup implementation
+ return QStringList() << "actions" << "body" << "body-hyperlinks"
+ << "body-markup" << "icon-static";
}
if(m_dbusServiceCapCacheDirty) {
+++ /dev/null
-/*
- Copyright (C) 2010 by Sjors Gielen <dazjorz@dazjorz.com>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- */
-
-#include "notifybypopupgrowl.h"
-#include <QFile>
-#include <QSystemTrayIcon>
-
-#define GROWL_LOCATION_MACOSX "/Library/PreferencePanes/Growl.prefPane/" \
- "Contents/MacOS/Growl"
-#define GROWL_LOCATION_WIN32 "C:/Program Files/Growl for Windows/Growl.exe"
-
-/**
- * @brief Check if Growl can display plugins.
- * Currently, this checks only if Growl is installed, not if it's running.
- * As soon as the Growl Notification Protocol is finished, it will be
- * implemented and used for this check.
- */
-bool NotifyByPopupGrowl::canPopup()
-{
- return QFile::exists( GROWL_LOCATION_MACOSX )
- || QFile::exists( GROWL_LOCATION_WIN32 );
-}
-
-/**
- * @brief Get the capabilities supported by Growl.
- */
-QStringList NotifyByPopupGrowl::capabilities()
-{
- return QStringList();
-}
-
-/**
- * @brief Send a popup through Growl.
- * @param icon The icon inside the notification. Currently ignored.
- * @param timeout The time in ms to show the notification.
- * @param title The title displayed inside the notification.
- * @param message The message displayed inside the notification.
- */
-void NotifyByPopupGrowl::popup( const QPixmap *icon, int timeout,
- const QString &title, const QString &message )
-{
- Q_UNUSED( icon );
-
- QSystemTrayIcon i;
- i.show();
- i.showMessage( title, message,
- QSystemTrayIcon::Information, timeout );
- i.hide();
-}
+++ /dev/null
-/*
- Copyright (C) 2010 by Sjors Gielen <dazjorz@dazjorz.com>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- */
-
-#ifndef NOTIFYBYPOPUPGROWL_H
-#define NOTIFYBYPOPUPGROWL_H
-
-#include <QPixmap>
-#include <QString>
-
-/**
- * @brief Display a notification using Growl.
- *
- * Currently, this class uses QSystemTrayIcon to actually display the
- * notification. Inside the Growl project, a protocol is being developed
- * to display notifications; this protocol is currently only implemented
- * (partly) in the Windows version of Growl. Once it is finished, it will be
- * implemented in KNotify and used instead.
- * (The normal Growl API is written in Objective C. It's possible to use it,
- * but it's a lot harder than just waiting for GNTP to stabilize.)
- */
-class NotifyByPopupGrowl
-{
-public:
- static bool canPopup();
- static QStringList capabilities();
- static void popup( const QPixmap *icon, int timeout,
- const QString &title, const QString &message );
-};
-
-#endif // NOTIFYBYPOPUPGROWL_H