about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-10-14 00:46:16 +0100
committerJames Booth <boothj5@gmail.com>2015-10-14 00:48:11 +0100
commitef832ce5263cd90ec0458264769f40fad85b877c (patch)
tree53336401cd71da84601cfc7b034b7f21d30aa346
parentc9165ef9d20d1cc96f7edada2a875bc4835b63fb (diff)
downloadprofani-tty-ef832ce5263cd90ec0458264769f40fad85b877c.tar.gz
Add preference for showing TLS indicator in titlebar
Issue #616
-rw-r--r--src/command/command.c12
-rw-r--r--src/command/commands.c2
-rw-r--r--src/config/preferences.c4
-rw-r--r--src/config/preferences.h1
-rw-r--r--src/config/theme.c1
-rw-r--r--src/ui/titlebar.c2
6 files changed, 19 insertions, 3 deletions
diff --git a/src/command/command.c b/src/command/command.c
index f1432d90..e6e518fe 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -200,7 +200,8 @@ static struct cmd_t command_defs[] =
             "/tls revoke <fingerprint>",
             "/tls certpath",
             "/tls certpath set <path>",
-            "/tls certpath clear")
+            "/tls certpath clear",
+            "/tls show on|off")
         CMD_DESC(
             "Handle TLS certificates. ")
         CMD_ARGS(
@@ -211,7 +212,8 @@ static struct cmd_t command_defs[] =
             { "revoke <fingerprint>", "Remove a manually trusted certificate." },
             { "certpath",             "Show the trusted certificate path." },
             { "certpath set <path>",  "Specify filesystem path containing trusted certificates." },
-            { "certpath clear",       "Clear the trusted certificate path." })
+            { "certpath clear",       "Clear the trusted certificate path." },
+            { "show on|off",          "Show or hide the TLS indicator in the titlebar." })
         CMD_NOEXAMPLES
     },
 
@@ -2158,6 +2160,7 @@ cmd_init(void)
     autocomplete_add(tls_ac, "trusted");
     autocomplete_add(tls_ac, "revoke");
     autocomplete_add(tls_ac, "certpath");
+    autocomplete_add(tls_ac, "show");
 
     tls_certpath_ac = autocomplete_new();
     autocomplete_add(tls_certpath_ac, "set");
@@ -3628,6 +3631,11 @@ _tls_autocomplete(ProfWin *window, const char * const input)
         return result;
     }
 
+    result = autocomplete_param_with_func(input, "/tls show", prefs_autocomplete_boolean_choice);
+    if (result) {
+        return result;
+    }
+
     result = autocomplete_param_with_ac(input, "/tls", tls_ac, TRUE);
     if (result) {
         return result;
diff --git a/src/command/commands.c b/src/command/commands.c
index c34c7cc3..94e768db 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -237,6 +237,8 @@ cmd_tls(ProfWin *window, const char * const command, gchar **args)
             }
         }
         return TRUE;
+    } else if (g_strcmp0(args[0], "show") == 0) {
+        return _cmd_set_boolean_preference(args[1], command, "TLS titlebar indicator", PREF_TLS_SHOW);
     } else {
         cons_bad_cmd_usage(command);
         return TRUE;
diff --git a/src/config/preferences.c b/src/config/preferences.c
index 527ed302..9aaa9083 100644
--- a/src/config/preferences.c
+++ b/src/config/preferences.c
@@ -602,6 +602,7 @@ _get_group(preference_t pref)
         case PREF_RESOURCE_MESSAGE:
         case PREF_ENC_WARN:
         case PREF_INPBLOCK_DYNAMIC:
+        case PREF_TLS_SHOW:
             return PREF_GROUP_UI;
         case PREF_STATES:
         case PREF_OUTTYPE:
@@ -781,6 +782,8 @@ _get_key(preference_t pref)
             return "log";
         case PREF_CERT_PATH:
             return "certpath";
+        case PREF_TLS_SHOW:
+            return "tls.show";
         default:
             return NULL;
     }
@@ -817,6 +820,7 @@ _get_default_boolean(preference_t pref)
         case PREF_ROSTER_OFFLINE:
         case PREF_ROSTER_RESOURCE:
         case PREF_ROSTER_EMPTY:
+        case PREF_TLS_SHOW:
             return TRUE;
         default:
             return FALSE;
diff --git a/src/config/preferences.h b/src/config/preferences.h
index 770e379e..a0b3c06e 100644
--- a/src/config/preferences.h
+++ b/src/config/preferences.h
@@ -112,6 +112,7 @@ typedef enum {
     PREF_ENC_WARN,
     PREF_PGP_LOG,
     PREF_CERT_PATH,
+    PREF_TLS_SHOW,
 } preference_t;
 
 typedef struct prof_alias_t {
diff --git a/src/config/theme.c b/src/config/theme.c
index e840fab5..0c9a39b7 100644
--- a/src/config/theme.c
+++ b/src/config/theme.c
@@ -471,6 +471,7 @@ _load_preferences(void)
     _set_boolean_preference("intype", PREF_INTYPE);
 
     _set_boolean_preference("enc.warn", PREF_ENC_WARN);
+    _set_boolean_preference("tls.show", PREF_TLS_SHOW);
 
     if (g_key_file_has_key(theme, "ui", "otr.char", NULL)) {
         gchar *ch = g_key_file_get_string(theme, "ui", "otr.char", NULL);
diff --git a/src/ui/titlebar.c b/src/ui/titlebar.c
index 32ba13b4..41715811 100644
--- a/src/ui/titlebar.c
+++ b/src/ui/titlebar.c
@@ -282,7 +282,7 @@ _show_self_presence(void)
     mvwaddch(win, 0, cols - 2, ']');
     wattroff(win, bracket_attrs);
 
-    if (is_connected) {
+    if (is_connected && prefs_get_boolean(PREF_TLS_SHOW)) {
         wattron(win, bracket_attrs);
         mvwaddch(win, 0, cols - tls_start, '[');
         wattroff(win, bracket_attrs);