about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/command/command.c33
-rw-r--r--src/command/commands.c8
-rw-r--r--src/config/preferences.c16
-rw-r--r--src/config/preferences.h2
-rw-r--r--src/ui/console.c6
-rw-r--r--src/ui/core.c2
6 files changed, 51 insertions, 16 deletions
diff --git a/src/command/command.c b/src/command/command.c
index b225f45d..64bf09d7 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -96,6 +96,7 @@ static char * _ban_autocomplete(char *input, int *size);
 static char * _affiliation_autocomplete(char *input, int *size);
 static char * _role_autocomplete(char *input, int *size);
 static char * _resource_autocomplete(char *input, int *size);
+static char * _titlebar_autocomplete(char *input, int *size);
 
 GHashTable *commands = NULL;
 
@@ -721,10 +722,10 @@ static struct cmd_t command_defs[] =
           NULL  } } },
 
     { "/titlebar",
-        cmd_titlebar, parse_args, 1, 1, &cons_titlebar_setting,
-        { "/titlebar on|off", "Show information in the window title bar.",
-        { "/titlebar on|off",
-          "----------------",
+        cmd_titlebar, parse_args, 2, 2, &cons_titlebar_setting,
+        { "/titlebar show on|off", "Show information in the window title bar.",
+        { "/titlebar show on|off",
+          "---------------------",
           "Show information in the window title bar.",
           NULL  } } },
 
@@ -1206,7 +1207,7 @@ cmd_init(void)
     autocomplete_add(sub_ac, "received");
 
     titlebar_ac = autocomplete_new();
-    autocomplete_add(titlebar_ac, "version");
+    autocomplete_add(titlebar_ac, "show");
 
     log_ac = autocomplete_new();
     autocomplete_add(log_ac, "maxsize");
@@ -1661,6 +1662,7 @@ cmd_reset_autocomplete()
     autocomplete_reset(roster_option_ac);
     autocomplete_reset(roster_by_ac);
     autocomplete_reset(group_ac);
+    autocomplete_reset(titlebar_ac);
     autocomplete_reset(bookmark_ac);
     autocomplete_reset(bookmark_property_ac);
     autocomplete_reset(otr_ac);
@@ -1892,7 +1894,7 @@ _cmd_complete_parameters(char *input, int *size)
 
     // autocomplete boolean settings
     gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype",
-        "/flash", "/splash", "/chlog", "/grlog", "/mouse", "/history", "/titlebar",
+        "/flash", "/splash", "/chlog", "/grlog", "/mouse", "/history",
         "/vercheck", "/privileges", "/presence", "/wrap" };
 
     for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) {
@@ -2002,6 +2004,7 @@ _cmd_complete_parameters(char *input, int *size)
     g_hash_table_insert(ac_funcs, "/affiliation",   _affiliation_autocomplete);
     g_hash_table_insert(ac_funcs, "/role",          _role_autocomplete);
     g_hash_table_insert(ac_funcs, "/resource",      _resource_autocomplete);
+    g_hash_table_insert(ac_funcs, "/titlebar",      _titlebar_autocomplete);
 
     char parsed[*size+1];
     i = 0;
@@ -2485,6 +2488,24 @@ _resource_autocomplete(char *input, int *size)
 }
 
 static char *
