1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-10-13 20:13:38 -04:00

Store /roster count setting

This commit is contained in:
James Booth 2016-01-27 23:02:28 +00:00
parent dbc52de043
commit d4f1384b85
6 changed files with 58 additions and 22 deletions

View File

@ -2250,7 +2250,6 @@ cmd_init(void)
autocomplete_add(roster_show_ac, "presence");
autocomplete_add(roster_show_ac, "status");
autocomplete_add(roster_show_ac, "empty");
autocomplete_add(roster_show_ac, "count");
autocomplete_add(roster_show_ac, "priority");
autocomplete_add(roster_show_ac, "contacts");
autocomplete_add(roster_show_ac, "rooms");

View File

@ -2224,13 +2224,6 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args)
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "count") == 0) {
cons_show("Roster count enabled");
prefs_set_boolean(PREF_ROSTER_COUNT, TRUE);
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "priority") == 0) {
cons_show("Roster priority enabled");
prefs_set_boolean(PREF_ROSTER_PRIORITY, TRUE);
@ -2299,13 +2292,6 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args)
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "count") == 0) {
cons_show("Roster count disabled");
prefs_set_boolean(PREF_ROSTER_COUNT, FALSE);
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "priority") == 0) {
cons_show("Roster priority disabled");
prefs_set_boolean(PREF_ROSTER_PRIORITY, FALSE);
@ -2381,6 +2367,41 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args)
return TRUE;
}
} else if (g_strcmp0(args[0], "count") == 0) {
if (g_strcmp0(args[1], "zero") == 0) {
gboolean result = _cmd_set_boolean_preference(args[2], command, "Roster header zero count", PREF_ROSTER_COUNT_ZERO);
if (result) {
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
}
return result;
} else if (g_strcmp0(args[1], "unread") == 0) {
cons_show("Roster header count set to unread");
prefs_set_string(PREF_ROSTER_COUNT, "unread");
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "items") == 0) {
cons_show("Roster header count set to items");
prefs_set_string(PREF_ROSTER_COUNT, "items");
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else if (g_strcmp0(args[1], "off") == 0) {
cons_show("Disabling roster header count");
prefs_set_string(PREF_ROSTER_COUNT, "off");
if (conn_status == JABBER_CONNECTED) {
rosterwin_roster();
}
return TRUE;
} else {
cons_bad_cmd_usage(command);
return TRUE;
}
} else if (g_strcmp0(args[0], "unread") == 0) {
if (g_strcmp0(args[1], "before") == 0) {
cons_show("Roster unread message count: before");

View File

@ -1112,6 +1112,7 @@ _get_group(preference_t pref)
case PREF_ROSTER_ORDER:
case PREF_ROSTER_UNREAD:
case PREF_ROSTER_COUNT:
case PREF_ROSTER_COUNT_ZERO:
case PREF_ROSTER_PRIORITY:
case PREF_ROSTER_WRAP:
case PREF_ROSTER_RESOURCE_JOIN:
@ -1311,6 +1312,8 @@ _get_key(preference_t pref)
return "roster.unread";
case PREF_ROSTER_COUNT:
return "roster.count";
case PREF_ROSTER_COUNT_ZERO:
return "roster.count.zero";
case PREF_ROSTER_PRIORITY:
return "roster.priority";
case PREF_ROSTER_WRAP:
@ -1383,7 +1386,7 @@ _get_default_boolean(preference_t pref)
case PREF_ROSTER:
case PREF_ROSTER_OFFLINE:
case PREF_ROSTER_EMPTY:
case PREF_ROSTER_COUNT:
case PREF_ROSTER_COUNT_ZERO:
case PREF_ROSTER_PRIORITY:
case PREF_ROSTER_RESOURCE_JOIN:
case PREF_ROSTER_CONTACTS:
@ -1415,6 +1418,8 @@ _get_default_string(preference_t pref)
return "all";
case PREF_ROSTER_BY:
return "presence";
case PREF_ROSTER_COUNT:
return "unread";
case PREF_ROSTER_ORDER:
return "presence";
case PREF_ROSTER_UNREAD:

View File

@ -71,6 +71,7 @@ typedef enum {
PREF_ROSTER_ORDER,
PREF_ROSTER_UNREAD,
PREF_ROSTER_COUNT,
PREF_ROSTER_COUNT_ZERO,
PREF_ROSTER_PRIORITY,
PREF_ROSTER_WRAP,
PREF_ROSTER_RESOURCE_JOIN,

View File

@ -388,7 +388,7 @@ _load_preferences(void)
_set_boolean_preference("roster.status", PREF_ROSTER_STATUS);
_set_boolean_preference("roster.empty", PREF_ROSTER_EMPTY);
_set_boolean_preference("roster.wrap", PREF_ROSTER_WRAP);
_set_boolean_preference("roster.count", PREF_ROSTER_COUNT);
_set_boolean_preference("roster.count.zero", PREF_ROSTER_COUNT_ZERO);
_set_boolean_preference("roster.priority", PREF_ROSTER_PRIORITY);
_set_boolean_preference("roster.contacts", PREF_ROSTER_CONTACTS);
_set_boolean_preference("roster.rooms", PREF_ROSTER_ROOMS);
@ -417,6 +417,8 @@ _load_preferences(void)
_set_string_preference("roster.rooms.unread", PREF_ROSTER_ROOMS_UNREAD);
_set_string_preference("roster.rooms.pos", PREF_ROSTER_ROOMS_POS);
_set_string_preference("roster.private", PREF_ROSTER_PRIVATE);
_set_string_preference("roster.count", PREF_ROSTER_COUNT);
if (g_key_file_has_key(theme, "ui", "occupants.size", NULL)) {
gint occupants_size = g_key_file_get_integer(theme, "ui", "occupants.size", NULL);

View File

@ -1370,11 +1370,6 @@ cons_roster_setting(void)
else
cons_show("Roster empty (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_COUNT))
cons_show("Roster count (/roster) : show");
else
cons_show("Roster count (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_PRIORITY))
cons_show("Roster priority (/roster) : show");
else
@ -1385,6 +1380,19 @@ cons_roster_setting(void)
else
cons_show("Roster contacts (/roster) : hide");
char *count = prefs_get_string(PREF_ROSTER_COUNT);
if (g_strcmp0(count, "off") == 0) {
cons_show("Roster count (/roster) : OFF");
} else {
cons_show("Roster count (/roster) : %s", count);
}
prefs_free_string(count);
if (prefs_get_boolean(PREF_ROSTER_COUNT_ZERO))
cons_show("Roster count zero (/roster) : ON");
else
cons_show("Roster count zero (/roster) : OFF");
char *by = prefs_get_string(PREF_ROSTER_BY);
cons_show("Roster by (/roster) : %s", by);
prefs_free_string(by);