mirror of
https://github.com/moparisthebest/hexchat
synced 2024-11-29 20:52:16 -05:00
Consolidate color stripping for messages, topic and scrollback
This commit is contained in:
parent
fb00928c9d
commit
4f887a1e53
@ -597,7 +597,6 @@ const struct prefs vars[] = {
|
|||||||
{"text_max_indent", P_OFFINT (max_auto_indent), TYPE_INT},
|
{"text_max_indent", P_OFFINT (max_auto_indent), TYPE_INT},
|
||||||
{"text_max_lines", P_OFFINT (max_lines), TYPE_INT},
|
{"text_max_lines", P_OFFINT (max_lines), TYPE_INT},
|
||||||
{"text_replay", P_OFFINT (text_replay), TYPE_BOOL},
|
{"text_replay", P_OFFINT (text_replay), TYPE_BOOL},
|
||||||
{"text_replay_strip_color", P_OFFINT (text_replay_strip_color), TYPE_BOOL},
|
|
||||||
{"text_search_case_match", P_OFFINT (text_search_case_match), TYPE_BOOL},
|
{"text_search_case_match", P_OFFINT (text_search_case_match), TYPE_BOOL},
|
||||||
{"text_search_backward", P_OFFINT (text_search_backward), TYPE_BOOL},
|
{"text_search_backward", P_OFFINT (text_search_backward), TYPE_BOOL},
|
||||||
{"text_search_highlight_all", P_OFFINT (text_search_highlight_all), TYPE_BOOL},
|
{"text_search_highlight_all", P_OFFINT (text_search_highlight_all), TYPE_BOOL},
|
||||||
@ -606,7 +605,9 @@ const struct prefs vars[] = {
|
|||||||
{"text_show_marker", P_OFFINT (show_marker), TYPE_BOOL},
|
{"text_show_marker", P_OFFINT (show_marker), TYPE_BOOL},
|
||||||
{"text_show_sep", P_OFFINT (show_separator), TYPE_BOOL},
|
{"text_show_sep", P_OFFINT (show_separator), TYPE_BOOL},
|
||||||
{"text_spell_langs", P_OFFSET (spell_langs), TYPE_STR},
|
{"text_spell_langs", P_OFFSET (spell_langs), TYPE_STR},
|
||||||
{"text_stripcolor", P_OFFINT (stripcolor), TYPE_BOOL},
|
{"text_stripcolor_msg", P_OFFINT (text_stripcolor_msg), TYPE_BOOL},
|
||||||
|
{"text_stripcolor_replay", P_OFFINT (text_stripcolor_replay), TYPE_BOOL},
|
||||||
|
{"text_stripcolor_topic", P_OFFINT (text_stripcolor_topic), TYPE_BOOL},
|
||||||
{"text_thin_sep", P_OFFINT (thin_separator), TYPE_BOOL},
|
{"text_thin_sep", P_OFFINT (thin_separator), TYPE_BOOL},
|
||||||
{"text_tint_blue", P_OFFINT (tint_blue), TYPE_INT},
|
{"text_tint_blue", P_OFFINT (tint_blue), TYPE_INT},
|
||||||
{"text_tint_green", P_OFFINT (tint_green), TYPE_INT},
|
{"text_tint_green", P_OFFINT (tint_green), TYPE_INT},
|
||||||
@ -689,7 +690,8 @@ load_config (void)
|
|||||||
prefs.recon_delay = 10;
|
prefs.recon_delay = 10;
|
||||||
prefs.autocopy_text = 1;
|
prefs.autocopy_text = 1;
|
||||||
prefs.text_replay = 1;
|
prefs.text_replay = 1;
|
||||||
prefs.text_replay_strip_color = 1;
|
prefs.text_stripcolor_replay = 1;
|
||||||
|
prefs.text_stripcolor_topic = 1;
|
||||||
prefs.tabchannels = 1;
|
prefs.tabchannels = 1;
|
||||||
prefs.tab_layout = 2; /* 0=Tabs 1=Reserved 2=Tree */
|
prefs.tab_layout = 2; /* 0=Tabs 1=Reserved 2=Tree */
|
||||||
prefs.tab_sort = 1;
|
prefs.tab_sort = 1;
|
||||||
|
@ -340,12 +340,12 @@ scrollback_load (session *sess)
|
|||||||
text = strchr (buf + 3, ' ');
|
text = strchr (buf + 3, ' ');
|
||||||
if (text)
|
if (text)
|
||||||
{
|
{
|
||||||
if (prefs.text_replay_strip_color)
|
if (prefs.text_stripcolor_replay)
|
||||||
{
|
{
|
||||||
text = strip_color (text + 1, -1, STRIP_COLOR);
|
text = strip_color (text + 1, -1, STRIP_COLOR);
|
||||||
}
|
}
|
||||||
fe_print_text (sess, text, stamp);
|
fe_print_text (sess, text, stamp);
|
||||||
if (prefs.text_replay_strip_color)
|
if (prefs.text_stripcolor_replay)
|
||||||
{
|
{
|
||||||
g_free (text);
|
g_free (text);
|
||||||
}
|
}
|
||||||
@ -381,21 +381,21 @@ scrollback_load (session *sess)
|
|||||||
text = strchr (buf + 3, ' ');
|
text = strchr (buf + 3, ' ');
|
||||||
if (text)
|
if (text)
|
||||||
{
|
{
|
||||||
if (prefs.text_replay_strip_color)
|
if (prefs.text_stripcolor_replay)
|
||||||
{
|
{
|
||||||
text = strip_color (text + 1, -1, STRIP_COLOR);
|
text = strip_color (text + 1, -1, STRIP_COLOR);
|
||||||
}
|
}
|
||||||
cleaned_text = text_replace_non_bmp (text, -1, &cleaned_len);
|
cleaned_text = text_replace_non_bmp (text, -1, &cleaned_len);
|
||||||
if (cleaned_text != NULL)
|
if (cleaned_text != NULL)
|
||||||
{
|
{
|
||||||
if (prefs.text_replay_strip_color)
|
if (prefs.text_stripcolor_replay)
|
||||||
{
|
{
|
||||||
g_free (text);
|
g_free (text);
|
||||||
}
|
}
|
||||||
text = cleaned_text;
|
text = cleaned_text;
|
||||||
}
|
}
|
||||||
fe_print_text (sess, text, stamp);
|
fe_print_text (sess, text, stamp);
|
||||||
if (prefs.text_replay_strip_color)
|
if (prefs.text_stripcolor_replay)
|
||||||
{
|
{
|
||||||
g_free (text);
|
g_free (text);
|
||||||
}
|
}
|
||||||
@ -1799,7 +1799,7 @@ load_text_events ()
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
CL: format_event now handles filtering of arguments:
|
CL: format_event now handles filtering of arguments:
|
||||||
1) if prefs.stripcolor is set, filter all style control codes from arguments
|
1) if prefs.text_stripcolor_msg is set, filter all style control codes from arguments
|
||||||
2) always strip \010 (ATTR_HIDDEN) from arguments: it is only for use in the format string itself
|
2) always strip \010 (ATTR_HIDDEN) from arguments: it is only for use in the format string itself
|
||||||
*/
|
*/
|
||||||
#define ARG_FLAG(argn) (1 << (argn))
|
#define ARG_FLAG(argn) (1 << (argn))
|
||||||
@ -2095,7 +2095,7 @@ text_emit (int index, session *sess, char *a, char *b, char *c, char *d)
|
|||||||
{
|
{
|
||||||
char *word[PDIWORDS];
|
char *word[PDIWORDS];
|
||||||
int i;
|
int i;
|
||||||
unsigned int stripcolor_args = (prefs.stripcolor ? 0xFFFFFFFF : 0);
|
unsigned int stripcolor_args = (prefs.text_stripcolor_msg ? 0xFFFFFFFF : 0);
|
||||||
char tbuf[NICKLEN + 4];
|
char tbuf[NICKLEN + 4];
|
||||||
|
|
||||||
if (prefs.colorednicks && (index == XP_TE_CHANACTION || index == XP_TE_CHANMSG))
|
if (prefs.colorednicks && (index == XP_TE_CHANACTION || index == XP_TE_CHANMSG))
|
||||||
|
@ -236,7 +236,9 @@ struct xchatprefs
|
|||||||
unsigned int autoopendccrecvwindow;
|
unsigned int autoopendccrecvwindow;
|
||||||
unsigned int autoopendccchatwindow;
|
unsigned int autoopendccchatwindow;
|
||||||
unsigned int transparent;
|
unsigned int transparent;
|
||||||
unsigned int stripcolor;
|
unsigned int text_stripcolor_msg;
|
||||||
|
unsigned int text_stripcolor_replay;
|
||||||
|
unsigned int text_stripcolor_topic;
|
||||||
unsigned int timestamp;
|
unsigned int timestamp;
|
||||||
unsigned int fastdccsend;
|
unsigned int fastdccsend;
|
||||||
unsigned int dcc_send_fillspaces;
|
unsigned int dcc_send_fillspaces;
|
||||||
@ -286,7 +288,6 @@ struct xchatprefs
|
|||||||
unsigned int windows_as_tabs;
|
unsigned int windows_as_tabs;
|
||||||
unsigned int indent_nicks;
|
unsigned int indent_nicks;
|
||||||
unsigned int text_replay;
|
unsigned int text_replay;
|
||||||
unsigned int text_replay_strip_color;
|
|
||||||
unsigned int show_marker;
|
unsigned int show_marker;
|
||||||
unsigned int show_separator;
|
unsigned int show_separator;
|
||||||
unsigned int thin_separator;
|
unsigned int thin_separator;
|
||||||
|
@ -551,15 +551,33 @@ void
|
|||||||
fe_set_topic (session *sess, char *topic, char *stripped_topic)
|
fe_set_topic (session *sess, char *topic, char *stripped_topic)
|
||||||
{
|
{
|
||||||
if (!sess->gui->is_tab || sess == current_tab)
|
if (!sess->gui->is_tab || sess == current_tab)
|
||||||
|
{
|
||||||
|
if (prefs.text_stripcolor_topic)
|
||||||
{
|
{
|
||||||
gtk_entry_set_text (GTK_ENTRY (sess->gui->topic_entry), stripped_topic);
|
gtk_entry_set_text (GTK_ENTRY (sess->gui->topic_entry), stripped_topic);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gtk_entry_set_text (GTK_ENTRY (sess->gui->topic_entry), topic);
|
||||||
|
}
|
||||||
mg_set_topic_tip (sess);
|
mg_set_topic_tip (sess);
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (sess->res->topic_text)
|
if (sess->res->topic_text)
|
||||||
|
{
|
||||||
free (sess->res->topic_text);
|
free (sess->res->topic_text);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prefs.text_stripcolor_topic)
|
||||||
|
{
|
||||||
sess->res->topic_text = strdup (stripped_topic);
|
sess->res->topic_text = strdup (stripped_topic);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sess->res->topic_text = strdup (topic);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -281,6 +281,15 @@ static const setting tabs_settings[] =
|
|||||||
{ST_END, 0, 0, 0, 0, 0}
|
{ST_END, 0, 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const setting color_settings[] =
|
||||||
|
{
|
||||||
|
{ST_TOGGLE, N_("Messages"), P_OFFINTNL(text_stripcolor_msg), 0, 0, 0},
|
||||||
|
{ST_TOGGLE, N_("Scrollback"), P_OFFINTNL(text_stripcolor_replay), 0, 0, 0},
|
||||||
|
{ST_TOGGLE, N_("Topic"), P_OFFINTNL(text_stripcolor_topic), 0, 0, 0},
|
||||||
|
|
||||||
|
{ST_END, 0, 0, 0, 0, 0}
|
||||||
|
};
|
||||||
|
|
||||||
static const char *const dccaccept[] =
|
static const char *const dccaccept[] =
|
||||||
{
|
{
|
||||||
N_("No"),
|
N_("No"),
|
||||||
@ -464,7 +473,9 @@ static const setting logging_settings[] =
|
|||||||
{
|
{
|
||||||
{ST_HEADER, N_("Logging"),0,0,0},
|
{ST_HEADER, N_("Logging"),0,0,0},
|
||||||
{ST_TOGGLE, N_("Display scrollback from previous session"), P_OFFINTNL(text_replay), 0, 0, 0},
|
{ST_TOGGLE, N_("Display scrollback from previous session"), P_OFFINTNL(text_replay), 0, 0, 0},
|
||||||
{ST_TOGGLE, N_("Strip colors when displaying scrollback"), P_OFFINTNL(text_replay_strip_color), 0, 0, 0},
|
#if 0 /* Now it's done under Colors */
|
||||||
|
{ST_TOGGLE, N_("Strip colors when displaying scrollback"), P_OFFINTNL(text_stripcolor_replay), 0, 0, 0},
|
||||||
|
#endif
|
||||||
{ST_TOGGLE, N_("Enable logging of conversations to disk"), P_OFFINTNL(logging), 0, 0, 2},
|
{ST_TOGGLE, N_("Enable logging of conversations to disk"), P_OFFINTNL(logging), 0, 0, 2},
|
||||||
{ST_ENTRY, N_("Log filename:"), P_OFFSETNL(logmask), 0, 0, sizeof prefs.logmask},
|
{ST_ENTRY, N_("Log filename:"), P_OFFSETNL(logmask), 0, 0, sizeof prefs.logmask},
|
||||||
{ST_LABEL, N_("%s=Server %c=Channel %n=Network.")},
|
{ST_LABEL, N_("%s=Server %c=Channel %n=Network.")},
|
||||||
@ -1417,6 +1428,18 @@ setup_create_color_page (void)
|
|||||||
setup_create_other_colorR (_("Spell checker:"), COL_SPELL, 11, tab);
|
setup_create_other_colorR (_("Spell checker:"), COL_SPELL, 11, tab);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
setup_create_header (tab, 15, N_("Color Stripping"));
|
||||||
|
|
||||||
|
/* label = gtk_label_new (_("Strip colors from:"));
|
||||||
|
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||||
|
gtk_table_attach (GTK_TABLE (tab), label, 2, 3, 16, 17,
|
||||||
|
GTK_SHRINK | GTK_FILL, GTK_SHRINK | GTK_FILL, LABEL_INDENT, 0); */
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
setup_create_toggleL (tab, i + 16, &color_settings[i]);
|
||||||
|
}
|
||||||
|
|
||||||
return box;
|
return box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user