1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-06-23 21:45:30 +00:00

Implemented /console private setting

This commit is contained in:
James Booth 2016-02-03 23:39:20 +00:00
parent 19a3066e28
commit bab75cae15
13 changed files with 169 additions and 130 deletions

View File

@ -1047,10 +1047,12 @@ static struct cmd_t command_defs[] =
cmd_console, parse_args, 2, 2, &cons_console_setting,
CMD_TAGS(
CMD_TAG_UI,
CMD_TAG_CHAT,
CMD_TAG_GROUPCHAT)
CMD_SYN(
"/console chat all|first|none",
"/console muc all|first|none")
"/console muc all|first|none",
"/console private all|first|none")
CMD_DESC(
"Configure what is displayed in the console window when messages are received. "
"The default is set to 'all' for all types of messages.")
@ -1060,7 +1062,10 @@ static struct cmd_t command_defs[] =
{ "chat none", "Do not show any new chat messages in the console window." },
{ "muc all", "Indicate all new chat room messages in the console." },
{ "muc first", "Indicate only the first new message in each room in the console." },
{ "muc none", "Do not show any new chat room messages in the console window." })
{ "muc none", "Do not show any new chat room messages in the console window." },
{ "private all", "Indicate all new private room messages in the console." },
{ "private first", "Indicate only the first private room message in the console." },
{ "private none", "Do not show any new private room messages in the console window." })
CMD_NOEXAMPLES
},
@ -2526,6 +2531,7 @@ cmd_init(void)
console_ac = autocomplete_new();
autocomplete_add(console_ac, "chat");
autocomplete_add(console_ac, "muc");
autocomplete_add(console_ac, "private");
console_msg_ac = autocomplete_new();
autocomplete_add(console_msg_ac, "all");
@ -4418,6 +4424,10 @@ _console_autocomplete(ProfWin *window, const char *const input)
if (result) {
return result;
}
result = autocomplete_param_with_ac(input, "/console private", console_msg_ac, TRUE);
if (result) {
return result;
}
result = autocomplete_param_with_ac(input, "/console", console_ac, TRUE);
if (result) {

View File

@ -4409,7 +4409,7 @@ cmd_beep(ProfWin *window, const char *const command, gchar **args)
gboolean
cmd_console(ProfWin *window, const char *const command, gchar **args)
{
if ((g_strcmp0(args[0], "chat") != 0) && (g_strcmp0(args[0], "muc") != 0)) {
if ((g_strcmp0(args[0], "chat") != 0) && (g_strcmp0(args[0], "muc") != 0) && (g_strcmp0(args[0], "private") != 0)) {
cons_bad_cmd_usage(command);
return TRUE;
}
@ -4432,6 +4432,12 @@ cmd_console(ProfWin *window, const char *const command, gchar **args)
return TRUE;
}
if (g_strcmp0(args[0], "private") == 0) {
prefs_set_string(PREF_CONSOLE_PRIVATE, setting);
cons_show("Console private room messages set: %s", setting);
return TRUE;
}
return TRUE;
}

View File

@ -1157,6 +1157,7 @@ _get_group(preference_t pref)
case PREF_INPBLOCK_DYNAMIC:
case PREF_TLS_SHOW:
case PREF_CONSOLE_MUC:
case PREF_CONSOLE_PRIVATE:
case PREF_CONSOLE_CHAT:
return PREF_GROUP_UI;
case PREF_STATES:
@ -1382,6 +1383,8 @@ _get_key(preference_t pref)
return "lastactivity";
case PREF_CONSOLE_MUC:
return "console.muc";
case PREF_CONSOLE_PRIVATE:
return "console.private";
case PREF_CONSOLE_CHAT:
return "console.chat";
default:
@ -1487,7 +1490,7 @@ _get_default_string(preference_t pref)
case PREF_PGP_LOG:
return "redact";
case PREF_CONSOLE_MUC:
return "all";
case PREF_CONSOLE_PRIVATE:
case PREF_CONSOLE_CHAT:
return "all";
default:

View File

@ -133,6 +133,7 @@ typedef enum {
PREF_TLS_SHOW,
PREF_LASTACTIVITY,
PREF_CONSOLE_MUC,
PREF_CONSOLE_PRIVATE,
PREF_CONSOLE_CHAT,
} preference_t;

View File

@ -410,6 +410,7 @@ _load_preferences(void)
_set_string_preference("statuses.chat", PREF_STATUSES_CHAT);
_set_string_preference("statuses.muc", PREF_STATUSES_MUC);
_set_string_preference("console.muc", PREF_CONSOLE_MUC);
_set_string_preference("console.private", PREF_CONSOLE_PRIVATE);
_set_string_preference("console.chat", PREF_CONSOLE_CHAT);
_set_string_preference("roster.by", PREF_ROSTER_BY);
_set_string_preference("roster.order", PREF_ROSTER_ORDER);

View File

@ -384,7 +384,7 @@ cons_show_incoming_message(const char *const short_from, const int win_index, in
}
void
cons_show_incoming_private_message(const char *const nick, const char *const room, const int win_index)
cons_show_incoming_private_message(const char *const nick, const char *const room, const int win_index, int unread)
{
ProfWin *console = wins_get_console();
@ -392,9 +392,17 @@ cons_show_incoming_private_message(const char *const nick, const char *const roo
if (ui_index == 10) {
ui_index = 0;
}
win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< private message: %s in %s (win %d)", nick, room, ui_index);
char *priv_show = prefs_get_string(PREF_CONSOLE_PRIVATE);
if (g_strcmp0(priv_show, "all") == 0) {
win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< private message: %s in %s (win %d)", nick, room, ui_index);
cons_alert();
} else if ((g_strcmp0(priv_show, "first") == 0) && unread == 0) {
win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< private message: %s in %s (win %d)", nick, room, ui_index);
cons_alert();
}
prefs_free_string(priv_show);
}
void
@ -1140,6 +1148,10 @@ cons_console_setting(void)
char *mucsetting = prefs_get_string(PREF_CONSOLE_MUC);
cons_show("Console MUC messages (/console) : %s", mucsetting);
prefs_free_string(mucsetting);
char *privsetting = prefs_get_string(PREF_CONSOLE_PRIVATE);
cons_show("Console private messages (/console) : %s", privsetting);
prefs_free_string(privsetting);
}
void

View File

@ -67,13 +67,14 @@ privwin_incoming_msg(ProfPrivateWin *privatewin, const char *const message, GDat
// not currently viewing chat window with sender
} else {
status_bar_new(num);
cons_show_incoming_private_message(jidp->resourcepart, jidp->barejid, num, privatewin->unread);
win_print_incoming_message(window, timestamp, jidp->resourcepart, message, PROF_MSG_PLAIN);
privatewin->unread++;
if (notify) {
privatewin->notify = TRUE;
}
status_bar_new(num);
cons_show_incoming_private_message(jidp->resourcepart, jidp->barejid, num);
win_print_incoming_message(window, timestamp, jidp->resourcepart, message, PROF_MSG_PLAIN);
if (prefs_get_boolean(PREF_FLASH)) {
flash();

View File

@ -274,7 +274,7 @@ void cons_show_typing(const char *const barejid);
void cons_show_incoming_room_message(const char *const nick, const char *const room, const int win_index,
gboolean mention, GList *triggers, int unread);
void cons_show_incoming_message(const char *const short_from, const int win_index, int unread);
void cons_show_incoming_private_message(const char *const nick, const char *const room, const int win_index);
void cons_show_incoming_private_message(const char *const nick, const char *const room, const int win_index, int unread);
void cons_show_room_invites(GSList *invites);
void cons_show_received_subs(void);
void cons_show_sent_subs(void);

View File

@ -132,3 +132,4 @@ otr.char=
pgp.char=
console.muc=
console.chat=
console.private=

View File

@ -131,3 +131,4 @@ pgp.char=%
tls.show=true
console.muc=first
console.chat=all
console.private=all

View File

@ -127,3 +127,4 @@ pgp.char=%
tls.show=true
console.muc=first
console.chat=all
console.private=all

View File

@ -56,3 +56,4 @@ enc.warn=true
tls.show=true
console.muc=all
console.chat=all
console.private=all

View File

@ -43,3 +43,4 @@ wins.autotidy=false
tls.show=false
console.muc=first
console.chat=first
console.private=first