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_lines", P_OFFINT (max_lines), TYPE_INT},
|
||||
{"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_backward", P_OFFINT (text_search_backward), 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_sep", P_OFFINT (show_separator), TYPE_BOOL},
|
||||
{"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_tint_blue", P_OFFINT (tint_blue), TYPE_INT},
|
||||
{"text_tint_green", P_OFFINT (tint_green), TYPE_INT},
|
||||
|
@ -689,7 +690,8 @@ load_config (void)
|
|||
prefs.recon_delay = 10;
|
||||
prefs.autocopy_text = 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.tab_layout = 2; /* 0=Tabs 1=Reserved 2=Tree */
|
||||
prefs.tab_sort = 1;
|
||||
|
|
|
@ -340,12 +340,12 @@ scrollback_load (session *sess)
|
|||
text = strchr (buf + 3, ' ');
|
||||
if (text)
|
||||
{
|
||||
if (prefs.text_replay_strip_color)
|
||||
if (prefs.text_stripcolor_replay)
|
||||
{
|
||||
text = strip_color (text + 1, -1, STRIP_COLOR);
|
||||
}
|
||||
fe_print_text (sess, text, stamp);
|
||||
if (prefs.text_replay_strip_color)
|
||||
if (prefs.text_stripcolor_replay)
|
||||
{
|
||||
g_free (text);
|
||||
}
|
||||
|
@ -381,21 +381,21 @@ scrollback_load (session *sess)
|
|||
text = strchr (buf + 3, ' ');
|
||||
if (text)
|
||||
{
|
||||
if (prefs.text_replay_strip_color)
|
||||
if (prefs.text_stripcolor_replay)
|
||||
{
|
||||
text = strip_color (text + 1, -1, STRIP_COLOR);
|
||||
}
|
||||
cleaned_text = text_replace_non_bmp (text, -1, &cleaned_len);
|
||||
if (cleaned_text != NULL)
|
||||
{
|
||||
if (prefs.text_replay_strip_color)
|
||||
if (prefs.text_stripcolor_replay)
|
||||
{
|
||||
g_free (text);
|
||||
}
|
||||
text = cleaned_text;
|
||||
}
|
||||
fe_print_text (sess, text, stamp);
|
||||
if (prefs.text_replay_strip_color)
|
||||
if (prefs.text_stripcolor_replay)
|
||||
{
|
||||
g_free (text);
|
||||
}
|
||||
|
@ -1799,7 +1799,7 @@ load_text_events ()
|
|||
|
||||
/*
|
||||
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
|
||||
*/
|
||||
#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];
|
||||
int i;
|
||||
unsigned int stripcolor_args = (prefs.stripcolor ? 0xFFFFFFFF : 0);
|
||||
unsigned int stripcolor_args = (prefs.text_stripcolor_msg ? 0xFFFFFFFF : 0);
|
||||
char tbuf[NICKLEN + 4];
|
||||
|
||||
if (prefs.colorednicks && (index == XP_TE_CHANACTION || index == XP_TE_CHANMSG))
|
||||
|
|
|
@ -236,7 +236,9 @@ struct xchatprefs
|
|||
unsigned int autoopendccrecvwindow;
|
||||
unsigned int autoopendccchatwindow;
|
||||
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 fastdccsend;
|
||||
unsigned int dcc_send_fillspaces;
|
||||
|
@ -286,7 +288,6 @@ struct xchatprefs
|
|||
unsigned int windows_as_tabs;
|
||||
unsigned int indent_nicks;
|
||||
unsigned int text_replay;
|
||||
unsigned int text_replay_strip_color;
|
||||
unsigned int show_marker;
|
||||
unsigned int show_separator;
|
||||
unsigned int thin_separator;
|
||||
|
|
|
@ -552,13 +552,31 @@ fe_set_topic (session *sess, char *topic, char *stripped_topic)
|
|||
{
|
||||
if (!sess->gui->is_tab || sess == current_tab)
|
||||
{
|
||||
gtk_entry_set_text (GTK_ENTRY (sess->gui->topic_entry), stripped_topic);
|
||||
if (prefs.text_stripcolor_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);
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sess->res->topic_text)
|
||||
{
|
||||
free (sess->res->topic_text);
|
||||
sess->res->topic_text = strdup (stripped_topic);
|
||||
}
|
||||
|
||||
if (prefs.text_stripcolor_topic)
|
||||
{
|
||||
sess->res->topic_text = strdup (stripped_topic);
|
||||
}
|
||||
else
|
||||
{
|
||||
sess->res->topic_text = strdup (topic);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -281,6 +281,15 @@ static const setting tabs_settings[] =
|
|||
{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[] =
|
||||
{
|
||||
N_("No"),
|
||||
|
@ -464,7 +473,9 @@ static const setting logging_settings[] =
|
|||
{
|
||||
{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_("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_ENTRY, N_("Log filename:"), P_OFFSETNL(logmask), 0, 0, sizeof prefs.logmask},
|
||||
{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);
|
||||
#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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue