about summary refs log tree commit diff stats
path: root/src/command/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/command.c')
-rw-r--r--src/command/command.c72
1 files changed, 31 insertions, 41 deletions
diff --git a/src/command/command.c b/src/command/command.c
index b52952b7..456bfe6c 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -1054,7 +1054,7 @@ static struct cmd_t command_defs[] =
     },
 
     { "/notify",
-        cmd_notify, parse_args_with_freetext, 2, 4, &cons_notify_setting,
+        cmd_notify, parse_args_with_freetext, 0, 4, NULL,
         CMD_TAGS(
             CMD_TAG_UI,
             CMD_TAG_CHAT,
@@ -1075,6 +1075,9 @@ static struct cmd_t command_defs[] =
             "/notify room trigger remove <text>",
             "/notify room trigger list",
             "/notify room trigger on|off",
+            "/notify on|off",
+            "/notify mention on|off",
+            "/notify trigger on|off"
             "/notify remind <seconds>",
             "/notify typing on|off",
             "/notify typing current on|off",
@@ -1084,20 +1087,23 @@ static struct cmd_t command_defs[] =
             "Settings for various kinds of desktop notifications.")
         CMD_ARGS(
             { "message on|off",                 "Notifications for regular chat messages." },
-            { "message current on|off",         "Whether messages in the current window trigger notifications." },
+            { "message current on|off",         "Whether to show regular chat message notifications when the window is focussed." },
             { "message text on|off",            "Show message text in regular message notifications." },
             { "message trigger add <text>",     "Notify when specified text included in regular chat message." },
             { "message trigger remove <text>",  "Remove regular chat notification for specified text." },
             { "message trigger list",           "List all regular chat custom text notifications." },
-            { "message trigger on|off",         "Enable or disable all regular chat custom text notifications." },
-            { "room on|off",                    "Notifications for chat room messages, mention triggers notifications only when your nick is mentioned." },
-            { "room mention on|off",            "Notifications for chat room messages when your nick is mentioned." },
-            { "room current on|off",            "Whether chat room messages in the current window trigger notifications." },
+            { "message trigger on|off",         "Enable or disable all regular chat notification triggers." },
+            { "room on|off",                    "Notifications for all chat room messages, 'mention' only notifies when your nick is mentioned." },
+            { "room mention on|off",            "Notifications for all chat room messages when your nick is mentioned." },
+            { "room current on|off",            "Whether to show all chat room messages notifications when the window is focussed." },
             { "room text on|off",               "Show message text in chat room message notifications." },
-            { "room trigger add <text>",        "Notify when specified text included in regular chat message." },
-            { "room trigger remove <text>",     "Remove regular chat notification for specified text." },
-            { "room trigger list",              "List all regular chat custom text notifications." },
-            { "room trigger on|off",            "Enable or disable all regular chat custom text notifications." },
+            { "room trigger add <text>",        "Notify when specified text included in all chat room messages." },
+            { "room trigger remove <text>",     "Remove chat room notification trigger." },
+            { "room trigger list",              "List all chat room triggers." },
+            { "room trigger on|off",            "Enable or disable all chat room notification triggers." },
+            { "on|off",                         "Notifications for the current chat room." },
+            { "mention on|off",                 "Override the global 'mention' setting for the current chat room." },
+            { "trigger on|off",                 "Override the global 'trigger' setting for the current chat room." },
             { "remind <seconds>",               "Notification reminder period for unread messages, use 0 to disable." },
             { "typing on|off",                  "Notifications when contacts are typing." },
             { "typing current on|off",          "Whether typing notifications are triggered for the current window." },
@@ -1942,6 +1948,10 @@ cmd_init(void)
     autocomplete_add(notify_ac, "remind");
     autocomplete_add(notify_ac, "invite");
     autocomplete_add(notify_ac, "sub");
+    autocomplete_add(notify_ac, "on");
+    autocomplete_add(notify_ac, "off");
+    autocomplete_add(notify_ac, "mention");
+    autocomplete_add(notify_ac, "trigger");
 
     notify_message_ac = autocomplete_new();
     autocomplete_add(notify_message_ac, "on");
@@ -3178,9 +3188,14 @@ _notify_autocomplete(ProfWin *window, const char *const input)
         return result;
     }
 
-    result = autocomplete_param_with_func(input, "/notify room current", prefs_autocomplete_boolean_choice);
-    if (result) {
-        return result;
+    gchar *boolean_choices1[] = { "/notify room current", "/notify message current", "/notify typing current",
+        "/notify room text", "/notify room mention", "/notify message text" };
+    for (i = 0; i < ARRAY_SIZE(boolean_choices1); i++) {
+        result = autocomplete_param_with_func(input, boolean_choices1[i],
+            prefs_autocomplete_boolean_choice);
+        if (result) {
+            return result;
+        }
     }
 
     result = autocomplete_param_with_ac(input, "/notify room trigger", notify_trigger_ac, TRUE);
@@ -3188,36 +3203,11 @@ _notify_autocomplete(ProfWin *window, const char *const input)
         return result;
     }
 
-    result = autocomplete_param_with_func(input, "/notify message current", prefs_autocomplete_boolean_choice);
-    if (result) {
-        return result;
-    }
-
     result = autocomplete_param_with_ac(input, "/notify message trigger", notify_trigger_ac, TRUE);
     if (result) {
         return result;
     }
 
-    result = autocomplete_param_with_func(input, "/notify typing current", prefs_autocomplete_boolean_choice);
-    if (result) {
-        return result;
-    }
-
-    result = autocomplete_param_with_func(input, "/notify room text", prefs_autocomplete_boolean_choice);
-    if (result) {
-        return result;
-    }
-
-    result = autocomplete_param_with_func(input, "/notify room mention", prefs_autocomplete_boolean_choice);
-    if (result) {
-        return result;
-    }
-
-    result = autocomplete_param_with_func(input, "/notify message text", prefs_autocomplete_boolean_choice);
-    if (result) {
-        return result;
-    }
-
     result = autocomplete_param_with_ac(input, "/notify room", notify_room_ac, TRUE);
     if (result) {
         return result;
@@ -3233,9 +3223,9 @@ _notify_autocomplete(ProfWin *window, const char *const input)
         return result;
     }
 
-    gchar *boolean_choices[] = { "/notify invite", "/notify sub" };
-    for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) {
-        result = autocomplete_param_with_func(input, boolean_choices[i],
+    gchar *boolean_choices2[] = { "/notify invite", "/notify sub", "/notify mention", "/notify trigger"};
+    for (i = 0; i < ARRAY_SIZE(boolean_choices2); i++) {
+        result = autocomplete_param_with_func(input, boolean_choices2[i],
             prefs_autocomplete_boolean_choice);
         if (result) {
             return result;