added support for application, alert icon

This commit is contained in:
Patrick von Reth 2010-08-10 16:19:36 +02:00
parent 34a5c4beb3
commit ce59e355a2
7 changed files with 31 additions and 17 deletions

View File

@ -17,6 +17,7 @@ include_directories(
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR} ) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR} )
set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}) set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH})
if (CMAKE_COMPILER_IS_GNUCXX) if (CMAKE_COMPILER_IS_GNUCXX)
set (KDE4_ENABLE_EXCEPTIONS -fexceptions) set (KDE4_ENABLE_EXCEPTIONS -fexceptions)
# Select flags. # Select flags.
@ -39,6 +40,7 @@ if (CMAKE_COMPILER_IS_GNUCXX)
endif(CMAKE_COMPILER_IS_GNUCXX) endif(CMAKE_COMPILER_IS_GNUCXX)
option(WITH_FREEDESKTOP_FRONTEND "Build the freedesktop frontend" OFF) option(WITH_FREEDESKTOP_FRONTEND "Build the freedesktop frontend" OFF)
option(WITH_WEBINTERFACE "Buld with WebInterface" OFF) option(WITH_WEBINTERFACE "Buld with WebInterface" OFF)

View File

@ -17,8 +17,9 @@
#include "application.h" #include "application.h"
Application::Application ( const QString &name ) : Application::Application (const QString &name, const QString &icon) :
_name ( name ), _name ( name ),
_icon(icon),
_initialized ( false ) _initialized ( false )
{ {
_alerts.insert ( "",new Alert ( "Default Alert","Default Alert" ) ); _alerts.insert ( "",new Alert ( "Default Alert","Default Alert" ) );
@ -46,6 +47,11 @@ const QString &Application::name() const
return _name; return _name;
} }
const QString &Application::icon()const
{
return _icon;
}
const AlertList &Application::alerts() const const AlertList &Application::alerts() const
{ {
return _alerts; return _alerts;
@ -61,15 +67,10 @@ void Application::setInitialized ( bool b )
_initialized = b; _initialized = b;
} }
Alert::Alert ( const QString &name,const QString &title ) : Alert::Alert (const QString &name, const QString &title, const QString &icon, bool active) :
_name ( name ),
_title ( title ),
_active ( true )
{}
Alert::Alert ( const QString &name,const QString &title,bool active ) :
_name ( name ), _name ( name ),
_title ( title ), _title ( title ),
_icon(icon),
_active ( active ) _active ( active )
{} {}
@ -88,6 +89,11 @@ const QString &Alert::title() const
return _title; return _title;
} }
const QString &Alert::icon() const
{
return _icon;
}
bool Alert::isActive() const bool Alert::isActive() const
{ {
return _active; return _active;

View File

@ -27,11 +27,12 @@ class SNORE_EXPORT Application:public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
Application ( const QString &name ); Application ( const QString &name, const QString &icon = "" );
Application(); Application();
~Application(); ~Application();
void addAlert ( Alert *alert ); void addAlert ( Alert *alert );
const QString &name() const; const QString &name() const;
const QString &icon() const;
const AlertList &alerts() const; const AlertList &alerts() const;
bool isInitialized(); bool isInitialized();
void setInitialized ( bool b ); void setInitialized ( bool b );
@ -39,6 +40,7 @@ public:
private: private:
QString _name; QString _name;
QString _icon;
AlertList _alerts; AlertList _alerts;
bool _initialized; bool _initialized;
@ -48,16 +50,17 @@ class SNORE_EXPORT Alert:public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
Alert ( const QString &name,const QString &title ); Alert ( const QString &name,const QString &title="",const QString &icon="",bool active=true );
Alert ( const QString &name,const QString &title,bool active );
Alert(); Alert();
const QString &name() const; const QString &name() const;
const QString &title() const; const QString &title() const;
const QString &icon() const;
bool isActive() const; bool isActive() const;
private: private:
QString _name; QString _name;
QString _title; QString _title;
QString _icon;
bool _active; bool _active;
}; };

View File

@ -87,8 +87,8 @@ uint FreedesktopNotification_Frontend::Notify(const QString &app_name, uint repl
icon=getImagefromHint(image); icon=getImagefromHint(image);
} }
if(!snore()->aplications().contains(app_name)){ if(!snore()->aplications().contains(app_name)){
Application *a = new Application(app_name); Application *a = new Application(app_name,app_icon);
a->addAlert(new Alert("DBus Alert","DBus Alert")); a->addAlert(new Alert("DBus Alert","DBus Alert",app_icon));
snore()->addApplication(a); snore()->addApplication(a);
snore()->applicationIsInitialized(a); snore()->applicationIsInitialized(a);
} }

View File

@ -1,4 +1,4 @@
// About: // About:
// Snarl C++ interface implementation // Snarl C++ interface implementation
// To understand what the different functions do and what they return, please // To understand what the different functions do and what they return, please
// have a look at the API on http://www.fullphat.net/dev/api.htm. // have a look at the API on http://www.fullphat.net/dev/api.htm.

View File

@ -53,7 +53,8 @@ void Snarl_Backend::registerApplication(Application *application){
_applications.insert(application->name(),snarlInterface); _applications.insert(application->name(),snarlInterface);
wchar_t *appName = toWchar(application->name()); wchar_t *appName = toWchar(application->name());
snarlInterface->RegisterApp(appName,L"",L""); wchar_t *icon = toWchar(application->icon());
snarlInterface->RegisterApp(appName,icon,icon);
foreach(Alert *alert,application->alerts()){ foreach(Alert *alert,application->alerts()){
wchar_t *alertName = toWchar(alert->name()); wchar_t *alertName = toWchar(alert->name());
@ -61,6 +62,7 @@ void Snarl_Backend::registerApplication(Application *application){
delete [] alertName; delete [] alertName;
} }
delete [] appName; delete [] appName;
delete [] icon;
} }
void Snarl_Backend::unregisterApplication(Application *application){ void Snarl_Backend::unregisterApplication(Application *application){

View File

@ -30,9 +30,10 @@
#include <QObject> #include <QObject>
#include <QTcpSocket> #include <QTcpSocket>
Parser::Parser(SnarlNetworkFrontend *snarl):snarl(snarl) Parser::Parser(SnarlNetworkFrontend *snarl):
QObject(snarl),
snarl(snarl)
{ {
setParent(snarl);
getSnpType.insert("type",TYPE); getSnpType.insert("type",TYPE);
getSnpType.insert("app",APP); getSnpType.insert("app",APP);
getSnpType.insert("version",VERSION); getSnpType.insert("version",VERSION);