diff options
author | James Booth <boothj5@gmail.com> | 2016-01-24 01:04:21 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2016-01-24 01:04:21 +0000 |
commit | 6d8a3e2020067a9a322b27a311e83a892f79962e (patch) | |
tree | 74b39432e8257b1a5ee05352ae0ba327c17c40e2 /src/command | |
parent | 67abfaa21e02ae17baf212d65a5e6a999929633a (diff) | |
download | profani-tty-6d8a3e2020067a9a322b27a311e83a892f79962e.tar.gz |
Added /roster private command
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/command.c | 17 | ||||
-rw-r--r-- | src/command/commands.c | 27 |
2 files changed, 44 insertions, 0 deletions
diff --git a/src/command/command.c b/src/command/command.c index f1e70f12..37787c56 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -286,6 +286,7 @@ static struct cmd_t command_defs[] = "/roster room position first|last", "/roster room order name|unread", "/roster room unread before|after|off", + "/roster private room|group|off", "/roster header char <char>|none", "/roster presence indent <indent>", "/roster contact char <char>|none", @@ -340,6 +341,9 @@ static struct cmd_t command_defs[] = { "room unread before", "Show unread message count before room in roster." }, { "room unread after", "Show unread message count after room in roster." }, { "room unread off", "Do not show unread message count for rooms in roster." }, + { "room private room", "Show room private chats below the room in the roster." }, + { "room private group", "Show room private chats as a separate roster group." }, + { "room private off", "Do not show room private chats in the roster." }, { "header char <char>", "Prefix roster headers with specified character." }, { "header char none", "Remove roster header character prefix." }, { "contact char <char>", "Prefix roster contacts with specified character." }, @@ -1931,6 +1935,7 @@ static Autocomplete roster_room_ac; static Autocomplete roster_room_position_ac; static Autocomplete roster_room_order_ac; static Autocomplete roster_unread_ac; +static Autocomplete roster_private_ac; static Autocomplete group_ac; static Autocomplete bookmark_ac; static Autocomplete bookmark_property_ac; @@ -2198,6 +2203,12 @@ cmd_init(void) autocomplete_add(roster_ac, "contact"); autocomplete_add(roster_ac, "resource"); autocomplete_add(roster_ac, "presence"); + autocomplete_add(roster_ac, "private"); + + roster_private_ac = autocomplete_new(); + autocomplete_add(roster_private_ac, "room"); + autocomplete_add(roster_private_ac, "group"); + autocomplete_add(roster_private_ac, "off"); roster_header_ac = autocomplete_new(); autocomplete_add(roster_header_ac, "char"); @@ -2532,6 +2543,7 @@ cmd_uninit(void) autocomplete_free(roster_room_position_ac); autocomplete_free(roster_room_order_ac); autocomplete_free(roster_remove_all_ac); + autocomplete_free(roster_private_ac); autocomplete_free(group_ac); autocomplete_free(bookmark_ac); autocomplete_free(bookmark_property_ac); @@ -2744,6 +2756,7 @@ cmd_reset_autocomplete(ProfWin *window) autocomplete_reset(roster_room_position_ac); autocomplete_reset(roster_room_order_ac); autocomplete_reset(roster_remove_all_ac); + autocomplete_reset(roster_private_ac); autocomplete_reset(group_ac); autocomplete_reset(titlebar_ac); autocomplete_reset(bookmark_ac); @@ -3228,6 +3241,10 @@ _roster_autocomplete(ProfWin *window, const char *const input) if (result) { return result; } + result = autocomplete_param_with_ac(input, "/roster private", roster_private_ac, TRUE); + if (result) { + return result; + } result = autocomplete_param_with_ac(input, "/roster", roster_ac, TRUE); if (result) { return result; diff --git a/src/command/commands.c b/src/command/commands.c index 933c65bd..2356b17b 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -2408,6 +2408,33 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) return TRUE; } + } else if (g_strcmp0(args[0], "private") == 0) { + if (g_strcmp0(args[1], "room") == 0) { + cons_show("Showing room private chats under room."); + prefs_set_string(PREF_ROSTER_PRIVATE, "room"); + if (conn_status == JABBER_CONNECTED) { + rosterwin_roster(); + } + return TRUE; + } else if (g_strcmp0(args[1], "group") == 0) { + cons_show("Showing room private chats as roster group."); + prefs_set_string(PREF_ROSTER_PRIVATE, "group"); + if (conn_status == JABBER_CONNECTED) { + rosterwin_roster(); + } + return TRUE; + } else if (g_strcmp0(args[1], "off") == 0) { + cons_show("Hiding room private chats in roster."); + prefs_set_string(PREF_ROSTER_PRIVATE, "off"); + if (conn_status == JABBER_CONNECTED) { + rosterwin_roster(); + } + return TRUE; + } else { + cons_bad_cmd_usage(command); + return TRUE; + } + } else if (g_strcmp0(args[0], "room") == 0) { if (g_strcmp0(args[1], "position") == 0) { if (g_strcmp0(args[2], "first") == 0) { |