Mercurial > pidgin
comparison libpurple/protocols/jabber/jabber.c @ 25692:a8224eb86581
Show statuses per resource before other info the jabber prpl adds to the tooltip
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Fri, 06 Feb 2009 22:07:50 +0000 |
parents | 65f2c84f122f |
children | e3f2b16f75da |
comparison
equal
deleted
inserted
replaced
25691:65f2c84f122f | 25692:a8224eb86581 |
---|---|
1702 GList *l; | 1702 GList *l; |
1703 const char *mood; | 1703 const char *mood; |
1704 gboolean multiple_resources = | 1704 gboolean multiple_resources = |
1705 jb->resources && g_list_next(jb->resources); | 1705 jb->resources && g_list_next(jb->resources); |
1706 | 1706 |
1707 if (full) { | |
1708 PurpleStatus *status; | |
1709 | |
1710 if(jb->subscription & JABBER_SUB_FROM) { | |
1711 if(jb->subscription & JABBER_SUB_TO) | |
1712 sub = _("Both"); | |
1713 else if(jb->subscription & JABBER_SUB_PENDING) | |
1714 sub = _("From (To pending)"); | |
1715 else | |
1716 sub = _("From"); | |
1717 } else { | |
1718 if(jb->subscription & JABBER_SUB_TO) | |
1719 sub = _("To"); | |
1720 else if(jb->subscription & JABBER_SUB_PENDING) | |
1721 sub = _("None (To pending)"); | |
1722 else | |
1723 sub = _("None"); | |
1724 } | |
1725 | |
1726 purple_notify_user_info_add_pair(user_info, _("Subscription"), sub); | |
1727 | |
1728 status = purple_presence_get_active_status(presence); | |
1729 mood = purple_status_get_attr_string(status, "mood"); | |
1730 if(mood != NULL) { | |
1731 const char *moodtext; | |
1732 moodtext = purple_status_get_attr_string(status, "moodtext"); | |
1733 if(moodtext != NULL) { | |
1734 char *moodplustext = g_strdup_printf("%s (%s)", mood, moodtext); | |
1735 | |
1736 purple_notify_user_info_add_pair(user_info, _("Mood"), moodplustext); | |
1737 g_free(moodplustext); | |
1738 } else | |
1739 purple_notify_user_info_add_pair(user_info, _("Mood"), mood); | |
1740 } | |
1741 if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_TUNE)) { | |
1742 PurpleStatus *tune = purple_presence_get_status(presence, "tune"); | |
1743 const char *title = purple_status_get_attr_string(tune, PURPLE_TUNE_TITLE); | |
1744 const char *artist = purple_status_get_attr_string(tune, PURPLE_TUNE_ARTIST); | |
1745 const char *album = purple_status_get_attr_string(tune, PURPLE_TUNE_ALBUM); | |
1746 char *playing = purple_util_format_song_info(title, artist, album, NULL); | |
1747 if (playing) { | |
1748 purple_notify_user_info_add_pair(user_info, _("Now Listening"), playing); | |
1749 g_free(playing); | |
1750 } | |
1751 } | |
1752 } | |
1753 | |
1754 for(l=jb->resources; l; l = l->next) { | 1707 for(l=jb->resources; l; l = l->next) { |
1755 char *text = NULL; | 1708 char *text = NULL; |
1756 char *res = NULL; | 1709 char *res = NULL; |
1757 char *label, *value; | 1710 char *label, *value; |
1758 const char *state; | 1711 const char *state; |
1803 g_free(label); | 1756 g_free(label); |
1804 } | 1757 } |
1805 | 1758 |
1806 g_free(res); | 1759 g_free(res); |
1807 } | 1760 } |
1808 | 1761 |
1762 if (full) { | |
1763 PurpleStatus *status; | |
1764 | |
1765 | |
1766 status = purple_presence_get_active_status(presence); | |
1767 mood = purple_status_get_attr_string(status, "mood"); | |
1768 if(mood != NULL) { | |
1769 const char *moodtext; | |
1770 moodtext = purple_status_get_attr_string(status, "moodtext"); | |
1771 if(moodtext != NULL) { | |
1772 char *moodplustext = g_strdup_printf("%s (%s)", mood, moodtext); | |
1773 | |
1774 purple_notify_user_info_add_pair(user_info, _("Mood"), moodplustext); | |
1775 g_free(moodplustext); | |
1776 } else | |
1777 purple_notify_user_info_add_pair(user_info, _("Mood"), mood); | |
1778 } | |
1779 if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_TUNE)) { | |
1780 PurpleStatus *tune = purple_presence_get_status(presence, "tune"); | |
1781 const char *title = purple_status_get_attr_string(tune, PURPLE_TUNE_TITLE); | |
1782 const char *artist = purple_status_get_attr_string(tune, PURPLE_TUNE_ARTIST); | |
1783 const char *album = purple_status_get_attr_string(tune, PURPLE_TUNE_ALBUM); | |
1784 char *playing = purple_util_format_song_info(title, artist, album, NULL); | |
1785 if (playing) { | |
1786 purple_notify_user_info_add_pair(user_info, _("Now Listening"), playing); | |
1787 g_free(playing); | |
1788 } | |
1789 } | |
1790 | |
1791 if(jb->subscription & JABBER_SUB_FROM) { | |
1792 if(jb->subscription & JABBER_SUB_TO) | |
1793 sub = _("Both"); | |
1794 else if(jb->subscription & JABBER_SUB_PENDING) | |
1795 sub = _("From (To pending)"); | |
1796 else | |
1797 sub = _("From"); | |
1798 } else { | |
1799 if(jb->subscription & JABBER_SUB_TO) | |
1800 sub = _("To"); | |
1801 else if(jb->subscription & JABBER_SUB_PENDING) | |
1802 sub = _("None (To pending)"); | |
1803 else | |
1804 sub = _("None"); | |
1805 } | |
1806 | |
1807 purple_notify_user_info_add_pair(user_info, _("Subscription"), sub); | |
1808 | |
1809 } | |
1810 | |
1809 if(!PURPLE_BUDDY_IS_ONLINE(b) && jb->error_msg) { | 1811 if(!PURPLE_BUDDY_IS_ONLINE(b) && jb->error_msg) { |
1810 purple_notify_user_info_add_pair(user_info, _("Error"), jb->error_msg); | 1812 purple_notify_user_info_add_pair(user_info, _("Error"), jb->error_msg); |
1811 } | 1813 } |
1812 } | 1814 } |
1813 } | 1815 } |