Mercurial > pidgin
comparison finch/gntblist.c @ 18332:1862a23b1751
Show better tooltips for contacts.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Thu, 28 Jun 2007 01:09:51 +0000 |
parents | 70325b0c5792 |
children | 2d4df5ef0090 |
comparison
equal
deleted
inserted
replaced
18331:d19a86daa7f8 | 18332:1862a23b1751 |
---|---|
1258 gnt_screen_menu_show(GNT_MENU(context)); | 1258 gnt_screen_menu_show(GNT_MENU(context)); |
1259 g_free(title); | 1259 g_free(title); |
1260 } | 1260 } |
1261 | 1261 |
1262 static void | 1262 static void |
1263 tooltip_for_buddy(PurpleBuddy *buddy, GString *str) | 1263 tooltip_for_buddy(PurpleBuddy *buddy, GString *str, gboolean full) |
1264 { | 1264 { |
1265 PurplePlugin *prpl; | 1265 PurplePlugin *prpl; |
1266 PurplePluginProtocolInfo *prpl_info; | 1266 PurplePluginProtocolInfo *prpl_info; |
1267 PurpleAccount *account; | 1267 PurpleAccount *account; |
1268 PurpleNotifyUserInfo *user_info; | 1268 PurpleNotifyUserInfo *user_info; |
1271 | 1271 |
1272 user_info = purple_notify_user_info_new(); | 1272 user_info = purple_notify_user_info_new(); |
1273 | 1273 |
1274 account = purple_buddy_get_account(buddy); | 1274 account = purple_buddy_get_account(buddy); |
1275 | 1275 |
1276 if (g_utf8_collate(purple_buddy_get_name(buddy), alias)) | 1276 if (!full || g_utf8_collate(purple_buddy_get_name(buddy), alias)) |
1277 purple_notify_user_info_add_pair(user_info, _("Nickname"), alias); | 1277 purple_notify_user_info_add_pair(user_info, _("Nickname"), alias); |
1278 | 1278 |
1279 tmp = g_strdup_printf("%s (%s)", | 1279 tmp = g_strdup_printf("%s (%s)", |
1280 purple_account_get_username(account), | 1280 purple_account_get_username(account), |
1281 purple_account_get_protocol_name(account)); | 1281 purple_account_get_protocol_name(account)); |
1283 g_free(tmp); | 1283 g_free(tmp); |
1284 | 1284 |
1285 prpl = purple_find_prpl(purple_account_get_protocol_id(account)); | 1285 prpl = purple_find_prpl(purple_account_get_protocol_id(account)); |
1286 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); | 1286 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
1287 if (prpl_info && prpl_info->tooltip_text) { | 1287 if (prpl_info && prpl_info->tooltip_text) { |
1288 prpl_info->tooltip_text(buddy, user_info, TRUE); | 1288 prpl_info->tooltip_text(buddy, user_info, full); |
1289 } | 1289 } |
1290 | 1290 |
1291 if (purple_prefs_get_bool("/finch/blist/idletime")) { | 1291 if (purple_prefs_get_bool("/finch/blist/idletime")) { |
1292 PurplePresence *pre = purple_buddy_get_presence(buddy); | 1292 PurplePresence *pre = purple_buddy_get_presence(buddy); |
1293 if (purple_presence_is_idle(pre)) { | 1293 if (purple_presence_is_idle(pre)) { |
1355 gboolean offline = !PURPLE_BUDDY_IS_ONLINE(pr); | 1355 gboolean offline = !PURPLE_BUDDY_IS_ONLINE(pr); |
1356 gboolean showoffline = purple_prefs_get_bool(PREF_ROOT "/showoffline"); | 1356 gboolean showoffline = purple_prefs_get_bool(PREF_ROOT "/showoffline"); |
1357 const char *name = purple_buddy_get_name(pr); | 1357 const char *name = purple_buddy_get_name(pr); |
1358 | 1358 |
1359 title = g_strdup(name); | 1359 title = g_strdup(name); |
1360 tooltip_for_buddy(pr, str); | 1360 tooltip_for_buddy(pr, str, TRUE); |
1361 for (node = node->child; node; node = node->next) { | 1361 for (node = node->child; node; node = node->next) { |
1362 PurpleBuddy *buddy = (PurpleBuddy*)node; | 1362 PurpleBuddy *buddy = (PurpleBuddy*)node; |
1363 if (offline) { | 1363 if (offline) { |
1364 int value = purple_blist_node_get_int(node, "last_seen"); | 1364 int value = purple_blist_node_get_int(node, "last_seen"); |
1365 if (value > lastseen) | 1365 if (value > lastseen) |
1370 if (!purple_account_is_connected(buddy->account)) | 1370 if (!purple_account_is_connected(buddy->account)) |
1371 continue; | 1371 continue; |
1372 if (!showoffline && !PURPLE_BUDDY_IS_ONLINE(buddy)) | 1372 if (!showoffline && !PURPLE_BUDDY_IS_ONLINE(buddy)) |
1373 continue; | 1373 continue; |
1374 str = g_string_append(str, "\n----------\n"); | 1374 str = g_string_append(str, "\n----------\n"); |
1375 tooltip_for_buddy(buddy, str); | 1375 tooltip_for_buddy(buddy, str, FALSE); |
1376 } | 1376 } |
1377 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { | 1377 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
1378 PurpleBuddy *buddy = (PurpleBuddy *)node; | 1378 PurpleBuddy *buddy = (PurpleBuddy *)node; |
1379 tooltip_for_buddy(buddy, str); | 1379 tooltip_for_buddy(buddy, str, TRUE); |
1380 title = g_strdup(purple_buddy_get_name(buddy)); | 1380 title = g_strdup(purple_buddy_get_name(buddy)); |
1381 if (!PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node)) | 1381 if (!PURPLE_BUDDY_IS_ONLINE((PurpleBuddy*)node)) |
1382 lastseen = purple_blist_node_get_int(node, "last_seen"); | 1382 lastseen = purple_blist_node_get_int(node, "last_seen"); |
1383 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { | 1383 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { |
1384 PurpleGroup *group = (PurpleGroup *)node; | 1384 PurpleGroup *group = (PurpleGroup *)node; |