From 431bf01e85259e15231ad5f755df69bc7665454e Mon Sep 17 00:00:00 2001 From: Patrick von Reth Date: Sun, 24 Oct 2010 20:13:58 +0200 Subject: [PATCH] added tray icon and possebility to select backend --- CMakeLists.txt | 2 +- data/CMakeLists.txt | 1 + data/snore.qrc | 5 ++++ data/zzz.png | Bin 0 -> 12265 bytes src/CMakeLists.txt | 7 +++--- src/main.cpp | 17 +++++++++----- src/trayicon.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++++ src/trayicon.h | 39 ++++++++++++++++++++++++++++++++ 8 files changed, 115 insertions(+), 10 deletions(-) create mode 100644 data/CMakeLists.txt create mode 100644 data/snore.qrc create mode 100644 data/zzz.png create mode 100644 src/trayicon.cpp create mode 100644 src/trayicon.h diff --git a/CMakeLists.txt b/CMakeLists.txt index caaf646..fed43ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ option(WITH_WEBINTERFACE "Buld with WebInterface" OFF) set(PLUGIN_INSTALL_PATH LIBRARY DESTINATION bin/snoreplugins) - +add_subdirectory(data) add_subdirectory(src) install(FILES share/FindLibsnore.cmake DESTINATION share/apps/cmake/modules) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt new file mode 100644 index 0000000..5ffd513 --- /dev/null +++ b/data/CMakeLists.txt @@ -0,0 +1 @@ +set(SNORE_RCS ${SNORE_RCS} ../data/snore.qrc PARENT_SCOPE) diff --git a/data/snore.qrc b/data/snore.qrc new file mode 100644 index 0000000..644ca3e --- /dev/null +++ b/data/snore.qrc @@ -0,0 +1,5 @@ + + + zzz.png + + diff --git a/data/zzz.png b/data/zzz.png new file mode 100644 index 0000000000000000000000000000000000000000..942a30454f1fc3787e49708115e8beac316131ea GIT binary patch literal 12265 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 + #include "core/snoreserver.h" +#include "trayicon.h" + +#include #include #include #include @@ -10,17 +13,19 @@ int main ( int argc, char *argv[] ) { QApplication a ( argc, argv ); - QSystemTrayIcon *trayIcon=new QSystemTrayIcon(); - trayIcon->show(); - SnoreServer s ( trayIcon ); + QSystemTrayIcon *trayIcon=new QSystemTrayIcon(QIcon(":/root/zzz.png")); + trayIcon->setVisible(true); + + SnoreServer *s = new SnoreServer( trayIcon ); QDir pluginsDir ( a.applicationDirPath() +"/snoreplugins" ); foreach ( QString fileName, pluginsDir.entryList ( QDir::Files ) ) { - s.publicatePlugin ( pluginsDir.absoluteFilePath ( fileName ) ); + s->publicatePlugin ( pluginsDir.absoluteFilePath ( fileName ) ); } - + TrayIcon *i = new TrayIcon(trayIcon,s); + i->initConextMenu(); return a.exec(); } diff --git a/src/trayicon.cpp b/src/trayicon.cpp new file mode 100644 index 0000000..deab4fe --- /dev/null +++ b/src/trayicon.cpp @@ -0,0 +1,54 @@ +/**************************************************************************************** + * Copyright (c) 2010 Patrick von Reth * + * * + * 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 of the License, 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, see . * + ****************************************************************************************/ + +#include "trayicon.h" +#include "snore/core/snoreserver.h" + +#include +#include +#include + +TrayIcon::TrayIcon(QSystemTrayIcon *trayIcon, SnoreServer *snore ): + _trayIcon(trayIcon), + _snore(snore) +{ +} + +void TrayIcon::initConextMenu(){ + + _trayMenu = new QMenu("SnoreNotify"); + _trayMenu->addAction("SnoreNotify"); + _trayMenu->addSeparator(); + foreach(Notification_Backend *back,_snore->primaryNotificationBackends()){ + QAction *b= new QAction(back->name(),this); + connect(b,SIGNAL(triggered()),this,SLOT(setPrimaryBackend())); + _trayMenu->addAction(b); + } + _trayMenu->addSeparator(); + _trayMenu->addAction("Exit",qApp,SLOT(quit())); + + + _trayIcon->setContextMenu(_trayMenu); +} + +void TrayIcon::setPrimaryBackend(){ + QAction *a= dynamic_cast(sender()); + _snore->setPrimaryNotificationBackend(_snore->primaryNotificationBackends().value(a->text())); +} + + + +#include "trayicon.moc" diff --git a/src/trayicon.h b/src/trayicon.h new file mode 100644 index 0000000..d0067a1 --- /dev/null +++ b/src/trayicon.h @@ -0,0 +1,39 @@ +/**************************************************************************************** + * Copyright (c) 2010 Patrick von Reth * + * * + * 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 of the License, 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, see . * + ****************************************************************************************/ + +#ifndef TRAYICON_H +#define TRAYICON_H + +#include + +class TrayIcon:public QObject +{ + Q_OBJECT +public: + TrayIcon(class QSystemTrayIcon *trayIcon,class SnoreServer *snore); + void initConextMenu(); + +private: + class QSystemTrayIcon *_trayIcon; + class QMenu *_trayMenu; + class SnoreServer *_snore; + + +public slots: + void setPrimaryBackend(); +}; + +#endif // TRAYICON_H