about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/command.c29
-rw-r--r--src/preferences.c13
-rw-r--r--src/preferences.h2
-rw-r--r--src/windows.c5
4 files changed, 49 insertions, 0 deletions
diff --git a/src/command.c b/src/command.c
index d4f1756d..475bb433 100644
--- a/src/command.c
+++ b/src/command.c
@@ -94,6 +94,7 @@ static gboolean _cmd_set_flash(const char * const inp, struct cmd_help_t help);
 static gboolean _cmd_set_showsplash(const char * const inp, struct cmd_help_t help);
 static gboolean _cmd_set_chlog(const char * const inp, struct cmd_help_t help);
 static gboolean _cmd_set_history(const char * const inp, struct cmd_help_t help);
+static gboolean _cmd_set_states(const char * const inp, struct cmd_help_t help);
 static gboolean _cmd_vercheck(const char * const inp, struct cmd_help_t help);
 static gboolean _cmd_away(const char * const inp, struct cmd_help_t help);
 static gboolean _cmd_online(const char * const inp, struct cmd_help_t help);
@@ -331,8 +332,26 @@ static struct cmd_t setting_commands[] =
           "to myfriend@chatserv.com, the following chat log will be created:",
           "",
           "    ~/.profanity/log/someuser_at_chatserv.com/myfriend_at_chatserv.com",
+          "",
+          "Config file section : [ui]",
+          "Config file value :   chlog=true|false",
+          NULL } } },
+
+    { "/states",
+        _cmd_set_states,
+        { "/states on|off", "Send chat states during a chat session.",
+        { "/states on|off",
+          "--------------",
+          "Sending of chat state notifications during chat sessions.",
+          "Enabling this will send information about your activity during a chat",
+          "session with somebody, such as whether you have become inactive, or",
+          "have close the chat window.",
+          "",
+          "Config file section : [ui]",
+          "Config file value :   states=true|false",
           NULL } } },
 
+
     { "/history",
         _cmd_set_history,
         { "/history on|off", "Chat history in message windows.",
@@ -343,6 +362,9 @@ static struct cmd_t setting_commands[] =
           "The last day of messages are shown, or if you have had profanity open",
           "for more than a day, messages will be shown from the day which",
           "you started profanity.",
+          "",
+          "Config file section : [ui]",
+          "Config file value :   history=true|false",
           NULL } } }
 };
 
@@ -1013,6 +1035,13 @@ _cmd_set_beep(const char * const inp, struct cmd_help_t help)
 }
 
 static gboolean
+_cmd_set_states(const char * const inp, struct cmd_help_t help)
+{
+    return _cmd_set_boolean_preference(inp, help, "/states",
+        "Sending chat states", prefs_set_states);
+}
+
+static gboolean
 _cmd_set_notify(const char * const inp, struct cmd_help_t help)
 {
     char *kind = NULL;
diff --git a/src/preferences.c b/src/preferences.c
index 78044fcc..b1e2f0a0 100644
--- a/src/preferences.c
+++ b/src/preferences.c
@@ -236,6 +236,19 @@ prefs_set_beep(gboolean value)
 }
 
 gboolean
+prefs_get_states(void)
+{
+    return g_key_file_get_boolean(prefs, "ui", "states", NULL);
+}
+
+void
+prefs_set_states(gboolean value)
+{
+    g_key_file_set_boolean(prefs, "ui", "states", value);
+    _save_prefs();
+}
+
+gboolean
 prefs_get_notify_typing(void)
 {
     return g_key_file_get_boolean(prefs, "notifications", "typing", NULL);
diff --git a/src/preferences.h b/src/preferences.h
index 6ccdf461..31f352cb 100644
--- a/src/preferences.h
+++ b/src/preferences.h
@@ -56,6 +56,8 @@ gboolean prefs_get_vercheck(void);
 void prefs_set_vercheck(gboolean value);
 gboolean prefs_get_intype(void);
 void prefs_set_intype(gboolean value);
+gboolean prefs_get_states(void);
+void prefs_set_states(gboolean value);
 
 void prefs_set_notify_message(gboolean value);
 gboolean prefs_get_notify_message(void);
diff --git a/src/windows.c b/src/windows.c
index 0d4c0b7c..5f3fad1e 100644
--- a/src/windows.c
+++ b/src/windows.c
@@ -552,6 +552,11 @@ cons_prefs(void)
     else
         cons_show("Chat logging                 : OFF");
 
+    if (prefs_get_states())
+        cons_show("Send chat states             : ON");
+    else
+        cons_show("Send chat states             : OFF");
+
     if (prefs_get_history())
         cons_show("Chat history                 : ON");
     else