knotify: drop Growl notification support

This commit is contained in:
Ivailo Monev 2015-09-26 03:18:51 +00:00
parent 67bf56db3e
commit 874fb179d7
4 changed files with 3 additions and 145 deletions

View file

@ -6,7 +6,6 @@ main.cpp
knotify.cpp
notifybysound.cpp
notifybypopup.cpp
notifybypopupgrowl.cpp
notifybylogfile.cpp
notifybytaskbar.cpp
notifybyexecute.cpp

View file

@ -20,7 +20,6 @@
#include "notifybypopup.h"
#include "imageconverter.h"
#include "notifybypopupgrowl.h"
#include <kdebug.h>
#include <kpassivepopup.h>
@ -123,25 +122,6 @@ void NotifyByPopup::notify( int id, KNotifyConfig * config )
// 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);
@ -244,12 +224,6 @@ void NotifyByPopup::update(int id, KNotifyConfig * 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)
@ -515,13 +489,9 @@ void NotifyByPopup::closeNotificationDBus(int id)
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) {

View file

@ -1,65 +0,0 @@
/*
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();
}

View file

@ -1,46 +0,0 @@
/*
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