mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Added autocompleters for notify trigger removal
This commit is contained in:
parent
a488d944d2
commit
00a735ece5
@ -2636,6 +2636,8 @@ cmd_reset_autocomplete(ProfWin *window)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bookmark_autocomplete_reset();
|
bookmark_autocomplete_reset();
|
||||||
|
prefs_reset_message_trigger_ac();
|
||||||
|
prefs_reset_room_trigger_ac();
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
@ -3150,6 +3152,16 @@ _notify_autocomplete(ProfWin *window, const char *const input)
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
char *result = NULL;
|
char *result = NULL;
|
||||||
|
|
||||||
|
result = autocomplete_param_with_func(input, "/notify message trigger remove", prefs_autocomplete_message_trigger);
|
||||||
|
if (result) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = autocomplete_param_with_func(input, "/notify room trigger remove", prefs_autocomplete_room_trigger);
|
||||||
|
if (result) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
result = autocomplete_param_with_func(input, "/notify room current", prefs_autocomplete_boolean_choice);
|
result = autocomplete_param_with_func(input, "/notify room current", prefs_autocomplete_boolean_choice);
|
||||||
if (result) {
|
if (result) {
|
||||||
return result;
|
return result;
|
||||||
|
@ -65,6 +65,8 @@ static GKeyFile *prefs;
|
|||||||
gint log_maxsize = 0;
|
gint log_maxsize = 0;
|
||||||
|
|
||||||
static Autocomplete boolean_choice_ac;
|
static Autocomplete boolean_choice_ac;
|
||||||
|
static Autocomplete message_trigger_ac;
|
||||||
|
static Autocomplete room_trigger_ac;
|
||||||
|
|
||||||
static void _save_prefs(void);
|
static void _save_prefs(void);
|
||||||
static gchar* _get_preferences_file(void);
|
static gchar* _get_preferences_file(void);
|
||||||
@ -133,12 +135,33 @@ prefs_load(void)
|
|||||||
boolean_choice_ac = autocomplete_new();
|
boolean_choice_ac = autocomplete_new();
|
||||||
autocomplete_add(boolean_choice_ac, "on");
|
autocomplete_add(boolean_choice_ac, "on");
|
||||||
autocomplete_add(boolean_choice_ac, "off");
|
autocomplete_add(boolean_choice_ac, "off");
|
||||||
|
|
||||||
|
message_trigger_ac = autocomplete_new();
|
||||||
|
gsize len = 0;
|
||||||
|
gchar **triggers = g_key_file_get_string_list(prefs, PREF_GROUP_NOTIFICATIONS, "message.trigger.list", &len, NULL);
|
||||||
|
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
autocomplete_add(message_trigger_ac, triggers[i]);
|
||||||
|
}
|
||||||
|
g_strfreev(triggers);
|
||||||
|
|
||||||
|
room_trigger_ac = autocomplete_new();
|
||||||
|
len = 0;
|
||||||
|
triggers = g_key_file_get_string_list(prefs, PREF_GROUP_NOTIFICATIONS, "room.trigger.list", &len, NULL);
|
||||||
|
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
autocomplete_add(room_trigger_ac, triggers[i]);
|
||||||
|
}
|
||||||
|
g_strfreev(triggers);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
prefs_close(void)
|
prefs_close(void)
|
||||||
{
|
{
|
||||||
autocomplete_free(boolean_choice_ac);
|
autocomplete_free(boolean_choice_ac);
|
||||||
|
autocomplete_free(message_trigger_ac);
|
||||||
|
autocomplete_free(room_trigger_ac);
|
||||||
g_key_file_free(prefs);
|
g_key_file_free(prefs);
|
||||||
prefs = NULL;
|
prefs = NULL;
|
||||||
}
|
}
|
||||||
@ -155,6 +178,30 @@ prefs_reset_boolean_choice(void)
|
|||||||
autocomplete_reset(boolean_choice_ac);
|
autocomplete_reset(boolean_choice_ac);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char*
|
||||||
|
prefs_autocomplete_message_trigger(const char *const prefix)
|
||||||
|
{
|
||||||
|
return autocomplete_complete(message_trigger_ac, prefix, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
prefs_reset_message_trigger_ac(void)
|
||||||
|
{
|
||||||
|
autocomplete_reset(message_trigger_ac);
|
||||||
|
}
|
||||||
|
|
||||||
|
char*
|
||||||
|
prefs_autocomplete_room_trigger(const char *const prefix)
|
||||||
|
{
|
||||||
|
return autocomplete_complete(room_trigger_ac, prefix, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
prefs_reset_room_trigger_ac(void)
|
||||||
|
{
|
||||||
|
autocomplete_reset(room_trigger_ac);
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
prefs_get_boolean(preference_t pref)
|
prefs_get_boolean(preference_t pref)
|
||||||
{
|
{
|
||||||
@ -613,6 +660,10 @@ prefs_add_msg_notify_trigger(const char * const text)
|
|||||||
gboolean res = conf_string_list_add(prefs, PREF_GROUP_NOTIFICATIONS, "message.trigger.list", text);
|
gboolean res = conf_string_list_add(prefs, PREF_GROUP_NOTIFICATIONS, "message.trigger.list", text);
|
||||||
_save_prefs();
|
_save_prefs();
|
||||||
|
|
||||||
|
if (res) {
|
||||||
|
autocomplete_add(message_trigger_ac, text);
|
||||||
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -622,6 +673,10 @@ prefs_remove_msg_notify_trigger(const char * const text)
|
|||||||
gboolean res = conf_string_list_remove(prefs, PREF_GROUP_NOTIFICATIONS, "message.trigger.list", text);
|
gboolean res = conf_string_list_remove(prefs, PREF_GROUP_NOTIFICATIONS, "message.trigger.list", text);
|
||||||
_save_prefs();
|
_save_prefs();
|
||||||
|
|
||||||
|
if (res) {
|
||||||
|
autocomplete_remove(message_trigger_ac, text);
|
||||||
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -648,6 +703,10 @@ prefs_add_room_notify_trigger(const char * const text)
|
|||||||
gboolean res = conf_string_list_add(prefs, PREF_GROUP_NOTIFICATIONS, "room.trigger.list", text);
|
gboolean res = conf_string_list_add(prefs, PREF_GROUP_NOTIFICATIONS, "room.trigger.list", text);
|
||||||
_save_prefs();
|
_save_prefs();
|
||||||
|
|
||||||
|
if (res) {
|
||||||
|
autocomplete_add(room_trigger_ac, text);
|
||||||
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -657,6 +716,10 @@ prefs_remove_room_notify_trigger(const char * const text)
|
|||||||
gboolean res = conf_string_list_remove(prefs, PREF_GROUP_NOTIFICATIONS, "room.trigger.list", text);
|
gboolean res = conf_string_list_remove(prefs, PREF_GROUP_NOTIFICATIONS, "room.trigger.list", text);
|
||||||
_save_prefs();
|
_save_prefs();
|
||||||
|
|
||||||
|
if (res) {
|
||||||
|
autocomplete_remove(room_trigger_ac, text);
|
||||||
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,9 +135,15 @@ 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(const char *const prefix);
|
char* prefs_autocomplete_boolean_choice(const char *const prefix);
|
||||||
void prefs_reset_boolean_choice(void);
|
void prefs_reset_boolean_choice(void);
|
||||||
|
|
||||||
|
char* prefs_autocomplete_message_trigger(const char *const prefix);
|
||||||
|
void prefs_reset_message_trigger_ac(void);
|
||||||
|
char* prefs_autocomplete_room_trigger(const char *const prefix);
|
||||||
|
void prefs_reset_room_trigger_ac(void);
|
||||||
|
|
||||||
gint prefs_get_gone(void);
|
gint prefs_get_gone(void);
|
||||||
void prefs_set_gone(gint value);
|
void prefs_set_gone(gint value);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user