mirror of
https://github.com/profanity-im/profanity.git
synced 2025-01-03 14:57:42 -05:00
Add initial support for XEP-0392
The last 3 commits added basic support. Thanks @aaptel! This commit adds basic settings interface to use it. See `/color on|off`. We still have to enable settings for color blindness. And maybe another setting to decide whether to color the occupantslist/roster with the same algo. Regards https://github.com/profanity-im/profanity/issues/1191
This commit is contained in:
parent
7a0a578a8a
commit
ddf6ada3d1
@ -1479,7 +1479,7 @@ _cmd_ac_complete_params(ProfWin *window, const char *const input, gboolean previ
|
|||||||
|
|
||||||
// autocomplete boolean settings
|
// autocomplete boolean settings
|
||||||
gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", "/flash", "/splash",
|
gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", "/flash", "/splash",
|
||||||
"/history", "/vercheck", "/privileges", "/wrap", "/carbons", "/lastactivity" };
|
"/history", "/vercheck", "/privileges", "/wrap", "/carbons", "/lastactivity", "/color" };
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) {
|
for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) {
|
||||||
result = autocomplete_param_with_func(input, boolean_choices[i], prefs_autocomplete_boolean_choice, previous);
|
result = autocomplete_param_with_func(input, boolean_choices[i], prefs_autocomplete_boolean_choice, previous);
|
||||||
|
@ -2294,6 +2294,21 @@ static struct cmd_t command_defs[] =
|
|||||||
CMD_NOARGS
|
CMD_NOARGS
|
||||||
CMD_NOEXAMPLES
|
CMD_NOEXAMPLES
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ "/color",
|
||||||
|
parse_args, 1, 1, &cons_color_setting,
|
||||||
|
CMD_NOSUBFUNCS
|
||||||
|
CMD_MAINFUNC(cmd_color)
|
||||||
|
CMD_TAGS(
|
||||||
|
CMD_TAG_UI)
|
||||||
|
CMD_SYN(
|
||||||
|
"/color on|off")
|
||||||
|
CMD_DESC(
|
||||||
|
"Settings for consistent color generation for nicks (XEP-0392).")
|
||||||
|
CMD_ARGS(
|
||||||
|
{ "on|off", "Enable or disable nick colorization for MUC nicks." })
|
||||||
|
CMD_NOEXAMPLES
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static GHashTable *search_index;
|
static GHashTable *search_index;
|
||||||
|
@ -8626,3 +8626,10 @@ cmd_paste(ProfWin *window, const char *const command, gchar **args)
|
|||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
cmd_color(ProfWin *window, const char *const command, gchar **args)
|
||||||
|
{
|
||||||
|
_cmd_set_boolean_preference(args[0], command, "Consistent color generation for nicks", PREF_COLOR_NICK);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
@ -223,4 +223,6 @@ gboolean cmd_save(ProfWin *window, const char *const command, gchar **args);
|
|||||||
gboolean cmd_reload(ProfWin *window, const char *const command, gchar **args);
|
gboolean cmd_reload(ProfWin *window, const char *const command, gchar **args);
|
||||||
|
|
||||||
gboolean cmd_paste(ProfWin *window, const char *const command, gchar **args);
|
gboolean cmd_paste(ProfWin *window, const char *const command, gchar **args);
|
||||||
|
|
||||||
|
gboolean cmd_color(ProfWin *window, const char *const command, gchar **args);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1968,6 +1968,15 @@ cons_autoping_setting(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
cons_color_setting(void)
|
||||||
|
{
|
||||||
|
if (prefs_get_boolean(PREF_COLOR_NICK))
|
||||||
|
cons_show("Consistent color generation for nicks (/color) : ON");
|
||||||
|
else
|
||||||
|
cons_show("Consistent color generation for nicks (/color) : OFF");
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
cons_show_connection_prefs(void)
|
cons_show_connection_prefs(void)
|
||||||
{
|
{
|
||||||
|
@ -317,6 +317,7 @@ void cons_room_cache_setting(void);
|
|||||||
void cons_inpblock_setting(void);
|
void cons_inpblock_setting(void);
|
||||||
void cons_statusbar_setting(void);
|
void cons_statusbar_setting(void);
|
||||||
void cons_winpos_setting(void);
|
void cons_winpos_setting(void);
|
||||||
|
void cons_color_setting(void);
|
||||||
void cons_show_contact_online(PContact contact, Resource *resource, GDateTime *last_activity);
|
void cons_show_contact_online(PContact contact, Resource *resource, GDateTime *last_activity);
|
||||||
void cons_show_contact_offline(PContact contact, char *resource, char *status);
|
void cons_show_contact_offline(PContact contact, char *resource, char *status);
|
||||||
void cons_theme_properties(void);
|
void cons_theme_properties(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user