diff options
Diffstat (limited to 'protocols/JabberG/src/jabber_chat.cpp')
-rw-r--r-- | protocols/JabberG/src/jabber_chat.cpp | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/protocols/JabberG/src/jabber_chat.cpp b/protocols/JabberG/src/jabber_chat.cpp index b68edc5c81..17b824d84b 100644 --- a/protocols/JabberG/src/jabber_chat.cpp +++ b/protocols/JabberG/src/jabber_chat.cpp @@ -4,7 +4,7 @@ Jabber Protocol Plugin for Miranda NG Copyright (c) 2002-04 Santithorn Bunchua
Copyright (c) 2005-12 George Hazan
-Copyright (C) 2012-24 Miranda NG team
+Copyright (C) 2012-25 Miranda NG team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
@@ -130,14 +130,11 @@ SESSION_INFO* CJabberProto::GcInit(JABBER_LIST_ITEM *item) }
}
- ptrA tszNick(getUStringA(si->hContact, "MyNick"));
- if (tszNick != nullptr) {
- if (!mir_strcmp(tszNick, szNick))
- delSetting(si->hContact, "MyNick");
- else
- setUString(si->hContact, "MyNick", item->nick);
- }
- else setUString(si->hContact, "MyNick", item->nick);
+ ptrA szMyNick(getUStringA(si->hContact, "MyNick"));
+ if (szMyNick && getMStringU("Nick") == szMyNick)
+ delSetting(si->hContact, "MyNick");
+ else
+ setUString(si->hContact, "MyNick", item->nick);
ptrA passw(getUStringA(si->hContact, "Password"));
if (mir_strcmp(passw, item->password)) {
@@ -1166,30 +1163,31 @@ static void sttLogListHook(CJabberProto *ppro, JABBER_LIST_ITEM *item, GCHOOK *g {
CMStringW szBuffer, szTitle;
T2Utf roomJid(gch->si->ptszID);
+ auto *pDlg = gch->si->pDlg;
switch (gch->dwData) {
case IDM_LST_PARTICIPANT:
- ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "role", "participant", &CJabberProto::OnIqResultMucGetVoiceList, gch->si->pDlg);
+ ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "role", "participant", &CJabberProto::OnIqResultMucGetVoiceList, pDlg);
break;
case IDM_LST_MEMBER:
- ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "affiliation", "member", &CJabberProto::OnIqResultMucGetMemberList, gch->si->pDlg);
+ ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "affiliation", "member", &CJabberProto::OnIqResultMucGetMemberList, pDlg);
break;
case IDM_LST_MODERATOR:
- ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "role", "moderator", &CJabberProto::OnIqResultMucGetModeratorList, gch->si->pDlg);
+ ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "role", "moderator", &CJabberProto::OnIqResultMucGetModeratorList, pDlg);
break;
case IDM_LST_BAN:
- ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "affiliation", "outcast", &CJabberProto::OnIqResultMucGetBanList, gch->si->pDlg);
+ ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "affiliation", "outcast", &CJabberProto::OnIqResultMucGetBanList, pDlg);
break;
case IDM_LST_ADMIN:
- ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "affiliation", "admin", &CJabberProto::OnIqResultMucGetAdminList, gch->si->pDlg);
+ ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "affiliation", "admin", &CJabberProto::OnIqResultMucGetAdminList, pDlg);
break;
case IDM_LST_OWNER:
- ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "affiliation", "owner", &CJabberProto::OnIqResultMucGetOwnerList, gch->si->pDlg);
+ ppro->AdminGet(roomJid, JABBER_FEAT_MUC_ADMIN, "affiliation", "owner", &CJabberProto::OnIqResultMucGetOwnerList, pDlg);
break;
case IDM_AVATAR:
@@ -1226,11 +1224,10 @@ static void sttLogListHook(CJabberProto *ppro, JABBER_LIST_ITEM *item, GCHOOK *g break;
case IDM_INVITE:
- {
- auto *pDlg = new CGroupchatInviteDlg(ppro, roomJid);
- if (gch->si->pDlg)
- pDlg->SetParent(gch->si->pDlg->GetHwnd());
- pDlg->Show();
+ if (auto *pInviteDlg = new CGroupchatInviteDlg(ppro, roomJid)) {
+ if (pDlg)
+ pInviteDlg->SetParent(pDlg->GetHwnd());
+ pInviteDlg->Show();
}
break;
@@ -1246,9 +1243,14 @@ static void sttLogListHook(CJabberProto *ppro, JABBER_LIST_ITEM *item, GCHOOK *g item = ppro->ListGetItemPtr(LIST_CHATROOM, roomJid);
if (item != nullptr) {
replaceStr(item->type, "conference");
- MCONTACT hContact = ppro->HContactFromJID(item->jid);
- item->name = Clist_GetContactDisplayName(hContact);
- ppro->AddEditBookmark(item);
+ if (MCONTACT hContact = ppro->HContactFromJID(item->jid))
+ replaceStrW(item->name, Clist_GetContactDisplayName(hContact));
+ else {
+ ptrA szNick(JabberNickFromJID(roomJid));
+ if (szNick)
+ replaceStrW(item->name, Utf2T(szNick));
+ }
+ ppro->AddEditBookmark(item, pDlg ? pDlg->GetHwnd() : 0);
}
}
break;
|