From eca5dcc2dea3515d2e9b7772d361318901758a7b Mon Sep 17 00:00:00 2001 From: kremsy Date: Fri, 4 Jul 2014 18:48:39 +0200 Subject: [PATCH] fixed setting changed callback + added use of it in widgets plugin --- application/core/Settings/SettingManager.php | 7 ++++--- application/plugins/MCTeam/WidgetPlugin.php | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/application/core/Settings/SettingManager.php b/application/core/Settings/SettingManager.php index 052ea86e..1f50471b 100644 --- a/application/core/Settings/SettingManager.php +++ b/application/core/Settings/SettingManager.php @@ -173,6 +173,7 @@ class SettingManager implements CallbackListener { * @return bool */ public function setSetting($object, $settingName, $value) { + //TODO nowhere used, everywhere saveSettings used, is it depreciated? $setting = $this->getSettingObject($object, $settingName); if ($setting) { $setting->value = $value; @@ -190,9 +191,6 @@ class SettingManager implements CallbackListener { $this->storeSetting($setting); - // Trigger Settings Changed Callback - $this->maniaControl->callbackManager->triggerCallback(self::CB_SETTING_CHANGED, $setting); - return true; } @@ -321,6 +319,9 @@ class SettingManager implements CallbackListener { return false; } $settingStatement->close(); + + // Trigger Settings Changed Callback + $this->maniaControl->callbackManager->triggerCallback(self::CB_SETTING_CHANGED, $setting); return true; } diff --git a/application/plugins/MCTeam/WidgetPlugin.php b/application/plugins/MCTeam/WidgetPlugin.php index 5a624ed5..ae749537 100644 --- a/application/plugins/MCTeam/WidgetPlugin.php +++ b/application/plugins/MCTeam/WidgetPlugin.php @@ -17,6 +17,8 @@ use ManiaControl\Manialinks\IconManager; use ManiaControl\Players\Player; use ManiaControl\Players\PlayerManager; use ManiaControl\Plugins\Plugin; +use ManiaControl\Settings\Setting; +use ManiaControl\Settings\SettingManager; use ManiaControl\Utils\Formatter; /** @@ -129,6 +131,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin { $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'updateWidgets'); $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERINFOCHANGED, $this, 'updateWidgets'); + $this->maniaControl->callbackManager->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'updateSettings'); $this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED, true); $this->maniaControl->settingManager->initSetting($this, self::SETTING_MAP_WIDGET_POSX, 160 - 20); @@ -512,6 +515,17 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin { } } + /** + * Update Widgets on Setting Changes + * + * @param Setting $setting + */ + public function updateSettings(Setting $setting){ + if($setting->belongsToClass($this)){ + $this->displayWIdgets(); + } + } + /** * Update Widget on certain callbacks */