| 170 if (PURPLE_IS_BUDDY(node)) { |
170 if (PURPLE_IS_BUDDY(node)) { |
| 171 PurpleBuddy *buddy = (PurpleBuddy*)node; |
171 PurpleBuddy *buddy = (PurpleBuddy*)node; |
| 172 FinchBListNode *fnode = purple_blist_node_get_ui_data(node); |
172 FinchBListNode *fnode = purple_blist_node_get_ui_data(node); |
| 173 if (!purple_buddy_get_contact(buddy)) |
173 if (!purple_buddy_get_contact(buddy)) |
| 174 return FALSE; /* When a new buddy is added and show-offline is set */ |
174 return FALSE; /* When a new buddy is added and show-offline is set */ |
| 175 if (PURPLE_IS_BUDDY_ONLINE(buddy)) |
175 if (PURPLE_BUDDY_IS_ONLINE(buddy)) |
| 176 return TRUE; /* The buddy is online */ |
176 return TRUE; /* The buddy is online */ |
| 177 if (!purple_account_is_connected(purple_buddy_get_account(buddy))) |
177 if (!purple_account_is_connected(purple_buddy_get_account(buddy))) |
| 178 return FALSE; /* The account is disconnected. Do not show */ |
178 return FALSE; /* The account is disconnected. Do not show */ |
| 179 if (offline) |
179 if (offline) |
| 180 return TRUE; /* We want to see offline buddies too */ |
180 return TRUE; /* We want to see offline buddies too */ |
| 238 |
238 |
| 239 str = g_string_new(""); |
239 str = g_string_new(""); |
| 240 |
240 |
| 241 if (PURPLE_IS_CONTACT(node)) { |
241 if (PURPLE_IS_CONTACT(node)) { |
| 242 PurpleBuddy *pr = purple_contact_get_priority_buddy((PurpleContact*)node); |
242 PurpleBuddy *pr = purple_contact_get_priority_buddy((PurpleContact*)node); |
| 243 gboolean offline = !PURPLE_IS_BUDDY_ONLINE(pr); |
243 gboolean offline = !PURPLE_BUDDY_IS_ONLINE(pr); |
| 244 gboolean showoffline = purple_prefs_get_bool(PREF_ROOT "/showoffline"); |
244 gboolean showoffline = purple_prefs_get_bool(PREF_ROOT "/showoffline"); |
| 245 const char *name = purple_buddy_get_name(pr); |
245 const char *name = purple_buddy_get_name(pr); |
| 246 |
246 |
| 247 title = g_strdup(name); |
247 title = g_strdup(name); |
| 248 tooltip_for_buddy(pr, str, TRUE); |
248 tooltip_for_buddy(pr, str, TRUE); |
| 255 } |
255 } |
| 256 if (node == (PurpleBListNode*)pr) |
256 if (node == (PurpleBListNode*)pr) |
| 257 continue; |
257 continue; |
| 258 if (!purple_account_is_connected(purple_buddy_get_account(buddy))) |
258 if (!purple_account_is_connected(purple_buddy_get_account(buddy))) |
| 259 continue; |
259 continue; |
| 260 if (!showoffline && !PURPLE_IS_BUDDY_ONLINE(buddy)) |
260 if (!showoffline && !PURPLE_BUDDY_IS_ONLINE(buddy)) |
| 261 continue; |
261 continue; |
| 262 str = g_string_append(str, "\n----------\n"); |
262 str = g_string_append(str, "\n----------\n"); |
| 263 tooltip_for_buddy(buddy, str, FALSE); |
263 tooltip_for_buddy(buddy, str, FALSE); |
| 264 } |
264 } |
| 265 } else if (PURPLE_IS_BUDDY(node)) { |
265 } else if (PURPLE_IS_BUDDY(node)) { |
| 266 PurpleBuddy *buddy = (PurpleBuddy *)node; |
266 PurpleBuddy *buddy = (PurpleBuddy *)node; |
| 267 tooltip_for_buddy(buddy, str, TRUE); |
267 tooltip_for_buddy(buddy, str, TRUE); |
| 268 title = g_strdup(purple_buddy_get_name(buddy)); |
268 title = g_strdup(purple_buddy_get_name(buddy)); |
| 269 if (!PURPLE_IS_BUDDY_ONLINE((PurpleBuddy*)node)) |
269 if (!PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node)) |
| 270 lastseen = purple_blist_node_get_int(node, "last_seen"); |
270 lastseen = purple_blist_node_get_int(node, "last_seen"); |
| 271 } else if (PURPLE_IS_GROUP(node)) { |
271 } else if (PURPLE_IS_GROUP(node)) { |
| 272 PurpleGroup *group = (PurpleGroup *)node; |
272 PurpleGroup *group = (PurpleGroup *)node; |
| 273 |
273 |
| 274 g_string_append_printf(str, _("Online: %d\nTotal: %d"), |
274 g_string_append_printf(str, _("Online: %d\nTotal: %d"), |
| 428 { |
428 { |
| 429 PurpleBListNode *node; |
429 PurpleBListNode *node; |
| 430 for (node = purple_blist_node_get_first_child(((PurpleBListNode*)contact)); node; |
430 for (node = purple_blist_node_get_first_child(((PurpleBListNode*)contact)); node; |
| 431 node = purple_blist_node_get_sibling_next(node)) { |
431 node = purple_blist_node_get_sibling_next(node)) { |
| 432 FinchBListNode *fnode = purple_blist_node_get_ui_data(node); |
432 FinchBListNode *fnode = purple_blist_node_get_ui_data(node); |
| 433 if (PURPLE_IS_BUDDY_ONLINE((PurpleBuddy*)node) || |
433 if (PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node) || |
| 434 (fnode && fnode->signed_timer)) |
434 (fnode && fnode->signed_timer)) |
| 435 return TRUE; |
435 return TRUE; |
| 436 } |
436 } |
| 437 return FALSE; |
437 return FALSE; |
| 438 } |
438 } |