summaryrefslogtreecommitdiff
path: root/plugins/StatusManager/src
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/StatusManager/src')
-rw-r--r--plugins/StatusManager/src/StartupStatus/ss_options.cpp34
-rw-r--r--plugins/StatusManager/src/main.cpp1
-rw-r--r--plugins/StatusManager/src/version.h1
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"