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 | 10 |
3 files changed, 47 insertions, 0 deletions
diff --git a/src/config/preferences.c b/src/config/preferences.c index 30cd34c2..adc15dda 100644 --- a/src/config/preferences.c +++ b/src/config/preferences.c @@ -772,6 +772,40 @@ prefs_set_occupants_indent(gint value) _save_prefs(); } +char +prefs_get_occupants_header_char(void) +{ + char result = 0; + + char *resultstr = g_key_file_get_string(prefs, PREF_GROUP_UI, "occupants.header.char", NULL); + if (!resultstr) { + result = 0; + } else { + result = resultstr[0]; + } + free(resultstr); + + return result; +} + +void +prefs_set_occupants_header_char(char ch) +{ + char str[2]; + str[0] = ch; + str[1] = '\0'; + + g_key_file_set_string(prefs, PREF_GROUP_UI, "occupants.header.char", str); + _save_prefs(); +} + +void +prefs_clear_occupants_header_char(void) +{ + g_key_file_remove_key(prefs, PREF_GROUP_UI, "occupants.header.char", NULL); + _save_prefs(); +} + void prefs_set_roster_size(gint value) { diff --git a/src/config/preferences.h b/src/config/preferences.h index bfd7b3ec..6e6cfeb3 100644 --- a/src/config/preferences.h +++ b/src/config/preferences.h @@ -239,6 +239,9 @@ void prefs_clear_roster_room_char(void); char prefs_get_roster_room_private_char(void); void prefs_set_roster_room_private_char(char ch); void prefs_clear_roster_room_private_char(void); +char prefs_get_occupants_header_char(void); +void prefs_set_occupants_header_char(char ch); +void prefs_clear_occupants_header_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 4e385ead..f92ab241 100644 --- a/src/config/theme.c +++ b/src/config/theme.c @@ -457,6 +457,16 @@ _load_preferences(void) prefs_set_occupants_indent(occupants_indent); } + if (g_key_file_has_key(theme, "ui", "occupants.header.char", NULL)) { + gchar *ch = g_key_file_get_string(theme, "ui", "occupants.header.char", NULL); + if (ch && strlen(ch) > 0) { + prefs_set_occupants_header_char(ch[0]); + g_free(ch); + } + } else { + prefs_clear_occupants_header_char(); + } + if (g_key_file_has_key(theme, "ui", "roster.size", NULL)) { gint roster_size = g_key_file_get_integer(theme, "ui", "roster.size", NULL); prefs_set_roster_size(roster_size); |