Mercurial > pidgin
comparison src/protocols/novell/novell.c @ 9554:8b2451878e26
[gaim-migrate @ 10387]
" This patch adds chat user status icons (voice / halfop
/ op / founder) to chats
There's a screenshot here, showing ops, voices and
ignored ops and voices
http://nosnilmot.com/gaim/chatusers.png
This required some changes in how the core stores the
list of users in chats to be able to store the status
too, which are detailed below.
I also fixed up some memory leaks as I came across them
(string values returned by gtk_tree_model_get() not
being g_free()'d) and a minor bug in signals-test.c
Conversation API:
Changed:
gaim_conv_chat_add_user() (added flags parameter)
gaim_conv_chat_add_users() now (added GList of flags
parameter)
gaim_conv_chat_get_users() now returns a GList of
GaimChatBuddy's
gaim_conv_chat_set_users() now expects a GList of
GaimChatBuddy's
Added:
gaim_conv_chat_set_user_flags()
gaim_conv_chat_get_user_flags()
gaim_conv_chat_find_user()
gaim_conv_chat_cb_new()
gaim_conv_chat_cb_find()
gaim_conv_chat_cb_destroy()
gaim_conv_chat_cb_get_name()
Conversation UI ops:
added: chat_update_user()
Signals:
Changed: chat-buddy-joining & chat-buddy-joined now
include the user's flags
Added: chat-buddy-flags for when user's flags change
Added:
gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT
(required for the new chat-buddy-flags signal)
Protocol Plugins:
All updated to work with above changes (obviously)
User flags support added to IRC, Jabber and SILC
New Files:
pixmaps/status/default/ voice.svg halfop.svg op.svg
founder.svg
" --Stu Tomlinson
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Sat, 17 Jul 2004 18:11:12 +0000 |
parents | 7a65fdba750f |
children | c001be3c330e |
comparison
equal
deleted
inserted
replaced
9553:8a64666476e6 | 9554:8b2451878e26 |
---|---|
647 count = nm_conference_get_participant_count(conference); | 647 count = nm_conference_get_participant_count(conference); |
648 for (i = 0; i < count; i++) { | 648 for (i = 0; i < count; i++) { |
649 ur = nm_conference_get_participant(conference, i); | 649 ur = nm_conference_get_participant(conference, i); |
650 if (ur) { | 650 if (ur) { |
651 name = nm_user_record_get_display_id(ur); | 651 name = nm_user_record_get_display_id(ur); |
652 gaim_conv_chat_add_user(GAIM_CONV_CHAT(chat), name, NULL); | 652 gaim_conv_chat_add_user(GAIM_CONV_CHAT(chat), name, NULL, GAIM_CBFLAGS_NONE); |
653 } | 653 } |
654 } | 654 } |
655 } | 655 } |
656 } | 656 } |
657 } | 657 } |
1856 GaimConnection *gc; | 1856 GaimConnection *gc; |
1857 NMConference *conference = NULL; | 1857 NMConference *conference = NULL; |
1858 NMUserRecord *ur = NULL; | 1858 NMUserRecord *ur = NULL; |
1859 const char *name; | 1859 const char *name; |
1860 const char *conf_name; | 1860 const char *conf_name; |
1861 GList *list = NULL; | |
1862 | 1861 |
1863 gc = gaim_account_get_connection(user->client_data); | 1862 gc = gaim_account_get_connection(user->client_data); |
1864 if (gc == NULL) | 1863 if (gc == NULL) |
1865 return; | 1864 return; |
1866 | 1865 |
1876 if (chat) { | 1875 if (chat) { |
1877 | 1876 |
1878 nm_conference_set_data(conference, (gpointer) chat); | 1877 nm_conference_set_data(conference, (gpointer) chat); |
1879 | 1878 |
1880 name = nm_user_record_get_display_id(ur); | 1879 name = nm_user_record_get_display_id(ur); |
1881 gaim_conv_chat_add_user(GAIM_CONV_CHAT(chat), name, NULL); | 1880 gaim_conv_chat_add_user(GAIM_CONV_CHAT(chat), name, NULL, GAIM_CBFLAGS_NONE); |
1882 | 1881 |
1883 } | 1882 } |
1884 } | 1883 } |
1885 } | 1884 } |
1886 | 1885 |
1887 if (chat != NULL) { | 1886 if (chat != NULL) { |
1888 ur = nm_find_user_record(user, nm_event_get_source(event)); | 1887 ur = nm_find_user_record(user, nm_event_get_source(event)); |
1889 if (ur) { | 1888 if (ur) { |
1890 name = nm_user_record_get_display_id(ur); | 1889 name = nm_user_record_get_display_id(ur); |
1891 list = gaim_conv_chat_get_users(GAIM_CONV_CHAT(chat)); | 1890 if (!gaim_conv_chat_find_user(GAIM_CONV_CHAT(chat), name)) { |
1892 if (!g_list_find_custom(list, name, (GCompareFunc)nm_utf8_strcasecmp)) { | 1891 gaim_conv_chat_add_user(GAIM_CONV_CHAT(chat), name, NULL, GAIM_CBFLAGS_NONE); |
1893 gaim_conv_chat_add_user(GAIM_CONV_CHAT(chat), name, NULL); | |
1894 } | 1892 } |
1895 } | 1893 } |
1896 } | 1894 } |
1897 } | 1895 } |
1898 } | 1896 } |