From 09bce81d5eae2a46dd039e9fa14290c77685d637 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 6 Dec 2017 20:06:44 +0300 Subject: fixes #1054 (StatusManager cannot enable/disable modules "on the fly") --- plugins/StatusManager/src/options.cpp | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'plugins/StatusManager/src/options.cpp') diff --git a/plugins/StatusManager/src/options.cpp b/plugins/StatusManager/src/options.cpp index 3c5a33799c..dcb6739741 100644 --- a/plugins/StatusManager/src/options.cpp +++ b/plugins/StatusManager/src/options.cpp @@ -35,13 +35,41 @@ void CSubPluginsOptionsDlg::OnApply() { char setting[128]; mir_snprintf(setting, "%s_enabled", KSMODULENAME); - db_set_b(0, MODULENAME, setting, m_enableKeepStatus.GetState()); + int bEnabled = m_enableKeepStatus.GetState(); + if (bEnabled != db_get_b(0, MODULENAME, setting)) { + db_set_b(0, MODULENAME, setting, m_enableKeepStatus.GetState()); + + if (bEnabled) + KeepStatusLoad(); + else + KeepStatusUnload(); + } + mir_snprintf(setting, "%s_enabled", SSMODULENAME); - db_set_b(0, MODULENAME, setting, m_enableStartupStatus.GetState()); + bEnabled = m_enableStartupStatus.GetState(); + if (bEnabled != db_get_b(0, MODULENAME, setting)) { + db_set_b(0, MODULENAME, setting, m_enableStartupStatus.GetState()); + + if (bEnabled) + StartupStatusLoad(); + else + StartupStatusUnload(); + } + mir_snprintf(setting, "%s_enabled", AAAMODULENAME); - db_set_b(0, MODULENAME, setting, m_enableAdvancedAutoAway.GetState()); + bEnabled = m_enableAdvancedAutoAway.GetState(); + if (bEnabled != db_get_b(0, MODULENAME, setting)) { + db_set_b(0, MODULENAME, setting, m_enableAdvancedAutoAway.GetState()); + + if (bEnabled) + AdvancedAutoAwayLoad(); + else + AdvancedAutoAwayUnload(); + } } +///////////////////////////////////////////////////////////////////////////////////////// + int CSubPluginsOptionsDlg::OnOptionsInit(WPARAM wParam, LPARAM) { OPTIONSDIALOGPAGE odp = { 0 }; -- cgit v1.2.3