diff options
author | James Booth <boothj5@gmail.com> | 2015-12-29 23:00:49 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-12-29 23:00:49 +0000 |
commit | 8ea228480c0c991814d057b2fe380396d3da4381 (patch) | |
tree | b8fc215c6be78386a1e588e54f9b6a300f415b05 /src | |
parent | 377a63d038be41986106c115e658ab199c570109 (diff) | |
download | profani-tty-8ea228480c0c991814d057b2fe380396d3da4381.tar.gz |
Added console MUC message preference
Diffstat (limited to 'src')
-rw-r--r-- | src/config/preferences.c | 5 | ||||
-rw-r--r-- | src/config/preferences.h | 1 | ||||
-rw-r--r-- | src/event/server_events.c | 7 | ||||
-rw-r--r-- | src/ui/console.c | 6 |
4 files changed, 17 insertions, 2 deletions
diff --git a/src/config/preferences.c b/src/config/preferences.c index 088fb527..bf576864 100644 --- a/src/config/preferences.c +++ b/src/config/preferences.c @@ -1034,6 +1034,7 @@ _get_group(preference_t pref) case PREF_ENC_WARN: case PREF_INPBLOCK_DYNAMIC: case PREF_TLS_SHOW: + case PREF_CONSOLE_MUC: return PREF_GROUP_UI; case PREF_STATES: case PREF_OUTTYPE: @@ -1238,6 +1239,8 @@ _get_key(preference_t pref) return "tls.show"; case PREF_LASTACTIVITY: return "lastactivity"; + case PREF_CONSOLE_MUC: + return "console.muc"; default: return NULL; } @@ -1324,6 +1327,8 @@ _get_default_string(preference_t pref) return "%d/%m/%y %H:%M:%S"; case PREF_PGP_LOG: return "redact"; + case PREF_CONSOLE_MUC: + return "all"; default: return NULL; } diff --git a/src/config/preferences.h b/src/config/preferences.h index 910245c1..03d59e76 100644 --- a/src/config/preferences.h +++ b/src/config/preferences.h @@ -123,6 +123,7 @@ typedef enum { PREF_TLS_CERTPATH, PREF_TLS_SHOW, PREF_LASTACTIVITY, + PREF_CONSOLE_MUC, } preference_t; typedef struct prof_alias_t { diff --git a/src/event/server_events.c b/src/event/server_events.c index 176fc57b..9760d157 100644 --- a/src/event/server_events.c +++ b/src/event/server_events.c @@ -240,7 +240,12 @@ sv_ev_room_message(const char *const room_jid, const char *const nick, // not currently on groupchat window } else { status_bar_new(num); - cons_show_incoming_room_message(nick, mucwin->roomjid, num); + char *muc_show = prefs_get_string(PREF_CONSOLE_MUC); + if (g_strcmp0(muc_show, "all") == 0) { + cons_show_incoming_room_message(nick, mucwin->roomjid, num); + } else if (g_strcmp0(muc_show, "first") == 0 && mucwin->unread == 0) { + cons_show_incoming_room_message(NULL, mucwin->roomjid, num); + } if (prefs_get_boolean(PREF_FLASH) && (strcmp(nick, my_nick) != 0)) { flash(); diff --git a/src/ui/console.c b/src/ui/console.c index 7776af37..c0d3fabe 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -311,7 +311,11 @@ cons_show_incoming_room_message(const char *const nick, const char *const room, ui_index = 0; } - win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< room message: %s in %s (win %d)", nick, room, ui_index); + if (nick) { + win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< room message: %s in %s (win %d)", nick, room, ui_index); + } else { + win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< room message: %s (win %d)", room, ui_index); + } cons_alert(); } |