Added autocomplete for boolean settings
This commit is contained in:
@@ -166,6 +166,7 @@ inp_get_char(int *ch, char *input, int *size)
|
|||||||
|
|
||||||
contact_list_reset_search_attempts();
|
contact_list_reset_search_attempts();
|
||||||
prefs_reset_login_search();
|
prefs_reset_login_search();
|
||||||
|
prefs_reset_boolean_choice();
|
||||||
cmd_help_reset_completer();
|
cmd_help_reset_completer();
|
||||||
cmd_reset_completer();
|
cmd_reset_completer();
|
||||||
}
|
}
|
||||||
@@ -340,9 +341,26 @@ _handle_edit(const int ch, char *input, int *size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_parameter_autocomplete(input, size, "/msg", contact_list_find_contact);
|
_parameter_autocomplete(input, size, "/msg",
|
||||||
_parameter_autocomplete(input, size, "/connect", prefs_find_login);
|
contact_list_find_contact);
|
||||||
_parameter_autocomplete(input, size, "/help", cmd_help_complete);
|
_parameter_autocomplete(input, size, "/connect",
|
||||||
|
prefs_find_login);
|
||||||
|
_parameter_autocomplete(input, size, "/help",
|
||||||
|
cmd_help_complete);
|
||||||
|
_parameter_autocomplete(input, size, "/beep",
|
||||||
|
prefs_autocomplete_boolean_choice);
|
||||||
|
_parameter_autocomplete(input, size, "/notify",
|
||||||
|
prefs_autocomplete_boolean_choice);
|
||||||
|
_parameter_autocomplete(input, size, "/typing",
|
||||||
|
prefs_autocomplete_boolean_choice);
|
||||||
|
_parameter_autocomplete(input, size, "/flash",
|
||||||
|
prefs_autocomplete_boolean_choice);
|
||||||
|
_parameter_autocomplete(input, size, "/showsplash",
|
||||||
|
prefs_autocomplete_boolean_choice);
|
||||||
|
_parameter_autocomplete(input, size, "/chlog",
|
||||||
|
prefs_autocomplete_boolean_choice);
|
||||||
|
_parameter_autocomplete(input, size, "/history",
|
||||||
|
prefs_autocomplete_boolean_choice);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|||||||
@@ -39,8 +39,8 @@
|
|||||||
static GString *prefs_loc;
|
static GString *prefs_loc;
|
||||||
static GKeyFile *prefs;
|
static GKeyFile *prefs;
|
||||||
|
|
||||||
// search logins list
|
static PAutocomplete login_ac;
|
||||||
static PAutocomplete ac;
|
static PAutocomplete boolean_choice_ac;
|
||||||
|
|
||||||
struct colour_string_t {
|
struct colour_string_t {
|
||||||
char *str;
|
char *str;
|
||||||
@@ -87,7 +87,7 @@ void
|
|||||||
prefs_load(void)
|
prefs_load(void)
|
||||||
{
|
{
|
||||||
log_info("Loading preferences");
|
log_info("Loading preferences");
|
||||||
ac = p_autocomplete_new();
|
login_ac = p_autocomplete_new();
|
||||||
prefs_loc = g_string_new(getenv("HOME"));
|
prefs_loc = g_string_new(getenv("HOME"));
|
||||||
g_string_append(prefs_loc, "/.profanity/config");
|
g_string_append(prefs_loc, "/.profanity/config");
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ prefs_load(void)
|
|||||||
|
|
||||||
gsize i;
|
gsize i;
|
||||||
for (i = 0; i < njids; i++) {
|
for (i = 0; i < njids; i++) {
|
||||||
p_autocomplete_add(ac, strdup(jids[i]));
|
p_autocomplete_add(login_ac, strdup(jids[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < njids; i++) {
|
for (i = 0; i < njids; i++) {
|
||||||
@@ -110,14 +110,19 @@ prefs_load(void)
|
|||||||
}
|
}
|
||||||
free(jids);
|
free(jids);
|
||||||
|
|
||||||
|
|
||||||
_load_colours();
|
_load_colours();
|
||||||
|
|
||||||
|
boolean_choice_ac = p_autocomplete_new();
|
||||||
|
p_autocomplete_add(boolean_choice_ac, strdup("on"));
|
||||||
|
p_autocomplete_add(boolean_choice_ac, strdup("off"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
prefs_close(void)
|
prefs_close(void)
|
||||||
{
|
{
|
||||||
p_autocomplete_clear(ac);
|
p_autocomplete_clear(login_ac);
|
||||||
|
p_autocomplete_clear(boolean_choice_ac);
|
||||||
g_key_file_free(prefs);
|
g_key_file_free(prefs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,13 +201,25 @@ _load_colours(void)
|
|||||||
char *
|
char *
|
||||||
prefs_find_login(char *prefix)
|
prefs_find_login(char *prefix)
|
||||||
{
|
{
|
||||||
return p_autocomplete_complete(ac, prefix);
|
return p_autocomplete_complete(login_ac, prefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
prefs_reset_login_search(void)
|
prefs_reset_login_search(void)
|
||||||
{
|
{
|
||||||
p_autocomplete_reset(ac);
|
p_autocomplete_reset(login_ac);
|
||||||
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
prefs_autocomplete_boolean_choice(char *prefix)
|
||||||
|
{
|
||||||
|
return p_autocomplete_complete(boolean_choice_ac, prefix);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
prefs_reset_boolean_choice(void)
|
||||||
|
{
|
||||||
|
p_autocomplete_reset(boolean_choice_ac);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ void prefs_close(void);
|
|||||||
|
|
||||||
char * prefs_find_login(char *prefix);
|
char * prefs_find_login(char *prefix);
|
||||||
void prefs_reset_login_search(void);
|
void prefs_reset_login_search(void);
|
||||||
|
char * prefs_autocomplete_boolean_choice(char *prefix);
|
||||||
|
void prefs_reset_boolean_choice(void);
|
||||||
|
|
||||||
gboolean prefs_get_beep(void);
|
gboolean prefs_get_beep(void);
|
||||||
void prefs_set_beep(gboolean value);
|
void prefs_set_beep(gboolean value);
|
||||||
|
|||||||
Reference in New Issue
Block a user