summaryrefslogtreecommitdiff
path: root/src/mir_app
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 /src/mir_app
parentee7e29d02e94e969c1154515cd0c408c591a2414 (diff)
Restore "Free for chat" status support (fixes #1963)
Diffstat (limited to 'src/mir_app')
-rw-r--r--src/mir_app/res/resource.rc3
-rw-r--r--src/mir_app/src/clcidents.cpp1
-rw-r--r--src/mir_app/src/clcutils.cpp1
-rw-r--r--src/mir_app/src/clistmod.cpp3
-rw-r--r--src/mir_app/src/menu_clist.cpp1
-rw-r--r--src/mir_app/src/meta_services.cpp6
-rw-r--r--src/mir_app/src/meta_utils.cpp11
-rw-r--r--src/mir_app/src/skinicons.cpp3
8 files changed, 19 insertions, 10 deletions
diff --git a/src/mir_app/res/resource.rc b/src/mir_app/res/resource.rc
index db270fefd9..90b54f150f 100644
--- a/src/mir_app/res/resource.rc
+++ b/src/mir_app/res/resource.rc
@@ -1310,7 +1310,8 @@ BEGIN
MENUITEM "&Not available\tCtrl+3", ID_STATUS_NA
MENUITEM "Occ&upied\tCtrl+4", ID_STATUS_OCCUPIED
MENUITEM "&Do not disturb\tCtrl+5", ID_STATUS_DND
- MENUITEM "&Invisible\tCtrl+6", ID_STATUS_INVISIBLE
+ MENUITEM "&Free for chat\tCtrl+6", ID_STATUS_FREECHAT
+ MENUITEM "&Invisible\tCtrl+7", ID_STATUS_INVISIBLE
END
END
diff --git a/src/mir_app/src/clcidents.cpp b/src/mir_app/src/clcidents.cpp
index 931975a599..0d4e3952b9 100644
--- a/src/mir_app/src/clcidents.cpp
+++ b/src/mir_app/src/clcidents.cpp
@@ -246,6 +246,7 @@ MIR_APP_DLL(int) Clist_GetGeneralizedStatus(char **szProto)
int iStatusWeight;
switch (pa->iRealStatus) {
+ case ID_STATUS_FREECHAT: iStatusWeight = 110; break;
case ID_STATUS_ONLINE: iStatusWeight = 100; break;
case ID_STATUS_OCCUPIED: iStatusWeight = 60; break;
case ID_STATUS_DND: iStatusWeight = 40; break;
diff --git a/src/mir_app/src/clcutils.cpp b/src/mir_app/src/clcutils.cpp
index 980a424d57..2ba762e39a 100644
--- a/src/mir_app/src/clcutils.cpp
+++ b/src/mir_app/src/clcutils.cpp
@@ -624,6 +624,7 @@ MIR_APP_DLL(int) Clist_ClcStatusToPf2(int status)
case ID_STATUS_DND: return PF2_HEAVYDND;
case ID_STATUS_NA: return PF2_LONGAWAY;
case ID_STATUS_OCCUPIED: return PF2_LIGHTDND;
+ case ID_STATUS_FREECHAT: return PF2_FREECHAT;
case ID_STATUS_INVISIBLE: return PF2_INVISIBLE;
case ID_STATUS_OFFLINE: return MODEF_OFFLINE;
}
diff --git a/src/mir_app/src/clistmod.cpp b/src/mir_app/src/clistmod.cpp
index 70a5fde409..ed2f250eb5 100644
--- a/src/mir_app/src/clistmod.cpp
+++ b/src/mir_app/src/clistmod.cpp
@@ -74,6 +74,9 @@ MIR_APP_DLL(wchar_t*) Clist_GetStatusModeDescription(int mode, int flags)
case ID_STATUS_OCCUPIED:
descr = LPGENW("Occupied");
break;
+ case ID_STATUS_FREECHAT:
+ descr = LPGENW("Free for chat");
+ break;
case ID_STATUS_INVISIBLE:
descr = LPGENW("Invisible");
break;
diff --git a/src/mir_app/src/menu_clist.cpp b/src/mir_app/src/menu_clist.cpp
index e266b712d5..181df23c64 100644
--- a/src/mir_app/src/menu_clist.cpp
+++ b/src/mir_app/src/menu_clist.cpp
@@ -63,6 +63,7 @@ MStatus g_statuses[MAX_STATUS_COUNT] =
{ ID_STATUS_NA, SKINICON_STATUS_NA, PF2_LONGAWAY },
{ ID_STATUS_OCCUPIED, SKINICON_STATUS_OCCUPIED, PF2_LIGHTDND },
{ ID_STATUS_DND, SKINICON_STATUS_DND, PF2_HEAVYDND },
+ { ID_STATUS_FREECHAT, SKINICON_STATUS_FREE4CHAT, PF2_FREECHAT },
{ ID_STATUS_INVISIBLE, SKINICON_STATUS_INVISIBLE, PF2_INVISIBLE },
};
diff --git a/src/mir_app/src/meta_services.cpp b/src/mir_app/src/meta_services.cpp
index 7b89a95b1a..ad63a46862 100644
--- a/src/mir_app/src/meta_services.cpp
+++ b/src/mir_app/src/meta_services.cpp
@@ -56,16 +56,16 @@ INT_PTR Meta_GetCaps(WPARAM wParam, LPARAM)
return PF1_IM | PF1_CHAT | PF1_FILESEND | PF1_MODEMSGRECV | PF1_NUMERICUSERID;
case PFLAGNUM_2:
- return PF2_ONLINE | PF2_INVISIBLE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND;
+ return PF2_ONLINE | PF2_INVISIBLE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND | PF2_FREECHAT;
case PFLAGNUM_3:
- return PF2_ONLINE | PF2_INVISIBLE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND;
+ return PF2_ONLINE | PF2_INVISIBLE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND | PF2_FREECHAT;
case PFLAGNUM_4:
return PF4_SUPPORTTYPING | PF4_AVATARS;
case PFLAGNUM_5:
- return PF2_INVISIBLE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND;
+ return PF2_INVISIBLE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND | PF2_FREECHAT;
case PFLAG_MAXLENOFMESSAGE:
return 2000;
diff --git a/src/mir_app/src/meta_utils.cpp b/src/mir_app/src/meta_utils.cpp
index 2b7ccab6a2..75e02fa608 100644
--- a/src/mir_app/src/meta_utils.cpp
+++ b/src/mir_app/src/meta_utils.cpp
@@ -209,11 +209,12 @@ MCONTACT Meta_GetMostOnline(DBCachedContact *cc)
static int GetStatusPriority(int status)
{
switch (status) {
- case ID_STATUS_AWAY: return 1;
- case ID_STATUS_OCCUPIED: return 2;
- case ID_STATUS_NA: return 3;
- case ID_STATUS_DND: return 4;
- case ID_STATUS_OFFLINE: return 5;
+ case ID_STATUS_FREECHAT: return 1;
+ case ID_STATUS_AWAY: return 2;
+ case ID_STATUS_OCCUPIED: return 3;
+ case ID_STATUS_NA: return 4;
+ case ID_STATUS_DND: return 5;
+ case ID_STATUS_OFFLINE: return 6;
}
return 0;
diff --git a/src/mir_app/src/skinicons.cpp b/src/mir_app/src/skinicons.cpp
index b5ecd34c88..8f7f7c7624 100644
--- a/src/mir_app/src/skinicons.cpp
+++ b/src/mir_app/src/skinicons.cpp
@@ -108,7 +108,8 @@ static struct StandardIconDescription statusIcons[] =
{ ID_STATUS_NA, LPGEN("Not available"), -IDI_NA, PF2_LONGAWAY },
{ ID_STATUS_OCCUPIED, LPGEN("Occupied"), -IDI_OCCUPIED, PF2_LIGHTDND },
{ ID_STATUS_DND, LPGEN("Do not disturb"), -IDI_DND, PF2_HEAVYDND },
- { ID_STATUS_INVISIBLE, LPGEN("Invisible"), -IDI_INVISIBLE, PF2_INVISIBLE },
+ { ID_STATUS_FREECHAT, LPGEN("Free for chat"), -IDI_FREE4CHAT, PF2_FREECHAT },
+ { ID_STATUS_INVISIBLE, LPGEN("Invisible"), -IDI_INVISIBLE, PF2_INVISIBLE }
};
const char mainIconsFmt[] = "core_main_";