diff options
Diffstat (limited to 'plugins/StatusManager/src')
-rw-r--r-- | plugins/StatusManager/src/StartupStatus/ss_options.cpp | 34 | ||||
-rw-r--r-- | plugins/StatusManager/src/main.cpp | 1 | ||||
-rw-r--r-- | plugins/StatusManager/src/version.h | 1 |
3 files changed, 13 insertions, 23 deletions
diff --git a/plugins/StatusManager/src/StartupStatus/ss_options.cpp b/plugins/StatusManager/src/StartupStatus/ss_options.cpp index 1fdf8141bd..90bdc218aa 100644 --- a/plugins/StatusManager/src/StartupStatus/ss_options.cpp +++ b/plugins/StatusManager/src/StartupStatus/ss_options.cpp @@ -507,24 +507,6 @@ static int DeleteSetting(const char *szSetting, void *lParam) return 0; } -static int ClearDatabase(char* filter) -{ - LIST<char> arSettings(10); - db_enum_settings(0, DeleteSetting, SSMODULENAME, &arSettings); - - for (int i = 0; i < arSettings.getCount(); i++) { - if ((filter == nullptr) || (!strncmp(filter, arSettings[i], mir_strlen(filter)))) - db_unset(0, SSMODULENAME, arSettings[i]); - mir_free(arSettings[i]); - } - - if (filter == nullptr) - db_unset(0, "AutoAway", "Confirm"); - - return 0; -} - - INT_PTR CALLBACK addProfileDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { static HWND hwndParent; @@ -748,12 +730,20 @@ public: virtual void OnApply() override { - char setting[128]; int oldCount = db_get_w(0, SSMODULENAME, SETTING_PROFILECOUNT, 0); for (int i = 0; i < oldCount; i++) { - mir_snprintf(setting, "%d_", i); - ClearDatabase(setting); + LIST<char> arSettings(10); + db_enum_settings(0, DeleteSetting, SSMODULENAME, &arSettings); + + char setting[128]; + int len = mir_snprintf(setting, "%d_", i); + for (int k = 0; k < arSettings.getCount(); k++) { + if (!strncmp(setting, arSettings[k], len)) + db_unset(0, SSMODULENAME, arSettings[k]); + mir_free(arSettings[k]); + } } + for (int i = 0; i < arProfiles.getCount(); i++) { PROFILEOPTIONS& po = arProfiles[i]; db_set_b(0, SSMODULENAME, OptName(i, SETTING_SHOWCONFIRMDIALOG), po.showDialog); @@ -767,6 +757,7 @@ public: TSettingsList& ar = *po.ps; for (int j = 0; j < ar.getCount(); j++) { if (ar[j].m_szMsg != nullptr) { + char setting[128]; mir_snprintf(setting, "%s_%s", ar[j].m_szName, SETTING_PROFILE_STSMSG); db_set_ws(0, SSMODULENAME, OptName(i, setting), ar[j].m_szMsg); } @@ -820,6 +811,7 @@ public: if (idx != -1) { TSSSetting* ps = (TSSSetting*)lstAccount.GetItemData(idx); ps->m_status = lstStatus.GetItemData(lstStatus.GetCurSel()); + NotifyChange(); } SetStatusMsg(); } diff --git a/plugins/StatusManager/src/main.cpp b/plugins/StatusManager/src/main.cpp index 7e5b41fd5d..599e3d54ae 100644 --- a/plugins/StatusManager/src/main.cpp +++ b/plugins/StatusManager/src/main.cpp @@ -43,7 +43,6 @@ PLUGININFOEX pluginInfoEx = { PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), __DESC, __AUTHOR, - __AUTHOREMAIL, __COPYRIGHT, __AUTHORWEB, UNICODE_AWARE, diff --git a/plugins/StatusManager/src/version.h b/plugins/StatusManager/src/version.h index 0f0117171f..5cac1e4939 100644 --- a/plugins/StatusManager/src/version.h +++ b/plugins/StatusManager/src/version.h @@ -12,6 +12,5 @@ #define __FILENAME "StatusManager.dll" #define __DESC "A connection checker and auto away module. Also allows you to define the status Miranda should set on startup, configurable per protocol." #define __AUTHOR "P Boon" -#define __AUTHOREMAIL "unregistered@users.sourceforge.net" #define __AUTHORWEB "https://miranda-ng.org/p/StatusManager/" #define __COPYRIGHT "© 2003-08 P. Boon, 2008-17 George Hazan" |