diff --git a/command.c b/command.c index 743ec5ae..f9b70e1f 100644 --- a/command.c +++ b/command.c @@ -44,6 +44,7 @@ static gboolean _cmd_msg(const char * const inp); static gboolean _cmd_close(const char * const inp); static gboolean _cmd_set_beep(const char * const inp); static gboolean _cmd_set_flash(const char * const inp); +static gboolean _cmd_set_showsplash(const char * const inp); static gboolean _cmd_away(const char * const inp); static gboolean _cmd_online(const char * const inp); static gboolean _cmd_dnd(const char * const inp); @@ -107,6 +108,8 @@ static gboolean _handle_command(const char * const command, const char * const i result = _cmd_set_beep(inp); } else if (strcmp(command, "/flash") == 0) { result = _cmd_set_flash(inp); + } else if (strcmp(command, "/showsplash") == 0) { + result = _cmd_set_showsplash(inp); } else if (strcmp(command, "/away") == 0) { result = _cmd_away(inp); } else if (strcmp(command, "/online") == 0) { @@ -267,6 +270,21 @@ static gboolean _cmd_set_flash(const char * const inp) return TRUE; } +static gboolean _cmd_set_showsplash(const char * const inp) +{ + if (strcmp(inp, "/showsplash on") == 0) { + cons_show("Splash screen enabled."); + prefs_set_showsplash(TRUE); + } else if (strcmp(inp, "/showsplash off") == 0) { + cons_show("Splash screen disabled."); + prefs_set_showsplash(FALSE); + } else { + cons_show("Usage: /showsplash "); + } + + return TRUE; +} + static gboolean _cmd_away(const char * const inp) { _update_presence(PRESENCE_AWAY, "away", inp); diff --git a/preferences.c b/preferences.c index c5710a1e..46e511eb 100644 --- a/preferences.c +++ b/preferences.c @@ -129,6 +129,17 @@ void prefs_add_login(const char *jid) } } +gboolean prefs_get_showsplash(void) +{ + return g_key_file_get_boolean(prefs, "ui", "showsplash", NULL); +} + +void prefs_set_showsplash(gboolean value) +{ + g_key_file_set_boolean(prefs, "ui", "showsplash", value); + _save_prefs(); +} + static void _save_prefs(void) { gsize g_data_size; diff --git a/preferences.h b/preferences.h index 8f2cfadc..2785a32e 100644 --- a/preferences.h +++ b/preferences.h @@ -35,5 +35,7 @@ void prefs_set_beep(gboolean value); gboolean prefs_get_flash(void); void prefs_set_flash(gboolean value); void prefs_add_login(const char *jid); +gboolean prefs_get_showsplash(void); +void prefs_set_showsplash(gboolean value); #endif