1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-01-03 14:57:42 -05:00

Show occupants role and affiliation when they join a room

This commit is contained in:
James Booth 2014-10-18 00:52:42 +01:00
parent 014f0f7a91
commit 9134a65e97
4 changed files with 15 additions and 7 deletions

View File

@ -1,4 +1,5 @@
Show occupants role and affiliation when they join room Show own role affilaition changes (including actor/reason)
Show occupants role and affiliation changes (including actor/reason)
Check all commands from private conversations Check all commands from private conversations
Test all freetext args Test all freetext args
Make form editing commands less verbose Make form editing commands less verbose

View File

@ -752,7 +752,7 @@ handle_muc_occupant_online(const char * const room, const char * const nick, con
if (!existing) { if (!existing) {
char *muc_status_pref = prefs_get_string(PREF_STATUSES_MUC); char *muc_status_pref = prefs_get_string(PREF_STATUSES_MUC);
if (g_strcmp0(muc_status_pref, "none") != 0) { if (g_strcmp0(muc_status_pref, "none") != 0) {
ui_room_member_online(room, nick, show, status); ui_room_member_online(room, nick, role, affiliation, show, status);
} }
prefs_free_string(muc_status_pref); prefs_free_string(muc_status_pref);
ui_muc_roster(room); ui_muc_roster(room);

View File

@ -1508,14 +1508,21 @@ _ui_room_member_banned(const char * const room, const char * const nick, const c
} }
static void static void
_ui_room_member_online(const char * const room, const char * const nick, _ui_room_member_online(const char * const room, const char * const nick, const char * const role,
const char * const show, const char * const status) const char * const affiliation, const char * const show, const char * const status)
{ {
ProfWin *window = wins_get_by_recipient(room); ProfWin *window = wins_get_by_recipient(room);
if (window == NULL) { if (window == NULL) {
log_error("Received online presence for room participant %s, but no window open for %s.", nick, room); log_error("Received online presence for room participant %s, but no window open for %s.", nick, room);
} else { } else {
win_save_vprint(window, '!', NULL, 0, COLOUR_ONLINE, "", "-> %s has joined the room.", nick); win_save_vprint(window, '!', NULL, NO_EOL, COLOUR_ONLINE, "", "-> %s has joined the room", nick);
if (role) {
win_save_vprint(window, '!', NULL, NO_DATE | NO_EOL, COLOUR_ONLINE, "", ", role: %s", role);
}
if (affiliation) {
win_save_vprint(window, '!', NULL, NO_DATE | NO_EOL, COLOUR_ONLINE, "", ", affiliation: %s", affiliation);
}
win_save_print(window, '!', NULL, NO_DATE, COLOUR_ROOMINFO, "", "");
} }
} }

View File

@ -158,8 +158,8 @@ void (*ui_leave_room)(const char * const room);
void (*ui_room_broadcast)(const char * const room_jid, void (*ui_room_broadcast)(const char * const room_jid,
const char * const message); const char * const message);
void (*ui_room_member_offline)(const char * const room, const char * const nick); void (*ui_room_member_offline)(const char * const room, const char * const nick);
void (*ui_room_member_online)(const char * const room, void (*ui_room_member_online)(const char * const room, const char * const nick, const char * const roles,
const char * const nick, const char * const show, const char * const status); const char * const affiliation, const char * const show, const char * const status);
void (*ui_room_member_nick_change)(const char * const room, void (*ui_room_member_nick_change)(const char * const room,
const char * const old_nick, const char * const nick); const char * const old_nick, const char * const nick);
void (*ui_room_nick_change)(const char * const room, const char * const nick); void (*ui_room_nick_change)(const char * const room, const char * const nick);