diff options
author | James Booth <boothj5@gmail.com> | 2015-04-12 02:16:13 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-04-12 02:16:13 +0100 |
commit | bcfbbac49a0b031a16f61204955861fd2f7c6db8 (patch) | |
tree | bc49794e02bcbbd0e07292d6f4fe7dc14744b253 /src/command | |
parent | 7ba7e098fead9e7a9a72090e30bc64d9a12e87ee (diff) | |
parent | 57dc5f14efec19c9532c2ec9a8742e90e4c964d2 (diff) | |
download | profani-tty-bcfbbac49a0b031a16f61204955861fd2f7c6db8.tar.gz |
Merge branch 'master' into pgp
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/command.c | 45 | ||||
-rw-r--r-- | src/command/commands.c | 34 |
2 files changed, 64 insertions, 15 deletions
diff --git a/src/command/command.c b/src/command/command.c index ab59e2a0..519550a3 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -451,16 +451,19 @@ static struct cmd_t command_defs[] = NULL } } }, { "/occupants", - cmd_occupants, parse_args, 1, 2, cons_occupants_setting, - { "/occupants show|hide|default|size [show|hide] [percent]", "Show or hide room occupants.", - { "/occupants show|hide|default|size [show|hide] [percent]", - "-------------------------------------------------------", + cmd_occupants, parse_args, 1, 3, cons_occupants_setting, + { "/occupants show|hide|default|size [jid|show|hide|percent] [jid]", "Show or hide room occupants.", + { "/occupants show|hide|default|size [jid|show|hide|percent] [jid]", + "---------------------------------------------------------------", "Show or hide room occupants, and occupants panel display settings.", "", - "show : Show the occupants panel in chat rooms.", - "hide : Hide the occupants panel in chat rooms.", - "default show|hide : Whether occupants are shown by default in new rooms, 'show' or 'hide'", - "size percent : Percentage of the screen taken by the occupants list in rooms (1-99).", + "show : Show the occupants panel in current room.", + "hide : Hide the occupants panel in current room.", + "show jid : Show jid in the occupants panel in current room.", + "hide jid : Hide jid in the occupants panel in current room.", + "default show|hide : Whether occupants are shown by default in new rooms.", + "default show|hide jid : Whether occupants jids are shown by default in new rooms.", + "size percent : Percentage of the screen taken by the occupants list in rooms (1-99).", NULL } } }, { "/form", @@ -1208,6 +1211,7 @@ static Autocomplete form_ac; static Autocomplete form_field_multi_ac; static Autocomplete occupants_ac; static Autocomplete occupants_default_ac; +static Autocomplete occupants_show_ac; static Autocomplete time_ac; static Autocomplete time_statusbar_ac; static Autocomplete resource_ac; @@ -1553,6 +1557,9 @@ cmd_init(void) autocomplete_add(occupants_default_ac, "show"); autocomplete_add(occupants_default_ac, "hide"); + occupants_show_ac = autocomplete_new(); + autocomplete_add(occupants_show_ac, "jid"); + time_ac = autocomplete_new(); autocomplete_add(time_ac, "minutes"); autocomplete_add(time_ac, "seconds"); @@ -1635,6 +1642,7 @@ cmd_uninit(void) autocomplete_free(form_field_multi_ac); autocomplete_free(occupants_ac); autocomplete_free(occupants_default_ac); + autocomplete_free(occupants_show_ac); autocomplete_free(time_ac); autocomplete_free(time_statusbar_ac); autocomplete_free(resource_ac); @@ -1803,6 +1811,7 @@ cmd_reset_autocomplete() autocomplete_reset(form_field_multi_ac); autocomplete_reset(occupants_ac); autocomplete_reset(occupants_default_ac); + autocomplete_reset(occupants_show_ac); autocomplete_reset(time_ac); autocomplete_reset(time_statusbar_ac); autocomplete_reset(resource_ac); @@ -2653,11 +2662,31 @@ _occupants_autocomplete(const char * const input) { char *found = NULL; + found = autocomplete_param_with_ac(input, "/occupants default show", occupants_show_ac, TRUE); + if (found != NULL) { + return found; + } + + found = autocomplete_param_with_ac(input, "/occupants default hide", occupants_show_ac, TRUE); + if (found != NULL) { + return found; + } + found = autocomplete_param_with_ac(input, "/occupants default", occupants_default_ac, TRUE); if (found != NULL) { return found; } + found = autocomplete_param_with_ac(input, "/occupants show", occupants_show_ac, TRUE); + if (found != NULL) { + return found; + } + + found = autocomplete_param_with_ac(input, "/occupants hide", occupants_show_ac, TRUE); + if (found != NULL) { + return found; + } + found = autocomplete_param_with_ac(input, "/occupants", occupants_ac, TRUE); if (found != NULL) { return found; diff --git a/src/command/commands.c b/src/command/commands.c index 5cd9c347..049e9893 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -2866,12 +2866,22 @@ cmd_occupants(gchar **args, struct cmd_help_t help) if (g_strcmp0(args[0], "default") == 0) { if (g_strcmp0(args[1], "show") == 0) { - cons_show("Occupant list enabled."); - prefs_set_boolean(PREF_OCCUPANTS, TRUE); + if (g_strcmp0(args[2], "jid") == 0) { + cons_show("Occupant jids enabled."); + prefs_set_boolean(PREF_OCCUPANTS_JID, TRUE); + } else { + cons_show("Occupant list enabled."); + prefs_set_boolean(PREF_OCCUPANTS, TRUE); + } return TRUE; } else if (g_strcmp0(args[1], "hide") == 0) { - cons_show("Occupant list disabled."); - prefs_set_boolean(PREF_OCCUPANTS, FALSE); + if (g_strcmp0(args[2], "jid") == 0) { + cons_show("Occupant jids disabled."); + prefs_set_boolean(PREF_OCCUPANTS_JID, FALSE); + } else { + cons_show("Occupant list disabled."); + prefs_set_boolean(PREF_OCCUPANTS, FALSE); + } return TRUE; } else { cons_show("Usage: %s", help.usage); @@ -2881,16 +2891,26 @@ cmd_occupants(gchar **args, struct cmd_help_t help) win_type_t win_type = ui_current_win_type(); if (win_type != WIN_MUC) { - cons_show("Cannot show/hide occupant list when not in chat room."); + cons_show("Cannot apply setting when not in chat room."); return TRUE; } ProfMucWin *mucwin = wins_get_current_muc(); if (g_strcmp0(args[0], "show") == 0) { - ui_room_show_occupants(mucwin->roomjid); + if (g_strcmp0(args[1], "jid") == 0) { + mucwin->showjid = TRUE; + ui_room_update_occupants(mucwin->roomjid); + } else { + ui_room_show_occupants(mucwin->roomjid); + } } else if (g_strcmp0(args[0], "hide") == 0) { - ui_room_hide_occupants(mucwin->roomjid); + if (g_strcmp0(args[1], "jid") == 0) { + mucwin->showjid = FALSE; + ui_room_update_occupants(mucwin->roomjid); + } else { + ui_room_hide_occupants(mucwin->roomjid); + } } else { cons_show("Usage: %s", help.usage); } |