diff options
Diffstat (limited to 'src/config')
-rw-r--r-- | src/config/preferences.c | 34 | ||||
-rw-r--r-- | src/config/preferences.h | 3 | ||||
-rw-r--r-- | src/config/theme.c | 7 |
3 files changed, 44 insertions, 0 deletions
diff --git a/src/config/preferences.c b/src/config/preferences.c index 958ed97c..3a261897 100644 --- a/src/config/preferences.c +++ b/src/config/preferences.c @@ -506,6 +506,40 @@ prefs_clear_roster_contact_char(void) _save_prefs(); } +char +prefs_get_roster_resource_char(void) +{ + char result = 0; + + char *resultstr = g_key_file_get_string(prefs, PREF_GROUP_UI, "roster.resource.char", NULL); + if (!resultstr) { + result = 0; + } else { + result = resultstr[0]; + } + free(resultstr); + + return result; +} + +void +prefs_set_roster_resource_char(char ch) +{ + char str[2]; + str[0] = ch; + str[1] = '\0'; + + g_key_file_set_string(prefs, PREF_GROUP_UI, "roster.resource.char", str); + _save_prefs(); +} + +void +prefs_clear_roster_resource_char(void) +{ + g_key_file_remove_key(prefs, PREF_GROUP_UI, "roster.resource.char", NULL); + _save_prefs(); +} + gint prefs_get_roster_contact_indent(void) { diff --git a/src/config/preferences.h b/src/config/preferences.h index b187cb0b..9139e3b4 100644 --- a/src/config/preferences.h +++ b/src/config/preferences.h @@ -172,6 +172,9 @@ void prefs_clear_roster_header_char(void); char prefs_get_roster_contact_char(void); void prefs_set_roster_contact_char(char ch); void prefs_clear_roster_contact_char(void); +char prefs_get_roster_resource_char(void); +void prefs_set_roster_resource_char(char ch); +void prefs_clear_roster_resource_char(void); gint prefs_get_roster_contact_indent(void); void prefs_set_roster_contact_indent(gint value); diff --git a/src/config/theme.c b/src/config/theme.c index 6175bd7a..d87acbc2 100644 --- a/src/config/theme.c +++ b/src/config/theme.c @@ -484,6 +484,13 @@ _load_preferences(void) g_free(ch); } } + if (g_key_file_has_key(theme, "ui", "roster.resource.char", NULL)) { + gchar *ch = g_key_file_get_string(theme, "ui", "roster.resource.char", NULL); + if (ch && strlen(ch) > 0) { + prefs_set_roster_resource_char(ch[0]); + g_free(ch); + } + } if (g_key_file_has_key(theme, "ui", "roster.contact.indent", NULL)) { gint contact_indent = g_key_file_get_integer(theme, "ui", "roster.contact.indent", NULL); prefs_set_roster_contact_indent(contact_indent); |