diff options
author | James Booth <boothj5@gmail.com> | 2016-02-07 01:15:40 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2016-02-07 01:15:40 +0000 |
commit | 62b0cdd8fd3e811033f58d39a744d7f7eb973e3c (patch) | |
tree | 43f9acb0313f61980290fbf59f4dada7b9128ee9 /src/config | |
parent | abc2f0de39e39638fc519ad38de55d5ce0d93f28 (diff) | |
download | profani-tty-62b0cdd8fd3e811033f58d39a744d7f7eb973e3c.tar.gz |
Fix room notification reminders
Diffstat (limited to 'src/config')
-rw-r--r-- | src/config/preferences.c | 36 | ||||
-rw-r--r-- | src/config/preferences.h | 1 |
2 files changed, 37 insertions, 0 deletions
diff --git a/src/config/preferences.c b/src/config/preferences.c index 12870bb1..96d97f39 100644 --- a/src/config/preferences.c +++ b/src/config/preferences.c @@ -277,6 +277,42 @@ prefs_do_room_notify(gboolean current_win, const char *const roomjid, const char return FALSE; } +gboolean +prefs_do_room_notify_mention(const char *const roomjid, int unread, gboolean mention, gboolean trigger) +{ + gboolean notify_room = FALSE; + if (g_key_file_has_key(prefs, roomjid, "notify", NULL)) { + notify_room = g_key_file_get_boolean(prefs, roomjid, "notify", NULL); + } else { + notify_room = prefs_get_boolean(PREF_NOTIFY_ROOM); + } + if (notify_room && unread > 0) { + return TRUE; + } + + gboolean notify_mention = FALSE; + if (g_key_file_has_key(prefs, roomjid, "notify.mention", NULL)) { + notify_mention = g_key_file_get_boolean(prefs, roomjid, "notify.mention", NULL); + } else { + notify_mention = prefs_get_boolean(PREF_NOTIFY_ROOM_MENTION); + } + if (notify_mention && mention) { + return TRUE; + } + + gboolean notify_trigger = FALSE; + if (g_key_file_has_key(prefs, roomjid, "notify.trigger", NULL)) { + notify_trigger = g_key_file_get_boolean(prefs, roomjid, "notify.trigger", NULL); + } else { + notify_trigger = prefs_get_boolean(PREF_NOTIFY_ROOM_TRIGGER); + } + if (notify_trigger && trigger) { + return TRUE; + } + + return FALSE; +} + void prefs_set_room_notify(const char *const roomjid, gboolean value) { diff --git a/src/config/preferences.h b/src/config/preferences.h index a89ee65b..d97cd015 100644 --- a/src/config/preferences.h +++ b/src/config/preferences.h @@ -235,6 +235,7 @@ void prefs_set_string(preference_t pref, char *value); gboolean prefs_do_chat_notify(gboolean current_win); gboolean prefs_do_room_notify(gboolean current_win, const char *const roomjid, const char *const mynick, const char *const theirnick, const char *const message, gboolean mention, gboolean trigger_found); +gboolean prefs_do_room_notify_mention(const char *const roomjid, int unread, gboolean mention, gboolean trigger); GList* prefs_message_get_triggers(const char *const message); void prefs_set_room_notify(const char *const roomjid, gboolean value); |