about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-01-02 01:37:03 +0000
committerJames Booth <boothj5@gmail.com>2016-01-02 01:37:03 +0000
commit254c83d2d16037b22c060ed57d3c31de82f4750a (patch)
tree6c74f5fa0ee88797b68065198a965c0e9ff33ec4
parentcf80fdc32952fde5873aab0b00edabfd5bdd544b (diff)
downloadprofani-tty-254c83d2d16037b22c060ed57d3c31de82f4750a.tar.gz
Added /roster show|hide rooms
-rw-r--r--src/command/command.c7
-rw-r--r--src/command/commands.c14
-rw-r--r--src/ui/console.c5
-rw-r--r--src/ui/rosterwin.c2
4 files changed, 25 insertions, 3 deletions
diff --git a/src/command/command.c b/src/command/command.c
index 36579990..5a7f4ca7 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -276,8 +276,8 @@ static struct cmd_t command_defs[] =
         CMD_SYN(
             "/roster",
             "/roster online",
-            "/roster show [offline|resource|presence|status|empty|count|priority]",
-            "/roster hide [offline|resource|presence|status|empty|count|priority]",
+            "/roster show [offline|resource|presence|status|empty|count|priority|rooms]",
+            "/roster hide [offline|resource|presence|status|empty|count|priority|rooms]",
             "/roster by group|presence|none",
             "/roster order name|presence",
             "/roster header char <char>|none",
@@ -307,6 +307,7 @@ static struct cmd_t command_defs[] =
             { "show empty",                 "When grouping by presence, show empty presence groups." },
             { "show count",                 "Show number of contacts in group/presence." },
             { "show priority",              "Show resource priority." },
+            { "show rooms",                 "Show chat rooms in roster panel." },
             { "hide",                       "Hide the roster panel." },
             { "hide offline",               "Hide offline contacts in the roster panel." },
             { "hide resource",              "Hide contact's connected resources in the roster panel." },
@@ -315,6 +316,7 @@ static struct cmd_t command_defs[] =
             { "hide empty",                 "When grouping by presence, hide empty presence groups." },
             { "hide count",                 "Hide number of contacts in group/presence." },
             { "hide priority",              "Hide resource priority." },
+            { "hide rooms",                 "Hide chat rooms in roster panel." },
             { "by group",                   "Group contacts in the roster panel by roster group." },
             { "by presence",                "Group contacts in the roster panel by presence." },
             { "by none",                    "No grouping in the roster panel." },
@@ -2167,6 +2169,7 @@ cmd_init(void)
     autocomplete_add(roster_show_ac, "empty");
     autocomplete_add(roster_show_ac, "count");
     autocomplete_add(roster_show_ac, "priority");
+    autocomplete_add(roster_show_ac, "rooms");
 
     roster_by_ac = autocomplete_new();
     autocomplete_add(roster_by_ac, "group");
diff --git a/src/command/commands.c b/src/command/commands.c
index 192f241d..15b740e3 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -2046,6 +2046,13 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args)
                 rosterwin_roster();
             }
             return TRUE;
+        } else if (g_strcmp0(args[1], "rooms") == 0) {
+            cons_show("Roster rooms enabled");
+            prefs_set_boolean(PREF_ROSTER_ROOMS, TRUE);
+            if (conn_status == JABBER_CONNECTED) {
+                rosterwin_roster();
+            }
+            return TRUE;
         } else {
             cons_bad_cmd_usage(command);
             return TRUE;
@@ -2107,6 +2114,13 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args)
                 rosterwin_roster();
             }
             return TRUE;
+        } else if (g_strcmp0(args[1], "rooms") == 0) {
+            cons_show("Roster rooms disabled");
+            prefs_set_boolean(PREF_ROSTER_ROOMS, FALSE);
+            if (conn_status == JABBER_CONNECTED) {
+                rosterwin_roster();
+            }
+            return TRUE;
         } else {
             cons_bad_cmd_usage(command);
             return TRUE;
diff --git a/src/ui/console.c b/src/ui/console.c
index 315e933c..a5406cab 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -1325,6 +1325,11 @@ cons_roster_setting(void)
     else
         cons_show("Roster priority (/roster)        : hide");
 
+    if (prefs_get_boolean(PREF_ROSTER_ROOMS))
+        cons_show("Roster rooms (/roster)           : show");
+    else
+        cons_show("Roster rooms (/roster)           : hide");
+
     char *by = prefs_get_string(PREF_ROSTER_BY);
     cons_show("Roster by (/roster)              : %s", by);
     prefs_free_string(by);
diff --git a/src/ui/rosterwin.c b/src/ui/rosterwin.c
index aa52fc44..b7cf9396 100644
--- a/src/ui/rosterwin.c
+++ b/src/ui/rosterwin.c
@@ -417,7 +417,7 @@ _rosterwin_rooms(ProfLayoutSplit *layout, gboolean newline)
         if (ch) {
             g_string_append_printf(title_str, "%c", ch);
         }
-        g_string_append(title_str, "rooms");
+        g_string_append(title_str, "Rooms");
         if (prefs_get_boolean(PREF_ROSTER_COUNT)) {
             g_string_append_printf(title_str, " (%d)", g_list_length(rooms));
         }