diff options
author | dartraiden <wowemuh@gmail.com> | 2019-07-21 19:59:18 +0300 |
---|---|---|
committer | dartraiden <wowemuh@gmail.com> | 2019-07-21 19:59:18 +0300 |
commit | b078dfb78c89aea87cd422eae52694738e473cf3 (patch) | |
tree | ca896e82a8a5ce81f80d041f4aee7fdeeb007162 /plugins/StatusManager | |
parent | ee7e29d02e94e969c1154515cd0c408c591a2414 (diff) |
Restore "Free for chat" status support (fixes #1963)
Diffstat (limited to 'plugins/StatusManager')
-rw-r--r-- | plugins/StatusManager/src/advancedautoaway.cpp | 2 | ||||
-rw-r--r-- | plugins/StatusManager/src/commonstatus.cpp | 5 | ||||
-rw-r--r-- | plugins/StatusManager/src/ss_options.cpp | 1 | ||||
-rw-r--r-- | plugins/StatusManager/src/startupstatus.cpp | 2 |
4 files changed, 8 insertions, 2 deletions
diff --git a/plugins/StatusManager/src/advancedautoaway.cpp b/plugins/StatusManager/src/advancedautoaway.cpp index 39c6418a99..aa630ccb36 100644 --- a/plugins/StatusManager/src/advancedautoaway.cpp +++ b/plugins/StatusManager/src/advancedautoaway.cpp @@ -439,7 +439,7 @@ int LoadAutoAwaySetting(SMProto &autoAwaySetting, char *protoName) mir_snprintf(setting, "%s_NATime", protoName); autoAwaySetting.naTime = AAAPlugin.getWord(setting, SETTING_NATIME_DEFAULT); mir_snprintf(setting, "%s_StatusFlags", protoName); - autoAwaySetting.statusFlags = AAAPlugin.getWord(setting, StatusModeToProtoFlag(ID_STATUS_ONLINE)); + autoAwaySetting.statusFlags = AAAPlugin.getWord(setting, StatusModeToProtoFlag(ID_STATUS_ONLINE) | StatusModeToProtoFlag(ID_STATUS_FREECHAT)); int flags; if (g_bAAASettingSame) diff --git a/plugins/StatusManager/src/commonstatus.cpp b/plugins/StatusManager/src/commonstatus.cpp index 365ce16081..da4fbf2163 100644 --- a/plugins/StatusManager/src/commonstatus.cpp +++ b/plugins/StatusManager/src/commonstatus.cpp @@ -29,7 +29,8 @@ StatusModeMap statusModes[MAX_STATUS_COUNT] = { ID_STATUS_NA, PF2_LONGAWAY }, { ID_STATUS_OCCUPIED, PF2_LIGHTDND }, { ID_STATUS_DND, PF2_HEAVYDND }, - { ID_STATUS_INVISIBLE, PF2_INVISIBLE }, + { ID_STATUS_FREECHAT, PF2_FREECHAT }, + { ID_STATUS_INVISIBLE, PF2_INVISIBLE } }; // handles for hooks and other Miranda thingies @@ -87,6 +88,7 @@ char* StatusModeToDbSetting(int status, const char *suffix) case ID_STATUS_NA: prefix = "Na"; break; case ID_STATUS_DND: prefix = "Dnd"; break; case ID_STATUS_OCCUPIED: prefix = "Occupied"; break; + case ID_STATUS_FREECHAT: prefix = "FreeChat"; break; case ID_STATUS_ONLINE: prefix = "On"; break; case ID_STATUS_OFFLINE: prefix = "Off"; break; case ID_STATUS_INVISIBLE: prefix = "Inv"; break; @@ -107,6 +109,7 @@ DWORD StatusModeToProtoFlag(int status) case ID_STATUS_NA: return PF2_LONGAWAY; case ID_STATUS_OCCUPIED: return PF2_LIGHTDND; case ID_STATUS_DND: return PF2_HEAVYDND; + case ID_STATUS_FREECHAT: return PF2_FREECHAT; } return 0; } diff --git a/plugins/StatusManager/src/ss_options.cpp b/plugins/StatusManager/src/ss_options.cpp index b9b903eaf7..d1e10551c0 100644 --- a/plugins/StatusManager/src/ss_options.cpp +++ b/plugins/StatusManager/src/ss_options.cpp @@ -36,6 +36,7 @@ static char* GetStatusDesc(int status) case ID_STATUS_NA: return "na"; case ID_STATUS_DND: return "dnd"; case ID_STATUS_OCCUPIED: return "occupied"; + case ID_STATUS_FREECHAT: return "freechat"; case ID_STATUS_ONLINE: return "online"; case ID_STATUS_OFFLINE: return "offline"; case ID_STATUS_INVISIBLE: return "invisible"; diff --git a/plugins/StatusManager/src/startupstatus.cpp b/plugins/StatusManager/src/startupstatus.cpp index bbca4a5843..9b586ebece 100644 --- a/plugins/StatusManager/src/startupstatus.cpp +++ b/plugins/StatusManager/src/startupstatus.cpp @@ -54,6 +54,8 @@ static int IsValidStatusDesc(char* statusDesc) return ID_STATUS_DND; if (!strncmp("occupied", statusDesc, 8)) return ID_STATUS_OCCUPIED; + if (!strncmp("freechat", statusDesc, 8)) + return ID_STATUS_FREECHAT; if (!strncmp("online", statusDesc, 6)) return ID_STATUS_ONLINE; if (!strncmp("offline", statusDesc, 7)) |