about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-02-18 23:06:18 +0000
committerJames Booth <boothj5@gmail.com>2013-02-18 23:06:18 +0000
commitdc30eeacad078d82bf02d03a76d396543836e6c6 (patch)
tree3cc982e5ab59b625775fe17ae5d605d41532cf38 /src
parent502d7dc9fe93070ec6750d45ce8c224959ba0a1e (diff)
downloadprofani-tty-dc30eeacad078d82bf02d03a76d396543836e6c6.tar.gz
Only show resources for connected account
Diffstat (limited to 'src')
-rw-r--r--src/ui/windows.c136
1 files changed, 69 insertions, 67 deletions
diff --git a/src/ui/windows.c b/src/ui/windows.c
index e5670ac4..4e5bf461 100644
--- a/src/ui/windows.c
+++ b/src/ui/windows.c
@@ -1358,85 +1358,87 @@ cons_show_account(ProfAccount *account)
         account->priority_chat, account->priority_online, account->priority_away,
         account->priority_xa, account->priority_dnd);
 
-    GList *resources = jabber_get_available_resources();
-    GList *ordered_resources = NULL;
-
-    WINDOW *win = console->win;
-    if (resources != NULL) {
-        _win_show_time(win, '-');
-        wprintw(win, "Resources:\n");
-
-        // sort in order of availabiltiy
-        while (resources != NULL) {
-            Resource *resource = resources->data;
-            ordered_resources = g_list_insert_sorted(ordered_resources,
-                resource, (GCompareFunc)resource_compare_availability);
-            resources = g_list_next(resources);
-        }
-    }
+    if ((jabber_get_connection_status() == JABBER_CONNECTED) &&
+            (g_strcmp0(jabber_get_account_name(), account->name) == 0)) {
+        GList *resources = jabber_get_available_resources();
+        GList *ordered_resources = NULL;
 
-    while (ordered_resources != NULL) {
-        Resource *resource = ordered_resources->data;
-        const char *resource_presence = string_from_resource_presence(resource->presence);
-        _win_show_time(win, '-');
-        _presence_colour_on(win, resource_presence);
-        wprintw(win, "  %s (%d), %s", resource->name, resource->priority, resource_presence);
-        if (resource->status != NULL) {
-            wprintw(win, ", \"%s\"", resource->status);
+        WINDOW *win = console->win;
+        if (resources != NULL) {
+            _win_show_time(win, '-');
+            wprintw(win, "Resources:\n");
+
+            // sort in order of availabiltiy
+            while (resources != NULL) {
+                Resource *resource = resources->data;
+                ordered_resources = g_list_insert_sorted(ordered_resources,
+                    resource, (GCompareFunc)resource_compare_availability);
+                resources = g_list_next(resources);
+            }
         }
-        wprintw(win, "\n");
-        _presence_colour_off(win, resource_presence);
 
-        if (resource->caps_str != NULL) {
-            Capabilities *caps = caps_get(resource->caps_str);
-            if (caps != NULL) {
-                // show identity
-                if ((caps->category != NULL) || (caps->type != NULL) || (caps->name != NULL)) {
-                    _win_show_time(win, '-');
-                    wprintw(win, "    Identity: ");
-                    if (caps->name != NULL) {
-                        wprintw(win, "%s", caps->name);
-                        if ((caps->category != NULL) || (caps->type != NULL)) {
-                            wprintw(win, " ");
+        while (ordered_resources != NULL) {
+            Resource *resource = ordered_resources->data;
+            const char *resource_presence = string_from_resource_presence(resource->presence);
+            _win_show_time(win, '-');
+            _presence_colour_on(win, resource_presence);
+            wprintw(win, "  %s (%d), %s", resource->name, resource->priority, resource_presence);
+            if (resource->status != NULL) {
+                wprintw(win, ", \"%s\"", resource->status);
+            }
+            wprintw(win, "\n");
+            _presence_colour_off(win, resource_presence);
+
+            if (resource->caps_str != NULL) {
+                Capabilities *caps = caps_get(resource->caps_str);
+                if (caps != NULL) {
+                    // show identity
+                    if ((caps->category != NULL) || (caps->type != NULL) || (caps->name != NULL)) {
+                        _win_show_time(win, '-');
+                        wprintw(win, "    Identity: ");
+                        if (caps->name != NULL) {
+                            wprintw(win, "%s", caps->name);
+                            if ((caps->category != NULL) || (caps->type != NULL)) {
+                                wprintw(win, " ");
+                            }
+                        }
+                        if (caps->type != NULL) {
+                            wprintw(win, "%s", caps->type);
+                            if (caps->category != NULL) {
+                                wprintw(win, " ");
+                            }
                         }
-                    }
-                    if (caps->type != NULL) {
-                        wprintw(win, "%s", caps->type);
                         if (caps->category != NULL) {
-                            wprintw(win, " ");
+                            wprintw(win, "%s", caps->category);
                         }
+                        wprintw(win, "\n");
                     }
-                    if (caps->category != NULL) {
-                        wprintw(win, "%s", caps->category);
+                    if (caps->software != NULL) {
+                        _win_show_time(win, '-');
+                        wprintw(win, "    Software: %s", caps->software);
+                    }
+                    if (caps->software_version != NULL) {
+                        wprintw(win, ", %s", caps->software_version);
+                    }
+                    if ((caps->software != NULL) || (caps->software_version != NULL)) {
+                        wprintw(win, "\n");
+                    }
+                    if (caps->os != NULL) {
+                        _win_show_time(win, '-');
+                        wprintw(win, "    OS: %s", caps->os);
+                    }
+                    if (caps->os_version != NULL) {
+                        wprintw(win, ", %s", caps->os_version);
+                    }
+                    if ((caps->os != NULL) || (caps->os_version != NULL)) {
+                        wprintw(win, "\n");
                     }
-                    wprintw(win, "\n");
-                }
-                if (caps->software != NULL) {
-                    _win_show_time(win, '-');
-                    wprintw(win, "    Software: %s", caps->software);
-                }
-                if (caps->software_version != NULL) {
-                    wprintw(win, ", %s", caps->software_version);
-                }
-                if ((caps->software != NULL) || (caps->software_version != NULL)) {
-                    wprintw(win, "\n");
-                }
-                if (caps->os != NULL) {
-                    _win_show_time(win, '-');
-                    wprintw(win, "    OS: %s", caps->os);
-                }
-                if (caps->os_version != NULL) {
-                    wprintw(win, ", %s", caps->os_version);
-                }
-                if ((caps->os != NULL) || (caps->os_version != NULL)) {
-                    wprintw(win, "\n");
                 }
             }
-        }
 
-        ordered_resources = g_list_next(ordered_resources);
+            ordered_resources = g_list_next(ordered_resources);
+        }
     }
-
 }
 
 void