Show presence in roster WIP

This commit is contained in:
James Booth
2015-11-15 21:33:48 +00:00
parent c5ac0f1319
commit badbc3003f
5 changed files with 96 additions and 2 deletions

View File

@@ -274,8 +274,8 @@ static struct cmd_t command_defs[] =
CMD_SYN(
"/roster",
"/roster online",
"/roster show [offline|resource|empty]",
"/roster hide [offline|resource|empty]",
"/roster show [offline|resource|presence|status|empty]",
"/roster hide [offline|resource|presence|status|empty]",
"/roster by group|presence|none",
"/roster size <percent>",
"/roster add <jid> [<nick>]",
@@ -291,10 +291,14 @@ static struct cmd_t command_defs[] =
{ "show", "Show the roster panel." },
{ "show offline", "Show offline contacts in the roster panel." },
{ "show resource", "Show contact's connected resources in the roster panel." },
{ "show presence", "Show contact's presence in the roster panel." },
{ "show status", "Show contact's status message in the roster panel." },
{ "show empty", "When grouping by presence, show empty presence groups." },
{ "hide", "Hide the roster panel." },
{ "hide offline", "Hide offline contacts in the roster panel." },
{ "hide resource", "Hide contact's connected resources in the roster panel." },
{ "hide presence", "Hide contact's presence in the roster panel." },
{ "hide status", "Hide contact's status message in the roster panel." },
{ "hide empty", "When grouping by presence, hide empty presence groups." },
{ "by group", "Group contacts in the roster panel by roster group." },
{ "by presence", "Group contacts in the roster panel by presence." },
@@ -2015,6 +2019,8 @@ cmd_init(void)
roster_option_ac = autocomplete_new();
autocomplete_add(roster_option_ac, "offline");
autocomplete_add(roster_option_ac, "resource");
autocomplete_add(roster_option_ac, "presence");
autocomplete_add(roster_option_ac, "status");
autocomplete_add(roster_option_ac, "empty");
roster_by_ac = autocomplete_new();

View File

@@ -1773,6 +1773,20 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args)
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "presence") == 0) {
cons_show("Roster presence enabled");
prefs_set_boolean(PREF_ROSTER_PRESENCE, TRUE);
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "status") == 0) {
cons_show("Roster status enabled");
prefs_set_boolean(PREF_ROSTER_STATUS, TRUE);
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "empty") == 0) {
cons_show("Roster empty enabled");
prefs_set_boolean(PREF_ROSTER_EMPTY, TRUE);
@@ -1806,6 +1820,20 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args)
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "presence") == 0) {
cons_show("Roster presence disabled");
prefs_set_boolean(PREF_ROSTER_PRESENCE, FALSE);
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "status") == 0) {
cons_show("Roster status disabled");
prefs_set_boolean(PREF_ROSTER_STATUS, FALSE);
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "empty") == 0) {
cons_show("Roster empty disabled");
prefs_set_boolean(PREF_ROSTER_EMPTY, FALSE);