Add option to omit alerts when marked as being away
This commit is contained in:
parent
0ec02c13c7
commit
b67b223c26
|
@ -392,6 +392,7 @@ default_file (void)
|
||||||
|
|
||||||
const struct prefs vars[] = {
|
const struct prefs vars[] = {
|
||||||
{"away_auto_unmark", P_OFFINT (auto_unmark_away), TYPE_BOOL},
|
{"away_auto_unmark", P_OFFINT (auto_unmark_away), TYPE_BOOL},
|
||||||
|
{"away_omit_alerts", P_OFFINT (away_omit_alerts), TYPE_BOOL},
|
||||||
{"away_reason", P_OFFSET (awayreason), TYPE_STR},
|
{"away_reason", P_OFFSET (awayreason), TYPE_STR},
|
||||||
{"away_show_message", P_OFFINT (show_away_message), TYPE_BOOL},
|
{"away_show_message", P_OFFINT (show_away_message), TYPE_BOOL},
|
||||||
{"away_show_once", P_OFFINT (show_away_once), TYPE_BOOL},
|
{"away_show_once", P_OFFINT (show_away_once), TYPE_BOOL},
|
||||||
|
|
|
@ -2203,9 +2203,9 @@ text_emit (int index, session *sess, char *a, char *b, char *c, char *d)
|
||||||
case XP_TE_DPRIVMSG:
|
case XP_TE_DPRIVMSG:
|
||||||
case XP_TE_PRIVACTION:
|
case XP_TE_PRIVACTION:
|
||||||
case XP_TE_DPRIVACTION:
|
case XP_TE_DPRIVACTION:
|
||||||
if (chanopt_is_set_a (prefs.input_beep_priv, sess->alert_beep))
|
if (chanopt_is_set_a (prefs.input_beep_priv, sess->alert_beep) && !prefs.away_omit_alerts)
|
||||||
sound_beep (sess);
|
sound_beep (sess);
|
||||||
if (chanopt_is_set_a (prefs.input_flash_priv, sess->alert_taskbar))
|
if (chanopt_is_set_a (prefs.input_flash_priv, sess->alert_taskbar) && !prefs.away_omit_alerts)
|
||||||
fe_flash_window (sess);
|
fe_flash_window (sess);
|
||||||
/* why is this one different? because of plugin-tray.c's hooks! ugly */
|
/* why is this one different? because of plugin-tray.c's hooks! ugly */
|
||||||
if (sess->alert_tray == SET_ON)
|
if (sess->alert_tray == SET_ON)
|
||||||
|
@ -2215,9 +2215,9 @@ text_emit (int index, session *sess, char *a, char *b, char *c, char *d)
|
||||||
/* ===Highlighted message=== */
|
/* ===Highlighted message=== */
|
||||||
case XP_TE_HCHANACTION:
|
case XP_TE_HCHANACTION:
|
||||||
case XP_TE_HCHANMSG:
|
case XP_TE_HCHANMSG:
|
||||||
if (chanopt_is_set_a (prefs.input_beep_hilight, sess->alert_beep))
|
if (chanopt_is_set_a (prefs.input_beep_hilight, sess->alert_beep) && !prefs.away_omit_alerts)
|
||||||
sound_beep (sess);
|
sound_beep (sess);
|
||||||
if (chanopt_is_set_a (prefs.input_flash_hilight, sess->alert_taskbar))
|
if (chanopt_is_set_a (prefs.input_flash_hilight, sess->alert_taskbar) && !prefs.away_omit_alerts)
|
||||||
fe_flash_window (sess);
|
fe_flash_window (sess);
|
||||||
if (sess->alert_tray == SET_ON)
|
if (sess->alert_tray == SET_ON)
|
||||||
fe_tray_set_icon (FE_ICON_MESSAGE);
|
fe_tray_set_icon (FE_ICON_MESSAGE);
|
||||||
|
@ -2226,9 +2226,9 @@ text_emit (int index, session *sess, char *a, char *b, char *c, char *d)
|
||||||
/* ===Channel message=== */
|
/* ===Channel message=== */
|
||||||
case XP_TE_CHANACTION:
|
case XP_TE_CHANACTION:
|
||||||
case XP_TE_CHANMSG:
|
case XP_TE_CHANMSG:
|
||||||
if (chanopt_is_set_a (prefs.input_beep_chans, sess->alert_beep))
|
if (chanopt_is_set_a (prefs.input_beep_chans, sess->alert_beep) && !prefs.away_omit_alerts)
|
||||||
sound_beep (sess);
|
sound_beep (sess);
|
||||||
if (chanopt_is_set_a (prefs.input_flash_chans, sess->alert_taskbar))
|
if (chanopt_is_set_a (prefs.input_flash_chans, sess->alert_taskbar) && !prefs.away_omit_alerts)
|
||||||
fe_flash_window (sess);
|
fe_flash_window (sess);
|
||||||
if (sess->alert_tray == SET_ON)
|
if (sess->alert_tray == SET_ON)
|
||||||
fe_tray_set_icon (FE_ICON_MESSAGE);
|
fe_tray_set_icon (FE_ICON_MESSAGE);
|
||||||
|
|
|
@ -156,6 +156,7 @@ struct xchatprefs
|
||||||
|
|
||||||
int away_timeout;
|
int away_timeout;
|
||||||
int away_size_max;
|
int away_size_max;
|
||||||
|
int away_omit_alerts;
|
||||||
|
|
||||||
int gui_pane_left_size;
|
int gui_pane_left_size;
|
||||||
int gui_pane_right_size;
|
int gui_pane_right_size;
|
||||||
|
|
|
@ -587,7 +587,7 @@ fe_set_hilight (struct session *sess)
|
||||||
if (sess->gui->is_tab)
|
if (sess->gui->is_tab)
|
||||||
fe_set_tab_color (sess, 3); /* set tab to blue */
|
fe_set_tab_color (sess, 3); /* set tab to blue */
|
||||||
|
|
||||||
if (prefs.input_flash_hilight)
|
if (prefs.input_flash_hilight && !prefs.away_omit_alerts)
|
||||||
fe_flash_window (sess); /* taskbar flash */
|
fe_flash_window (sess); /* taskbar flash */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -578,7 +578,7 @@ tray_hilight_cb (char *word[], void *userdata)
|
||||||
/*if (tray_status == TS_HIGHLIGHT)
|
/*if (tray_status == TS_HIGHLIGHT)
|
||||||
return XCHAT_EAT_NONE;*/
|
return XCHAT_EAT_NONE;*/
|
||||||
|
|
||||||
if (prefs.input_tray_hilight)
|
if (prefs.input_tray_hilight && !prefs.away_omit_alerts)
|
||||||
{
|
{
|
||||||
tray_set_flash (ICON_HILIGHT);
|
tray_set_flash (ICON_HILIGHT);
|
||||||
|
|
||||||
|
@ -592,7 +592,7 @@ tray_hilight_cb (char *word[], void *userdata)
|
||||||
tray_hilight_count, word[1], xchat_get_info (ph, "channel"));
|
tray_hilight_count, word[1], xchat_get_info (ph, "channel"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prefs.input_balloon_hilight)
|
if (prefs.input_balloon_hilight && !prefs.away_omit_alerts)
|
||||||
tray_set_balloonf (word[2], _(DISPLAY_NAME": Highlighted message from: %s (%s)"),
|
tray_set_balloonf (word[2], _(DISPLAY_NAME": Highlighted message from: %s (%s)"),
|
||||||
word[1], xchat_get_info (ph, "channel"));
|
word[1], xchat_get_info (ph, "channel"));
|
||||||
|
|
||||||
|
@ -605,7 +605,7 @@ tray_message_cb (char *word[], void *userdata)
|
||||||
if (/*tray_status == TS_MESSAGE ||*/ tray_status == TS_HIGHLIGHT)
|
if (/*tray_status == TS_MESSAGE ||*/ tray_status == TS_HIGHLIGHT)
|
||||||
return XCHAT_EAT_NONE;
|
return XCHAT_EAT_NONE;
|
||||||
|
|
||||||
if (prefs.input_tray_chans)
|
if (prefs.input_tray_chans && !prefs.away_omit_alerts)
|
||||||
{
|
{
|
||||||
tray_set_flash (ICON_MSG);
|
tray_set_flash (ICON_MSG);
|
||||||
|
|
||||||
|
@ -617,7 +617,7 @@ tray_message_cb (char *word[], void *userdata)
|
||||||
tray_set_tipf (_(DISPLAY_NAME": %u new public messages."), tray_pub_count);
|
tray_set_tipf (_(DISPLAY_NAME": %u new public messages."), tray_pub_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prefs.input_balloon_chans)
|
if (prefs.input_balloon_chans && !prefs.away_omit_alerts)
|
||||||
tray_set_balloonf (word[2], _(DISPLAY_NAME": New public message from: %s (%s)"),
|
tray_set_balloonf (word[2], _(DISPLAY_NAME": New public message from: %s (%s)"),
|
||||||
word[1], xchat_get_info (ph, "channel"));
|
word[1], xchat_get_info (ph, "channel"));
|
||||||
|
|
||||||
|
@ -646,7 +646,7 @@ tray_priv (char *from, char *text)
|
||||||
tray_set_tipf (_(DISPLAY_NAME": %u private messages, latest from: %s (%s)"),
|
tray_set_tipf (_(DISPLAY_NAME": %u private messages, latest from: %s (%s)"),
|
||||||
tray_priv_count, from, network);
|
tray_priv_count, from, network);
|
||||||
|
|
||||||
if (prefs.input_balloon_priv)
|
if (prefs.input_balloon_priv && !prefs.away_omit_alerts)
|
||||||
tray_set_balloonf (text, _(DISPLAY_NAME": Private message from: %s (%s)"),
|
tray_set_balloonf (text, _(DISPLAY_NAME": Private message from: %s (%s)"),
|
||||||
from, network);
|
from, network);
|
||||||
}
|
}
|
||||||
|
@ -657,7 +657,7 @@ tray_priv_cb (char *word[], void *userdata)
|
||||||
/*if (tray_status == TS_HIGHLIGHT)
|
/*if (tray_status == TS_HIGHLIGHT)
|
||||||
return XCHAT_EAT_NONE;*/
|
return XCHAT_EAT_NONE;*/
|
||||||
|
|
||||||
if (prefs.input_tray_priv)
|
if (prefs.input_tray_priv && !prefs.away_omit_alerts)
|
||||||
tray_priv (word[1], word[2]);
|
tray_priv (word[1], word[2]);
|
||||||
|
|
||||||
return XCHAT_EAT_NONE;
|
return XCHAT_EAT_NONE;
|
||||||
|
@ -669,7 +669,7 @@ tray_invited_cb (char *word[], void *userdata)
|
||||||
/*if (tray_status == TS_HIGHLIGHT)
|
/*if (tray_status == TS_HIGHLIGHT)
|
||||||
return XCHAT_EAT_NONE;*/
|
return XCHAT_EAT_NONE;*/
|
||||||
|
|
||||||
if (prefs.input_tray_priv)
|
if (prefs.input_tray_priv && !prefs.away_omit_alerts)
|
||||||
tray_priv (word[2], "Invited");
|
tray_priv (word[2], "Invited");
|
||||||
|
|
||||||
return XCHAT_EAT_NONE;
|
return XCHAT_EAT_NONE;
|
||||||
|
@ -687,7 +687,7 @@ tray_dcc_cb (char *word[], void *userdata)
|
||||||
if (!network)
|
if (!network)
|
||||||
network = xchat_get_info (ph, "server");
|
network = xchat_get_info (ph, "server");
|
||||||
|
|
||||||
if (prefs.input_tray_priv)
|
if (prefs.input_tray_priv && !prefs.away_omit_alerts)
|
||||||
{
|
{
|
||||||
tray_set_flash (ICON_FILE);
|
tray_set_flash (ICON_FILE);
|
||||||
|
|
||||||
|
@ -700,7 +700,7 @@ tray_dcc_cb (char *word[], void *userdata)
|
||||||
tray_file_count, word[1], network);
|
tray_file_count, word[1], network);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prefs.input_balloon_priv)
|
if (prefs.input_balloon_priv && !prefs.away_omit_alerts)
|
||||||
tray_set_balloonf ("", _(DISPLAY_NAME": File offer from: %s (%s)"),
|
tray_set_balloonf ("", _(DISPLAY_NAME": File offer from: %s (%s)"),
|
||||||
word[1], network);
|
word[1], network);
|
||||||
|
|
||||||
|
|
|
@ -361,6 +361,7 @@ static const setting alert_settings[] =
|
||||||
{ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0},
|
{ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0},
|
||||||
|
|
||||||
{ST_TOGGLE, N_("Enable system tray icon"), P_OFFINTNL(gui_tray), 0, 0, 0},
|
{ST_TOGGLE, N_("Enable system tray icon"), P_OFFINTNL(gui_tray), 0, 0, 0},
|
||||||
|
{ST_TOGGLE, N_("Omit alerts when marked as being away"), P_OFFINTNL(away_omit_alerts), 0, 0, 0},
|
||||||
|
|
||||||
{ST_HEADER, N_("Highlighted Messages"),0,0,0},
|
{ST_HEADER, N_("Highlighted Messages"),0,0,0},
|
||||||
{ST_LABEL, N_("Highlighted messages are ones where your nickname is mentioned, but also:"), 0, 0, 0, 1},
|
{ST_LABEL, N_("Highlighted messages are ones where your nickname is mentioned, but also:"), 0, 0, 0, 1},
|
||||||
|
@ -381,6 +382,8 @@ static const setting alert_settings_hextray[] =
|
||||||
{ST_3OGGLE, N_("Blink task bar on:"), 0, 0, (void *)taskbarlist, 0},
|
{ST_3OGGLE, N_("Blink task bar on:"), 0, 0, (void *)taskbarlist, 0},
|
||||||
{ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0},
|
{ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0},
|
||||||
|
|
||||||
|
{ST_TOGGLE, N_("Omit alerts when marked as being away"), P_OFFINTNL(away_omit_alerts), 0, 0, 0},
|
||||||
|
|
||||||
{ST_HEADER, N_("Highlighted Messages"),0,0,0},
|
{ST_HEADER, N_("Highlighted Messages"),0,0,0},
|
||||||
{ST_LABEL, N_("Highlighted messages are ones where your nickname is mentioned, but also:"), 0, 0, 0, 1},
|
{ST_LABEL, N_("Highlighted messages are ones where your nickname is mentioned, but also:"), 0, 0, 0, 1},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue