diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 2118c44d..aa31c3af 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -4382,17 +4382,7 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args) prefs_set_occupants_indent(intval); cons_show("Occupants indent set to: %d", intval); - // get the list of joined rooms - GList *rooms = muc_rooms(); - GList *curr = rooms; - while (curr) { - char* roomjid = curr->data; - ProfMucWin *mw = wins_get_muc(roomjid); - if (mw != NULL) - mucwin_update_occupants(mw); - - curr = g_list_next(curr); - } + occupantswin_occupants_all(); } else { cons_show(err_msg); free(err_msg); @@ -4434,34 +4424,13 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args) } else if (g_strcmp0(args[2], "none") == 0) { prefs_clear_occupants_header_char(); cons_show("Occupants header char removed."); - // get the list of joined rooms - GList *rooms = muc_rooms(); - GList *curr = rooms; - while (curr) { - char* roomjid = curr->data; - ProfMucWin *mw = wins_get_muc(roomjid); - if (mw != NULL) - mucwin_update_occupants(mw); - - curr = g_list_next(curr); - } + occupantswin_occupants_all(); } else { prefs_set_occupants_header_char(args[2][0]); cons_show("Occupants header char set to %c.", args[2][0]); - //TODO:func like rosterwin_roster(); - // get the list of joined rooms - GList *rooms = muc_rooms(); - GList *curr = rooms; - while (curr) { - char* roomjid = curr->data; - ProfMucWin *mw = wins_get_muc(roomjid); - if (mw != NULL) - mucwin_update_occupants(mw); - - curr = g_list_next(curr); - } + occupantswin_occupants_all(); } } else { cons_bad_cmd_usage(command); diff --git a/src/ui/occupantswin.c b/src/ui/occupantswin.c index b924ea7c..2566f57f 100644 --- a/src/ui/occupantswin.c +++ b/src/ui/occupantswin.c @@ -169,3 +169,20 @@ occupantswin_occupants(const char *const roomjid) g_list_free(occupants); } } + +void +occupantswin_occupants_all(void) +{ + GList *rooms = muc_rooms(); + GList *curr = rooms; + + while (curr) { + char* roomjid = curr->data; + ProfMucWin *mw = wins_get_muc(roomjid); + if (mw != NULL) { + mucwin_update_occupants(mw); + } + + curr = g_list_next(curr); + } +} diff --git a/src/ui/ui.h b/src/ui/ui.h index 350a11bb..b80e5630 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -344,6 +344,7 @@ void rosterwin_roster(void); // occupants window void occupantswin_occupants(const char *const room); +void occupantswin_occupants_all(void); // window interface ProfWin* win_create_console(void);