summaryrefslogtreecommitdiff
path: root/plugins/StatusManager
diff options
context:
space:
mode:
authordartraiden <wowemuh@gmail.com>2019-07-21 19:59:18 +0300
committerdartraiden <wowemuh@gmail.com>2019-07-21 19:59:18 +0300
commitb078dfb78c89aea87cd422eae52694738e473cf3 (patch)
treeca896e82a8a5ce81f80d041f4aee7fdeeb007162 /plugins/StatusManager
parentee7e29d02e94e969c1154515cd0c408c591a2414 (diff)
Restore "Free for chat" status support (fixes #1963)
Diffstat (limited to 'plugins/StatusManager')
-rw-r--r--plugins/StatusManager/src/advancedautoaway.cpp2
-rw-r--r--plugins/StatusManager/src/commonstatus.cpp5
-rw-r--r--plugins/StatusManager/src/ss_options.cpp1
-rw-r--r--plugins/StatusManager/src/startupstatus.cpp2
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))