From 3f9d5ec3258eca7dfe8ca45d62f93872be11bdd3 Mon Sep 17 00:00:00 2001 From: Patrick von Reth Date: Mon, 13 Jul 2015 13:34:03 +0200 Subject: [PATCH] set default settings befor before initialize is called --- src/libsnore/alert.cpp | 2 +- src/libsnore/alert.h | 2 -- src/libsnore/application.cpp | 4 ++-- src/libsnore/application.h | 1 - src/libsnore/notification/icon.h | 1 - src/libsnore/notification/notification_p.cpp | 2 +- src/libsnore/notification/notification_p.h | 3 +-- src/libsnore/plugins/plugincontainer.cpp | 1 + src/libsnore/plugins/plugins.cpp | 6 +++++- src/libsnore/plugins/plugins.h | 6 ++++++ src/libsnore/settingsdialog.h | 1 - src/libsnore/snore.cpp | 4 ++-- .../freedesktopnotification_backend.cpp | 2 +- src/plugins/backends/growl/growlbackend.cpp | 10 +++++++--- src/plugins/backends/growl/growlbackend.h | 3 +++ src/plugins/backends/snarl/snarl.cpp | 9 +++++++-- src/plugins/backends/snarl/snarl.h | 3 +++ src/plugins/backends/snore/snorenotifier.cpp | 8 ++++++-- src/plugins/backends/snore/snorenotifier.h | 3 +++ .../frontends/pushover/pushover_frontend.cpp | 10 +++++++--- .../frontends/pushover/pushover_frontend.h | 3 +++ src/plugins/secondary_backends/nma/nma.cpp | 12 ++++++------ src/plugins/secondary_backends/nma/nma.h | 5 +++-- .../secondary_backends/pushover/pushover.cpp | 18 +++++++++--------- .../secondary_backends/pushover/pushover.h | 5 +++-- src/plugins/secondary_backends/sound/sound.cpp | 8 ++++++-- src/plugins/secondary_backends/sound/sound.h | 3 +++ .../secondary_backends/toasty/toasty.cpp | 12 ++++++------ src/plugins/secondary_backends/toasty/toasty.h | 5 +++-- 29 files changed, 98 insertions(+), 54 deletions(-) diff --git a/src/libsnore/alert.cpp b/src/libsnore/alert.cpp index 816c520..b6fd9bd 100644 --- a/src/libsnore/alert.cpp +++ b/src/libsnore/alert.cpp @@ -32,7 +32,7 @@ Alert::Alert(const QString &name, const Icon &icon): {} Alert::Alert(const QString &key, const QString &name, const Icon &icon): - d(new AlertData(key,name,icon)) + d(new AlertData(key, name, icon)) { } diff --git a/src/libsnore/alert.h b/src/libsnore/alert.h index ad0f5e8..98c0442 100644 --- a/src/libsnore/alert.h +++ b/src/libsnore/alert.h @@ -48,7 +48,6 @@ public: */ explicit Alert(const QString &name, const Icon &icon); - /** * Creates an alert. * @param name the key of the Alert used in Application::alerts(). @@ -70,7 +69,6 @@ public: Alert &operator=(const Alert &other); ~Alert(); - /** * Returns the key of the Alert, used in Application::alerts(). * Might be identically to name(). diff --git a/src/libsnore/application.cpp b/src/libsnore/application.cpp index 0db5031..fa261a1 100644 --- a/src/libsnore/application.cpp +++ b/src/libsnore/application.cpp @@ -33,7 +33,7 @@ Application::Application(const QString &name, const Icon &icon) : } Application::Application(const QString &key, const QString &name, const Icon &icon) : - d(new ApplicationData(key,name,icon)) + d(new ApplicationData(key, name, icon)) { } @@ -55,7 +55,7 @@ Application::~Application() void Application::addAlert(const Alert &alert) { Q_ASSERT_X(!SnoreCore::instance().aplications().contains(key()), Q_FUNC_INFO, - "Alerts must be added before the application is Registered." ); + "Alerts must be added before the application is Registered."); d->m_alerts.insert(alert.key(), alert); } diff --git a/src/libsnore/application.h b/src/libsnore/application.h index 59fc98e..98ae1cc 100644 --- a/src/libsnore/application.h +++ b/src/libsnore/application.h @@ -58,7 +58,6 @@ public: */ explicit Application(const QString &key, const QString &name, const Icon &icon); - /** * The copy constructor * @param other diff --git a/src/libsnore/notification/icon.h b/src/libsnore/notification/icon.h index 507ae48..5dc4544 100644 --- a/src/libsnore/notification/icon.h +++ b/src/libsnore/notification/icon.h @@ -47,7 +47,6 @@ public: static Icon defaultIcon(); - /** * Creates an Icon from an QImage * @param img the image diff --git a/src/libsnore/notification/notification_p.cpp b/src/libsnore/notification/notification_p.cpp index f312290..b5685f9 100644 --- a/src/libsnore/notification/notification_p.cpp +++ b/src/libsnore/notification/notification_p.cpp @@ -125,7 +125,7 @@ const SnorePlugin *NotificationData::source() const bool NotificationData::sourceAndTargetAreSimilar(const SnorePlugin *target) { - if(source() && source()->name() == target->name()) { + if (source() && source()->name() == target->name()) { snoreDebug(SNORE_DEBUG) << "Source" << source() << "and Target" << target << "are the same."; return true; } diff --git a/src/libsnore/notification/notification_p.h b/src/libsnore/notification/notification_p.h index 7df2e50..15015e8 100644 --- a/src/libsnore/notification/notification_p.h +++ b/src/libsnore/notification/notification_p.h @@ -60,12 +60,11 @@ public: */ void setSource(SnorePlugin *soure); - /** * Returns the source SnorePlugin. * This is used to prevent notification loops between the frontend and the backend. */ - const SnorePlugin* source() const; + const SnorePlugin *source() const; /** * Returns true if the source->name() and the target->name() are the same. diff --git a/src/libsnore/plugins/plugincontainer.cpp b/src/libsnore/plugins/plugincontainer.cpp index 4258e11..4697e5c 100644 --- a/src/libsnore/plugins/plugincontainer.cpp +++ b/src/libsnore/plugins/plugincontainer.cpp @@ -54,6 +54,7 @@ SnorePlugin *PluginContainer::load() } SnorePlugin *plugin = qobject_cast (m_loader.instance()); plugin->m_container = this; + plugin->setDefaultSettings(); return plugin; } diff --git a/src/libsnore/plugins/plugins.cpp b/src/libsnore/plugins/plugins.cpp index 9f7a42d..eacd1bc 100644 --- a/src/libsnore/plugins/plugins.cpp +++ b/src/libsnore/plugins/plugins.cpp @@ -44,7 +44,6 @@ SnorePlugin::~SnorePlugin() bool SnorePlugin::initialize() { - setDefaultSettingsValue(QLatin1String("Enabled"), false, LOCAL_SETTING); if (m_initialized) { qFatal("Something went wrong, plugin %s is already initialized", this->name().toLatin1().constData()); return false; @@ -110,6 +109,11 @@ QString SnorePlugin::settingsVersion() const return QLatin1String("v1"); } +void SnorePlugin::setDefaultSettings() +{ + setDefaultSettingsValue(QLatin1String("Enabled"), false, LOCAL_SETTING); +} + bool SnorePlugin::deinitialize() { if (m_initialized) { diff --git a/src/libsnore/plugins/plugins.h b/src/libsnore/plugins/plugins.h index e297387..d57cef3 100644 --- a/src/libsnore/plugins/plugins.h +++ b/src/libsnore/plugins/plugins.h @@ -85,8 +85,14 @@ protected: */ virtual QString settingsVersion() const; + /** + * Set default setting values for the Plugin. + */ + virtual void setDefaultSettings(); + private: QString normaliseKey(const QString &key) const; + void setDefaultSettingsPlugin(); bool m_initialized = false; PluginContainer *m_container = nullptr; diff --git a/src/libsnore/settingsdialog.h b/src/libsnore/settingsdialog.h index fbcc016..1f41795 100644 --- a/src/libsnore/settingsdialog.h +++ b/src/libsnore/settingsdialog.h @@ -24,7 +24,6 @@ class QAbstractButton; - namespace Snore { class PluginSettingsWidget; diff --git a/src/libsnore/snore.cpp b/src/libsnore/snore.cpp index 7aabb93..733d7da 100644 --- a/src/libsnore/snore.cpp +++ b/src/libsnore/snore.cpp @@ -92,7 +92,7 @@ void SnoreCore::loadPlugins(SnorePlugin::PluginTypes types) } } } - break; + break; default: snoreDebug(SNORE_WARNING) << "Plugin Cache corrupted\n" << info->file() << info->type(); continue; @@ -244,7 +244,7 @@ void SnoreCore::displayExapleNotification() { Application app = SnoreCorePrivate::instance()->defaultApplication(); QString text = QLatin1String("") + tr("This is Snore") + QLatin1String("
") + - QLatin1String("") + tr("Project Website") + QLatin1String("
"); + QLatin1String("") + tr("Project Website") + QLatin1String("
"); if (!app.constHints().value("use-markup").toBool()) { text = Utils::normalizeMarkup(text, Utils::NO_MARKUP); } diff --git a/src/plugins/backends/freedesktop/freedesktopnotification_backend.cpp b/src/plugins/backends/freedesktop/freedesktopnotification_backend.cpp index 69e575b..5b655ed 100644 --- a/src/plugins/backends/freedesktop/freedesktopnotification_backend.cpp +++ b/src/plugins/backends/freedesktop/freedesktopnotification_backend.cpp @@ -52,7 +52,7 @@ bool FreedesktopBackend::canUpdateNotification() const void FreedesktopBackend::slotNotify(Notification noti) { - if(noti.data()->sourceAndTargetAreSimilar(this)) { + if (noti.data()->sourceAndTargetAreSimilar(this)) { return; } diff --git a/src/plugins/backends/growl/growlbackend.cpp b/src/plugins/backends/growl/growlbackend.cpp index 30809fe..0dc868b 100644 --- a/src/plugins/backends/growl/growlbackend.cpp +++ b/src/plugins/backends/growl/growlbackend.cpp @@ -31,9 +31,6 @@ GrowlBackend *GrowlBackend::s_instance = nullptr; bool GrowlBackend::initialize() { - setDefaultSettingsValue(QLatin1String("Host"), QLatin1String("localhost")); - setDefaultSettingsValue(QLatin1String("Password"), QString()); - if (!SnoreBackend::initialize()) { return false; } @@ -127,3 +124,10 @@ PluginSettingsWidget *GrowlBackend::settingsWidget() return new GrowlSettings(this); } +void GrowlBackend::setDefaultSettings() +{ + SnoreBackend::setDefaultSettings(); + setDefaultSettingsValue(QLatin1String("Host"), QLatin1String("localhost")); + setDefaultSettingsValue(QLatin1String("Password"), QString()); +} + diff --git a/src/plugins/backends/growl/growlbackend.h b/src/plugins/backends/growl/growlbackend.h index 94151f0..e1925fd 100644 --- a/src/plugins/backends/growl/growlbackend.h +++ b/src/plugins/backends/growl/growlbackend.h @@ -36,6 +36,9 @@ public: bool deinitialize() override; Snore::PluginSettingsWidget *settingsWidget() override; +protected: + void setDefaultSettings() override; + private: //a static instance for the static callback methode static GrowlBackend *s_instance; diff --git a/src/plugins/backends/snarl/snarl.cpp b/src/plugins/backends/snarl/snarl.cpp index 7ea120b..89a3565 100644 --- a/src/plugins/backends/snarl/snarl.cpp +++ b/src/plugins/backends/snarl/snarl.cpp @@ -113,8 +113,6 @@ private: bool SnarlBackend::initialize() { - setDefaultSettingsValue(QLatin1String("Password"), QString()); - if (!SnoreBackend::initialize()) { return false; } @@ -159,6 +157,13 @@ bool SnarlBackend::canUpdateNotification() const return true; } +void SnarlBackend::setDefaultSettings() +{ + + setDefaultSettingsValue(QLatin1String("Password"), QString()); + SnoreBackend::setDefaultSettings(); +} + void SnarlBackend::slotRegisterApplication(const Application &application) { if (!m_eventLoop) { diff --git a/src/plugins/backends/snarl/snarl.h b/src/plugins/backends/snarl/snarl.h index 457096f..06cdb13 100644 --- a/src/plugins/backends/snarl/snarl.h +++ b/src/plugins/backends/snarl/snarl.h @@ -36,6 +36,9 @@ public: virtual bool canCloseNotification() const override; virtual bool canUpdateNotification() const override; +protected: + void setDefaultSettings() override; + private: class SnarlWidget; SnarlBackend::SnarlWidget *m_eventLoop; diff --git a/src/plugins/backends/snore/snorenotifier.cpp b/src/plugins/backends/snore/snorenotifier.cpp index 8673a0d..f456b5c 100644 --- a/src/plugins/backends/snore/snorenotifier.cpp +++ b/src/plugins/backends/snore/snorenotifier.cpp @@ -107,8 +107,6 @@ void SnoreNotifier::slotCloseNotification(Snore::Notification notification) bool SnoreNotifier::initialize() { - setDefaultSettingsValue(QLatin1String("Position"), Qt::TopRightCorner); - if (SnoreBackend::initialize()) { for (int i = 0; i < m_widgets.size(); ++i) { NotifyWidget *w = new NotifyWidget(i, this); @@ -156,3 +154,9 @@ PluginSettingsWidget *SnoreNotifier::settingsWidget() { return new SnoreNotifierSettings(this); } + +void SnoreNotifier::setDefaultSettings() +{ + setDefaultSettingsValue(QLatin1String("Position"), Qt::TopRightCorner); + SnoreBackend::setDefaultSettings(); +} diff --git a/src/plugins/backends/snore/snorenotifier.h b/src/plugins/backends/snore/snorenotifier.h index d56818b..60cfc54 100644 --- a/src/plugins/backends/snore/snorenotifier.h +++ b/src/plugins/backends/snore/snorenotifier.h @@ -40,6 +40,9 @@ public: Snore::PluginSettingsWidget *settingsWidget() override; +protected: + void setDefaultSettings() override; + public Q_SLOTS: virtual void slotNotify(Snore::Notification notification) override; virtual void slotCloseNotification(Snore::Notification notification) override; diff --git a/src/plugins/frontends/pushover/pushover_frontend.cpp b/src/plugins/frontends/pushover/pushover_frontend.cpp index 457a173..8fc2f11 100644 --- a/src/plugins/frontends/pushover/pushover_frontend.cpp +++ b/src/plugins/frontends/pushover/pushover_frontend.cpp @@ -46,9 +46,6 @@ PushoverFrontend::PushoverFrontend() bool PushoverFrontend::initialize() { - setDefaultSettingsValue(QLatin1String("Secret"), QString(), LOCAL_SETTING); - setDefaultSettingsValue(QLatin1String("DeviceID"), QString(), LOCAL_SETTING); - if (!SnoreFrontend::initialize()) { return false; } @@ -120,6 +117,13 @@ QString PushoverFrontend::errorMessage() return m_errorMessage; } +void PushoverFrontend::setDefaultSettings() +{ + setDefaultSettingsValue(QLatin1String("Secret"), QString(), LOCAL_SETTING); + setDefaultSettingsValue(QLatin1String("DeviceID"), QString(), LOCAL_SETTING); + SnoreFrontend::setDefaultSettings(); +} + void PushoverFrontend::slotActionInvoked(Notification notification) { if (notification.priority() == Notification::EMERGENCY) { diff --git a/src/plugins/frontends/pushover/pushover_frontend.h b/src/plugins/frontends/pushover/pushover_frontend.h index 3285519..6b86637 100644 --- a/src/plugins/frontends/pushover/pushover_frontend.h +++ b/src/plugins/frontends/pushover/pushover_frontend.h @@ -45,6 +45,9 @@ public: bool isLoggedIn() const; QString errorMessage(); +protected: + void setDefaultSettings() override; + public Q_SLOTS: void slotActionInvoked(Snore::Notification notification); diff --git a/src/plugins/secondary_backends/nma/nma.cpp b/src/plugins/secondary_backends/nma/nma.cpp index 43529d8..dfb1ba5 100644 --- a/src/plugins/secondary_backends/nma/nma.cpp +++ b/src/plugins/secondary_backends/nma/nma.cpp @@ -59,13 +59,13 @@ void NotifyMyAndroid::slotNotify(Notification notification) } -bool NotifyMyAndroid::initialize() -{ - setDefaultSettingsValue(QLatin1String("ApiKey"), QString()); - return SnoreSecondaryBackend::initialize(); -} - PluginSettingsWidget *NotifyMyAndroid::settingsWidget() { return new NotifyMyAndroidSettings(this); } + +void NotifyMyAndroid::setDefaultSettings() +{ + setDefaultSettingsValue(QLatin1String("ApiKey"), QString()); + SnoreSecondaryBackend::setDefaultSettings(); +} diff --git a/src/plugins/secondary_backends/nma/nma.h b/src/plugins/secondary_backends/nma/nma.h index bd6436e..8cbdaca 100644 --- a/src/plugins/secondary_backends/nma/nma.h +++ b/src/plugins/secondary_backends/nma/nma.h @@ -31,10 +31,11 @@ public: NotifyMyAndroid() = default; ~NotifyMyAndroid() = default; - virtual bool initialize() override; - Snore::PluginSettingsWidget *settingsWidget() override; +protected: + void setDefaultSettings() override; + public Q_SLOTS: void slotNotify(Snore::Notification notification) override; diff --git a/src/plugins/secondary_backends/pushover/pushover.cpp b/src/plugins/secondary_backends/pushover/pushover.cpp index 177da17..9ef5f0e 100644 --- a/src/plugins/secondary_backends/pushover/pushover.cpp +++ b/src/plugins/secondary_backends/pushover/pushover.cpp @@ -29,7 +29,7 @@ using namespace Snore; void Pushover::slotNotify(Notification notification) { - if(notification.data()->sourceAndTargetAreSimilar(this)) { + if (notification.data()->sourceAndTargetAreSimilar(this)) { return; } @@ -120,15 +120,15 @@ void Pushover::slotNotify(Notification notification) } -bool Pushover::initialize() -{ - setDefaultSettingsValue(QLatin1String("UserKey"), QString()); - setDefaultSettingsValue(QLatin1String("Sound"), QLatin1String("pushover"), LOCAL_SETTING); - setDefaultSettingsValue(QLatin1String("Devices"), QString(), LOCAL_SETTING); - return SnoreSecondaryBackend::initialize(); -} - PluginSettingsWidget *Pushover::settingsWidget() { return new PushoverSettings(this); } + +void Pushover::setDefaultSettings() +{ + setDefaultSettingsValue(QLatin1String("UserKey"), QString()); + setDefaultSettingsValue(QLatin1String("Sound"), QLatin1String("pushover"), LOCAL_SETTING); + setDefaultSettingsValue(QLatin1String("Devices"), QString(), LOCAL_SETTING); + SnoreSecondaryBackend::setDefaultSettings(); +} diff --git a/src/plugins/secondary_backends/pushover/pushover.h b/src/plugins/secondary_backends/pushover/pushover.h index ae4bd59..4a0a9e4 100644 --- a/src/plugins/secondary_backends/pushover/pushover.h +++ b/src/plugins/secondary_backends/pushover/pushover.h @@ -31,10 +31,11 @@ public: Pushover() = default; ~Pushover() = default; - bool initialize() override; - Snore::PluginSettingsWidget *settingsWidget() override; +protected: + void setDefaultSettings() override; + public Q_SLOTS: void slotNotify(Snore::Notification notification) override; diff --git a/src/plugins/secondary_backends/sound/sound.cpp b/src/plugins/secondary_backends/sound/sound.cpp index d960e76..3a85533 100644 --- a/src/plugins/secondary_backends/sound/sound.cpp +++ b/src/plugins/secondary_backends/sound/sound.cpp @@ -36,9 +36,7 @@ Sound::Sound(): bool Sound::initialize() { - setDefaultSettingsValue(QLatin1String("Volume"), 50); m_player->setVolume(settingsValue(QLatin1String("Volume")).toInt()); - return SnoreSecondaryBackend::initialize(); } @@ -47,6 +45,12 @@ PluginSettingsWidget *Sound::settingsWidget() return new SoundSettings(this); } +void Sound::setDefaultSettings() +{ + setDefaultSettingsValue(QLatin1String("Volume"), 50); + SnoreSecondaryBackend::setDefaultSettings(); +} + void Sound::slotNotificationDisplayed(Snore::Notification notification) { if (notification.hints().value("silent").toBool()) { diff --git a/src/plugins/secondary_backends/sound/sound.h b/src/plugins/secondary_backends/sound/sound.h index 87e6d69..2b03435 100644 --- a/src/plugins/secondary_backends/sound/sound.h +++ b/src/plugins/secondary_backends/sound/sound.h @@ -35,6 +35,9 @@ public: Snore::PluginSettingsWidget *settingsWidget() override; +protected: + void setDefaultSettings() override; + public Q_SLOTS: void slotNotificationDisplayed(Snore::Notification notification) override; private: diff --git a/src/plugins/secondary_backends/toasty/toasty.cpp b/src/plugins/secondary_backends/toasty/toasty.cpp index bfd76aa..e0557e4 100644 --- a/src/plugins/secondary_backends/toasty/toasty.cpp +++ b/src/plugins/secondary_backends/toasty/toasty.cpp @@ -77,13 +77,13 @@ void Toasty::slotNotify(Notification notification) } -bool Toasty::initialize() -{ - setDefaultSettingsValue(QLatin1String("DeviceID"), QString()); - return SnoreSecondaryBackend::initialize(); -} - PluginSettingsWidget *Toasty::settingsWidget() { return new ToastySettings(this); } + +void Toasty::setDefaultSettings() +{ + setDefaultSettingsValue(QLatin1String("DeviceID"), QString()); + SnoreSecondaryBackend::setDefaultSettings(); +} diff --git a/src/plugins/secondary_backends/toasty/toasty.h b/src/plugins/secondary_backends/toasty/toasty.h index 90f097f..ea5690b 100644 --- a/src/plugins/secondary_backends/toasty/toasty.h +++ b/src/plugins/secondary_backends/toasty/toasty.h @@ -31,10 +31,11 @@ public: Toasty() = default; ~Toasty() = default; - bool initialize() override; - Snore::PluginSettingsWidget *settingsWidget() override; +protected: + void setDefaultSettings() override; + public Q_SLOTS: void slotNotify(Snore::Notification notification) override;