about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--command.c18
-rw-r--r--preferences.c11
-rw-r--r--preferences.h2
3 files changed, 31 insertions, 0 deletions
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 <on/off>");
+    }
+
+    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