diff options
author | James Booth <boothj5@gmail.com> | 2016-01-17 01:49:16 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2016-01-17 01:49:16 +0000 |
commit | e58be44f8185a0fbb43a3ee902acf21c89b158b6 (patch) | |
tree | e346d021c16caa12b2b7bed645926ad4f3adfbad /src/command | |
parent | 56751e896bf60e1305d99ed9f827279ac9cc25d3 (diff) | |
download | profani-tty-e58be44f8185a0fbb43a3ee902acf21c89b158b6.tar.gz |
Added /roster room unread preference
closes ##708
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/command.c | 17 | ||||
-rw-r--r-- | src/command/commands.c | 26 |
2 files changed, 43 insertions, 0 deletions
diff --git a/src/command/command.c b/src/command/command.c index 681e4ff7..b6c00803 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -283,6 +283,7 @@ static struct cmd_t command_defs[] = "/roster by group|presence|none", "/roster order name|presence", "/roster room order name|unread", + "/roster room unread before|after|off", "/roster header char <char>|none", "/roster presence indent <indent>", "/roster contact char <char>|none", @@ -327,6 +328,9 @@ static struct cmd_t command_defs[] = { "order presence", "Order roster items by presence, and then by name." }, { "room order name", "Order roster rooms by name." }, { "room order unread", "Order roster rooms by unread messages, and then by name." }, + { "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 rosters." }, { "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." }, @@ -1911,6 +1915,7 @@ static Autocomplete roster_char_ac; static Autocomplete roster_remove_all_ac; static Autocomplete roster_room_ac; static Autocomplete roster_room_order_ac; +static Autocomplete roster_unread_ac; static Autocomplete group_ac; static Autocomplete bookmark_ac; static Autocomplete bookmark_property_ac; @@ -2212,8 +2217,14 @@ cmd_init(void) autocomplete_add(roster_order_ac, "name"); autocomplete_add(roster_order_ac, "presence"); + roster_unread_ac = autocomplete_new(); + autocomplete_add(roster_unread_ac, "before"); + autocomplete_add(roster_unread_ac, "after"); + autocomplete_add(roster_unread_ac, "off"); + roster_room_ac = autocomplete_new(); autocomplete_add(roster_room_ac, "order"); + autocomplete_add(roster_room_ac, "unread"); roster_room_order_ac = autocomplete_new(); autocomplete_add(roster_room_order_ac, "name"); @@ -2492,6 +2503,7 @@ cmd_uninit(void) autocomplete_free(roster_by_ac); autocomplete_free(roster_order_ac); autocomplete_free(roster_room_ac); + autocomplete_free(roster_unread_ac); autocomplete_free(roster_room_order_ac); autocomplete_free(roster_remove_all_ac); autocomplete_free(group_ac); @@ -2702,6 +2714,7 @@ cmd_reset_autocomplete(ProfWin *window) autocomplete_reset(roster_by_ac); autocomplete_reset(roster_order_ac); autocomplete_reset(roster_room_ac); + autocomplete_reset(roster_unread_ac); autocomplete_reset(roster_room_order_ac); autocomplete_reset(roster_remove_all_ac); autocomplete_reset(group_ac); @@ -3115,6 +3128,10 @@ _roster_autocomplete(ProfWin *window, const char *const input) if (result) { return result; } + result = autocomplete_param_with_ac(input, "/roster room unread", roster_unread_ac, TRUE); + if (result) { + return result; + } jabber_conn_status_t conn_status = jabber_get_connection_status(); if (conn_status == JABBER_CONNECTED) { diff --git a/src/command/commands.c b/src/command/commands.c index 7b6fef6d..3ad79778 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -2330,6 +2330,32 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args) cons_bad_cmd_usage(command); return TRUE; } + } else if (g_strcmp0(args[1], "unread") == 0) { + if (g_strcmp0(args[2], "before") == 0) { + cons_show("Roster rooms unread message count: before"); + prefs_set_string(PREF_ROSTER_ROOMS_UNREAD, "before"); + if (conn_status == JABBER_CONNECTED) { + rosterwin_roster(); + } + return TRUE; + } else if (g_strcmp0(args[2], "after") == 0) { + cons_show("Roster rooms unread message count: after"); + prefs_set_string(PREF_ROSTER_ROOMS_UNREAD, "after"); + if (conn_status == JABBER_CONNECTED) { + rosterwin_roster(); + } + return TRUE; + } else if (g_strcmp0(args[2], "off") == 0) { + cons_show("Roster rooms unread message count: off"); + prefs_set_string(PREF_ROSTER_ROOMS_UNREAD, "off"); + if (conn_status == JABBER_CONNECTED) { + rosterwin_roster(); + } + return TRUE; + } else { + cons_bad_cmd_usage(command); + return TRUE; + } } else { cons_bad_cmd_usage(command); return TRUE; |