+_titlebar_autocomplete(char *input, int *size)
+{
+    char *found = NULL;
+
+    found = autocomplete_param_with_func(input, size, "/titlebar show", prefs_autocomplete_boolean_choice);
+    if (found != NULL) {
+        return found;
+    }
+
+    found = autocomplete_param_with_ac(input, size, "/titlebar", titlebar_ac, FALSE);
+    if (found != NULL) {
+        return found;
+    }
+
+    return NULL;
+}
+
+static char *
 _form_autocomplete(char *input, int *size)
 {
     ProfWin *current = wins_get_current();
diff --git a/src/command/commands.c b/src/command/commands.c
index 21b3a567..f72a6047 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -3252,10 +3252,14 @@ cmd_states(gchar **args, struct cmd_help_t help)
 gboolean
 cmd_titlebar(gchar **args, struct cmd_help_t help)
 {
-    if (g_strcmp0(args[0], "off") == 0) {
+    if (g_strcmp0(args[0], "show") != 0) {
+        cons_show("Usage: %s", help.usage);
+        return TRUE;
+    }
+    if (g_strcmp0(args[1], "off") == 0) {
         ui_clear_win_title();
     }
-    return _cmd_set_boolean_preference(args[0], help, "Titlebar", PREF_TITLEBAR);
+    return _cmd_set_boolean_preference(args[1], help, "Titlebar show", PREF_TITLEBAR_SHOW);
 }
 
 gboolean
diff --git a/src/config/preferences.c b/src/config/preferences.c
index fe6d0626..30456f99 100644
--- a/src/config/preferences.c
+++ b/src/config/preferences.c
@@ -128,6 +128,16 @@ prefs_load(void)
         g_error_free(err);
     }
 
+    // move pre 0.4.6 titlebar preference
+    err = NULL;
+    gchar *old_titlebar = g_key_file_get_string(prefs, PREF_GROUP_UI, "titlebar", &err);
+    if (err == NULL) {
+        g_key_file_set_string(prefs, PREF_GROUP_UI, _get_key(PREF_TITLEBAR_SHOW), old_titlebar);
+        g_key_file_remove_key(prefs, PREF_GROUP_UI, "titlebar", NULL);
+    } else {
+        g_error_free(err);
+    }
+
     _save_prefs();
 
     boolean_choice_ac = autocomplete_new();
@@ -500,7 +510,7 @@ _get_group(preference_t pref)
         case PREF_BEEP:
         case PREF_THEME:
         case PREF_VERCHECK:
-        case PREF_TITLEBAR:
+        case PREF_TITLEBAR_SHOW:
         case PREF_FLASH:
         case PREF_INTYPE:
         case PREF_HISTORY:
@@ -571,8 +581,8 @@ _get_key(preference_t pref)
             return "theme";
         case PREF_VERCHECK:
             return "vercheck";
-        case PREF_TITLEBAR:
-            return "titlebar";
+        case PREF_TITLEBAR_SHOW:
+            return "titlebar.show";
         case PREF_FLASH:
             return "flash";
         case PREF_INTYPE:
diff --git a/src/config/preferences.h b/src/config/preferences.h
index 0a953482..a7ce4d8d 100644
--- a/src/config/preferences.h
+++ b/src/config/preferences.h
@@ -54,7 +54,7 @@ typedef enum {
     PREF_BEEP,
     PREF_VERCHECK,
     PREF_THEME,
-    PREF_TITLEBAR,
+    PREF_TITLEBAR_SHOW,
     PREF_FLASH,
     PREF_INTYPE,
     PREF_HISTORY,
diff --git a/src/ui/console.c b/src/ui/console.c
index 52ccf990..e595a024 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -964,10 +964,10 @@ cons_statuses_setting(void)
 void
 cons_titlebar_setting(void)
 {
-    if (prefs_get_boolean(PREF_TITLEBAR)) {
-        cons_show("Titlebar display (/titlebar)  : ON");
+    if (prefs_get_boolean(PREF_TITLEBAR_SHOW)) {
+        cons_show("Titlebar show (/titlebar)     : ON");
     } else {
-        cons_show("Titlebar display (/titlebar)  : OFF");
+        cons_show("Titlebar show (/titlebar)     : OFF");
     }
 }
 
diff --git a/src/ui/core.c b/src/ui/core.c
index cc3dc167..22e7bcf1 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -122,7 +122,7 @@ ui_update(void)
 
     win_update_virtual(current);
 
-    if (prefs_get_boolean(PREF_TITLEBAR)) {
+    if (prefs_get_boolean(PREF_TITLEBAR_SHOW)) {
         _ui_draw_term_title();
     }
     title_bar_update_virtual();