diff --git a/src/core/application.cpp b/src/core/application.cpp index 846f8c3..1c813eb 100644 --- a/src/core/application.cpp +++ b/src/core/application.cpp @@ -29,6 +29,7 @@ Application::Application(const QString &name, const Icon &icon) : d(new ApplicationData(name, icon)) { + addAlert(Alert("Default", icon)); } Application::Application(const Application &other): @@ -67,6 +68,11 @@ const QHash &Application::alerts() const return d->m_alerts; } +const Alert Application::defaultAlert() const +{ + return d->m_alerts["Default"]; +} + bool Application::isValid() const { return d; diff --git a/src/core/application.h b/src/core/application.h index 4c4d5a6..c994fbe 100644 --- a/src/core/application.h +++ b/src/core/application.h @@ -82,13 +82,20 @@ public: const Icon &icon() const; /** - * Returns a QHash with the Alers registered with this Application + * + * @return a QHash with the Alers registered with this Application. */ const QHash &alerts() const; /** * - * @return whether the Application is valid + * @return the default alert for notifications. + */ + const Alert defaultAlert() const; + + /** + * + * @return whether the Application is valid. */ bool isValid() const; diff --git a/src/core/settingsdialog.cpp b/src/core/settingsdialog.cpp index 3fc13ae..c429c51 100644 --- a/src/core/settingsdialog.cpp +++ b/src/core/settingsdialog.cpp @@ -76,7 +76,7 @@ void SettingsDialog::initTabs() void Snore::SettingsDialog::on_pushButton_clicked() { Application app = SnoreCorePrivate::instance()->defaultApplication(); - Notification noti(app, app.alerts()["Default"], "Hello World", + Notification noti(app, app.defaultAlert(), "Hello World", "This is Snore
" "Project Website
", app.icon()); diff --git a/src/core/snore.cpp b/src/core/snore.cpp index 54e5a7b..801f2b9 100644 --- a/src/core/snore.cpp +++ b/src/core/snore.cpp @@ -193,7 +193,6 @@ bool SnoreCore::primaryBackendSupportsRichtext() void SnoreCore::setDefaultApplication(Application app) { Q_D(SnoreCore); - app.addAlert(Alert("Default", Icon(":/root/snore.png"))); d->m_defaultApp = app; } diff --git a/src/core/snore_p.cpp b/src/core/snore_p.cpp index bac50a3..973f8d5 100644 --- a/src/core/snore_p.cpp +++ b/src/core/snore_p.cpp @@ -50,7 +50,7 @@ SnoreCorePrivate::~SnoreCorePrivate() } -const Application SnoreCorePrivate::defaultApplication() const +Application SnoreCorePrivate::defaultApplication() { if (!SnoreCore::instance().aplications().contains(m_defaultApp.name())) { SnoreCore::instance().registerApplication(m_defaultApp); diff --git a/src/core/snore_p.h b/src/core/snore_p.h index 2613422..e2063f2 100644 --- a/src/core/snore_p.h +++ b/src/core/snore_p.h @@ -51,7 +51,7 @@ public: public: static SnoreCorePrivate *instance(); ~SnoreCorePrivate(); - const Application defaultApplication() const; + Application defaultApplication(); void notificationActionInvoked(Notification notification) const; diff --git a/src/daemon/trayicon.cpp b/src/daemon/trayicon.cpp index e9dce58..9f26292 100644 --- a/src/daemon/trayicon.cpp +++ b/src/daemon/trayicon.cpp @@ -33,12 +33,9 @@ using namespace Snore; TrayIcon::TrayIcon(): - m_trayIcon(new QSystemTrayIcon(QIcon(":/root/snore.png"))), - m_app("SnoreNotify Test", Icon(":/root/snore.png")), - m_alert("Default", Icon(":/root/snore.png")) + m_trayIcon(new QSystemTrayIcon(QIcon(":/root/snore.png"))) { - m_app.addAlert(m_alert); - m_app.hints().setValue("tray-icon", m_trayIcon); + SnoreCorePrivate::instance()->defaultApplication().hints().setValue("tray-icon", m_trayIcon); } void TrayIcon::initConextMenu() @@ -49,7 +46,7 @@ void TrayIcon::initConextMenu() switch (box->buttonRole(button)) { case QDialogButtonBox::AcceptRole: m_settings->accept(); - qApp->quit(); + m_settings->setVisible(false); break; case QDialogButtonBox::ApplyRole: m_settings->accept(); @@ -58,7 +55,7 @@ void TrayIcon::initConextMenu() m_settings->reset(); break; case QDialogButtonBox::RejectRole: - qApp->quit(); + m_settings->setVisible(false); break; default: snoreDebug(SNORE_WARNING) << "unhandled role" << button->text() << box->buttonRole(button); @@ -99,18 +96,15 @@ QSystemTrayIcon *TrayIcon::trayIcon() void TrayIcon::slotTestNotification() { - - if (!SnoreCore::instance().aplications().contains(m_app.name())) { - SnoreCore::instance().registerApplication(m_app); - } - Notification noti(m_app, m_alert, "Hello World", + Application app = SnoreCorePrivate::instance()->defaultApplication(); + Notification noti(app, app.defaultAlert(), "Hello World", "This is Snore
" "Project Website
" "1
" "2
" "3
" "4
" - "5
", Icon(":/root/snore.png")); + "5
", app.icon()); noti.addAction(Action(1, "Test Action")); SnoreCore::instance().broadcastNotification(noti); diff --git a/src/daemon/trayicon.h b/src/daemon/trayicon.h index 8da701b..c2aefd3 100644 --- a/src/daemon/trayicon.h +++ b/src/daemon/trayicon.h @@ -40,8 +40,6 @@ private: class QSystemTrayIcon *m_trayIcon; class QMenu *m_trayMenu; QActionGroup *m_backendActions; - Snore::Application m_app; - Snore::Alert m_alert; Snore::SettingsDialog *m_settings; QHash m_notifications;