summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/m_chat_int.h12
-rw-r--r--plugins/TabSRMM/src/chat_tools.cpp4
-rw-r--r--src/mir_app/src/chat_manager.cpp9
-rw-r--r--src/mir_app/src/chat_svc.cpp2
-rw-r--r--src/mir_app/src/srmm_base.cpp4
5 files changed, 19 insertions, 12 deletions
diff --git a/include/m_chat_int.h b/include/m_chat_int.h
index 313e2b511c..6f52166e5f 100644
--- a/include/m_chat_int.h
+++ b/include/m_chat_int.h
@@ -184,12 +184,16 @@ struct MIR_APP_EXPORT SESSION_INFO : public MZeroedObject, public MNonCopyable
wchar_t pszLogFileName[MAX_PATH];
- __forceinline USERINFO* getMe() const
- { return (pParent != nullptr) ? pParent->pMe : pMe;
+ __forceinline USERINFO* getMe() const {
+ return (pParent != nullptr) ? pParent->pMe : pMe;
}
- __forceinline OBJLIST<USERINFO>& getUserList()
- { return (pParent != nullptr) ? pParent->arUsers : arUsers;
+ __forceinline STATUSINFO* getStatuses() const {
+ return (pParent != nullptr) ? pParent->pStatuses : pStatuses;
+ }
+
+ __forceinline OBJLIST<USERINFO>& getUserList() {
+ return (pParent != nullptr) ? pParent->arUsers : arUsers;
}
const char* getSoundName(int iEventType) const;
diff --git a/plugins/TabSRMM/src/chat_tools.cpp b/plugins/TabSRMM/src/chat_tools.cpp
index bf59ce54a1..4f2b720d83 100644
--- a/plugins/TabSRMM/src/chat_tools.cpp
+++ b/plugins/TabSRMM/src/chat_tools.cpp
@@ -363,9 +363,11 @@ char GetIndicator(SESSION_INFO *si, LPCTSTR ptszNick, int *iNickIndex)
if (iNickIndex)
*iNickIndex = 0;
+ auto *pStatuses = si->getStatuses();
+
for (auto &ui : si->getUserList()) {
if (!mir_wstrcmp(ui->pszNick, ptszNick)) {
- STATUSINFO *ti = g_chatApi.TM_FindStatus(si->pStatuses, g_chatApi.TM_WordToString(si->pStatuses, ui->Status));
+ STATUSINFO *ti = g_chatApi.TM_FindStatus(pStatuses, g_chatApi.TM_WordToString(pStatuses, ui->Status));
if (ti) {
if (iNickIndex)
*iNickIndex = ti->iIconIndex; // color table's index is not zero-based
diff --git a/src/mir_app/src/chat_manager.cpp b/src/mir_app/src/chat_manager.cpp
index 159aec0905..e7b83a5da8 100644
--- a/src/mir_app/src/chat_manager.cpp
+++ b/src/mir_app/src/chat_manager.cpp
@@ -358,7 +358,8 @@ static HICON SM_GetStatusIcon(SESSION_INFO *si, USERINFO *ui)
if (!ui || !si)
return nullptr;
- STATUSINFO *ti = g_chatApi.TM_FindStatus(si->pStatuses, g_chatApi.TM_WordToString(si->pStatuses, ui->Status));
+ auto *pStatuses = si->getStatuses();
+ STATUSINFO *ti = g_chatApi.TM_FindStatus(pStatuses, g_chatApi.TM_WordToString(pStatuses, ui->Status));
if (ti != nullptr)
return g_chatApi.hStatusIcons[ti->iIconIndex];
@@ -429,7 +430,7 @@ BOOL SM_GiveStatus(SESSION_INFO *si, const wchar_t *pszUID, const wchar_t *pszSt
if (si == nullptr)
return FALSE;
- USERINFO *ui = UM_GiveStatus(si, pszUID, TM_StringToWord(si->pStatuses, pszStatus));
+ USERINFO *ui = UM_GiveStatus(si, pszUID, TM_StringToWord(si->getStatuses(), pszStatus));
if (ui && si->pDlg)
si->pDlg->UpdateNickList();
return TRUE;
@@ -438,7 +439,7 @@ BOOL SM_GiveStatus(SESSION_INFO *si, const wchar_t *pszUID, const wchar_t *pszSt
BOOL SM_AssignStatus(SESSION_INFO *si, const wchar_t *pszUID, const wchar_t *pszStatus)
{
if (si != nullptr)
- if (USERINFO *ui = UM_SetStatus(si, pszUID, TM_StringToWord(si->pStatuses, pszStatus))) {
+ if (USERINFO *ui = UM_SetStatus(si, pszUID, TM_StringToWord(si->getStatuses(), pszStatus))) {
if (si->pDlg)
si->pDlg->UpdateNickList();
return TRUE;
@@ -463,7 +464,7 @@ BOOL SM_TakeStatus(SESSION_INFO *si, const wchar_t *pszUID, const wchar_t *pszSt
if (si == nullptr)
return FALSE;
- USERINFO *ui = g_chatApi.UM_TakeStatus(si, pszUID, TM_StringToWord(si->pStatuses, pszStatus));
+ USERINFO *ui = g_chatApi.UM_TakeStatus(si, pszUID, TM_StringToWord(si->getStatuses(), pszStatus));
if (ui && si->pDlg)
si->pDlg->UpdateNickList();
return TRUE;
diff --git a/src/mir_app/src/chat_svc.cpp b/src/mir_app/src/chat_svc.cpp
index 8f9bbf3250..fa74c2d448 100644
--- a/src/mir_app/src/chat_svc.cpp
+++ b/src/mir_app/src/chat_svc.cpp
@@ -428,7 +428,7 @@ MIR_APP_DLL(int) Chat_Terminate(SESSION_INFO *si)
static void AddUser(SESSION_INFO *si, GCEVENT &gce)
{
- uint16_t status = TM_StringToWord(si->pStatuses, gce.pszStatus.w);
+ uint16_t status = TM_StringToWord(si->getStatuses(), gce.pszStatus.w);
USERINFO *ui = UM_AddUser(si, gce.pszUID.w, gce.pszNick.w, status);
if (ui == nullptr)
diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp
index 82454da143..52dbc09f40 100644
--- a/src/mir_app/src/srmm_base.cpp
+++ b/src/mir_app/src/srmm_base.cpp
@@ -313,7 +313,7 @@ static void ProcessNickListHovering(const CCtrlListBox &listBox, int hoveredItem
wszBuf.Format(L"%s: %s\r\n%s: %s\r\n%s: %s",
TranslateT("Nickname"), ui->pszNick,
TranslateT("Unique ID"), ui->pszUID,
- TranslateT("Status"), g_chatApi.TM_WordToString(si->pStatuses, ui->Status));
+ TranslateT("Status"), g_chatApi.TM_WordToString(si->getStatuses(), ui->Status));
ti.lpszText = wszBuf.GetBuffer();
}
@@ -339,7 +339,7 @@ void CSrmmBaseDialog::OnNickListTimer(CTimer *pTimer)
wszBuf.Format(L"<b>%s:</b>\t%s\n<b>%s:</b>\t%s\n<b>%s:</b>\t%s",
TranslateT("Nick"), ui->pszNick,
TranslateT("Unique ID"), ui->pszUID,
- TranslateT("Status"), g_chatApi.TM_WordToString(m_si->pStatuses, ui->Status));
+ TranslateT("Status"), g_chatApi.TM_WordToString(m_si->getStatuses(), ui->Status));
CLCINFOTIP ti = { sizeof(ti) };
Tipper_ShowTip(wszBuf, &ti);