about summary refs log tree commit diff stats
path: root/src/ui
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-02-03 23:16:42 +0000
committerJames Booth <boothj5@gmail.com>2016-02-03 23:16:42 +0000
commit19a3066e28166fddfdcad7177034d8e111aa5712 (patch)
treedd9a068f648876df225d3bbb5ad6136b5b1c115f /src/ui
parent72c1c496954c78a09d3fd293131f3aac83c0f58d (diff)
downloadprofani-tty-19a3066e28166fddfdcad7177034d8e111aa5712.tar.gz
Implemented /console chat setting
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/chatwin.c2
-rw-r--r--src/ui/console.c24
-rw-r--r--src/ui/ui.h2
3 files changed, 20 insertions, 8 deletions
diff --git a/src/ui/chatwin.c b/src/ui/chatwin.c
index 79401038..05751f6c 100644
--- a/src/ui/chatwin.c
+++ b/src/ui/chatwin.c
@@ -251,7 +251,7 @@ chatwin_incoming_msg(ProfChatWin *chatwin, const char *const resource, const cha
     // not currently viewing chat window with sender
     } else {
         status_bar_new(num);
-        cons_show_incoming_message(display_name, num);
+        cons_show_incoming_message(display_name, num, chatwin->unread);
 
         if (prefs_get_boolean(PREF_FLASH)) {
             flash();
diff --git a/src/ui/console.c b/src/ui/console.c
index 3d88ac16..c416efde 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -362,7 +362,7 @@ cons_show_incoming_room_message(const char *const nick, const char *const room,
 }
 
 void
-cons_show_incoming_message(const char *const short_from, const int win_index)
+cons_show_incoming_message(const char *const short_from, const int win_index, int unread)
 {
     ProfWin *console = wins_get_console();
 
@@ -370,9 +370,17 @@ cons_show_incoming_message(const char *const short_from, const int win_index)
     if (ui_index == 10) {
         ui_index = 0;
     }
-    win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< chat message: %s (win %d)", short_from, ui_index);
 
-    cons_alert();
+    char *chat_show = prefs_get_string(PREF_CONSOLE_CHAT);
+    if (g_strcmp0(chat_show, "all") == 0) {
+        win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< chat message: %s (win %d)", short_from, ui_index);
+        cons_alert();
+    } else if ((g_strcmp0(chat_show, "first") == 0) && unread == 0) {
+        win_vprint(console, '-', 0, NULL, 0, THEME_INCOMING, "", "<< chat message: %s (win %d)", short_from, ui_index);
+        cons_alert();
+    }
+
+    prefs_free_string(chat_show);
 }
 
 void
@@ -1125,9 +1133,13 @@ cons_encwarn_setting(void)
 void
 cons_console_setting(void)
 {
-    char *setting = prefs_get_string(PREF_CONSOLE_MUC);
-    cons_show("Console MUC messages (/console)    : %s", setting);
-    prefs_free_string(setting);
+    char *chatsetting = prefs_get_string(PREF_CONSOLE_CHAT);
+    cons_show("Console chat messages (/console)   : %s", chatsetting);
+    prefs_free_string(chatsetting);
+
+    char *mucsetting = prefs_get_string(PREF_CONSOLE_MUC);
+    cons_show("Console MUC messages (/console)    : %s", mucsetting);
+    prefs_free_string(mucsetting);
 }
 
 void
diff --git a/src/ui/ui.h b/src/ui/ui.h
index a20e30dc..8778e65e 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -273,7 +273,7 @@ void cons_check_version(gboolean not_available_msg);
 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);
+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_room_invites(GSList *invites);
 void cons_show_received_subs(void);