# HG changeset patch # User Sadrul Habib Chowdhury # Date 1189899600 0 # Node ID 8c33d2e73060683ec155f4d54ce65ff1791001f8 # Parent fee0eea83e58695d482e14b1855a3fe5ef5a2e2a# Parent 669c152c0290d9522fe00429a8fd338ff65f3b83 merge of '13c22e794b21817fd09887f5a0d20def762f5203' and '8f765c8b1620e8ac488e2be4e987153c51ba2f0a' diff -r fee0eea83e58 -r 8c33d2e73060 ChangeLog --- a/ChangeLog Sat Sep 15 23:36:43 2007 +0000 +++ b/ChangeLog Sat Sep 15 23:40:00 2007 +0000 @@ -10,6 +10,8 @@ the conversation window/tab. * A music emblem is displayed in the buddy list for a buddy if we know she is listening to some soothing music. + * 'Move to' menu in buddy list context menu for moving buddies to + other groups Version 2.2.0 (09/13/2007): http://developer.pidgin.im/query?status=closed&milestone=2.2.0 diff -r fee0eea83e58 -r 8c33d2e73060 libpurple/protocols/jabber/.todo --- a/libpurple/protocols/jabber/.todo Sat Sep 15 23:36:43 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ - - - Browsing - - - Server Admin operations (messages, etc.) - - - Add option for user info to be published or not in JUD. - - - Delete server account. - - - Permit/Deny buddy support. - - - a populate roster from local blist. most useful if you want to migrate a blist from one account to another, also useful if something freaky happens and the server blist is lost. - - - info - - formatted. enhancement-request so that the birthday field in the setinfo form would split up into relevant fields allowing for a strict syntax (like year--month--day or so, perhaps even dropdown menus) - - - - Jabber Transports (having them show up on the buddy list should be fairly easy; having an appropriate right-click menu for them should also be somewhat easy. Providing a UI for adding transports should be rather difficult.) - - diff -r fee0eea83e58 -r 8c33d2e73060 libpurple/protocols/oscar/.todo --- a/libpurple/protocols/oscar/.todo Sat Sep 15 23:36:43 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ - - - watch for aol's upcoming increased aim/icq merge - - - AIM - - option to ignore chat room invitations. (this is something you could vary conceivably want to be done per account, so perhaps a protocol action would be best) - - - buddies in Recent Buddies don't seem to delete right - - - direct im - - some way to close direct connect w/out closing convo. - - - failed direct im attempt should allow new attempt some way to cancel an attempt that isn't happening - - - - Voice Chat - - - - ICQ - - more privacy options - - - increased authorization support - - add info to dialog requesting autorization to allow you to check the info of the person who is requesting - - - - color support - - - set status message and of course when libpurple can set them, it needs to be able to get the ones it sets. (yes this is redundant. its a reflection of my current mood) - - - Chat (this is different from aim chat) - - - New User Registration - - - more info support - - - search for users - - - set the Nickname to be the self-alias - - - icq i18n without breaking aim - - - - The order of groups and buddies in the server list is not updated when groups and buddies are re-arranged locally in libpurple. - - diff -r fee0eea83e58 -r 8c33d2e73060 libpurple/server.c --- a/libpurple/server.c Sat Sep 15 23:36:43 2007 +0000 +++ b/libpurple/server.c Sat Sep 15 23:40:00 2007 +0000 @@ -143,6 +143,7 @@ */ auto_reply_pref = purple_prefs_get_string("/purple/away/auto_reply"); if ((gc->flags & PURPLE_CONNECTION_AUTO_RESP) && + flags & PURPLE_MESSAGE_AUTO_RESP && !purple_presence_is_available(presence) && strcmp(auto_reply_pref, "never")) { diff -r fee0eea83e58 -r 8c33d2e73060 pidgin/gtkblist.c --- a/pidgin/gtkblist.c Sat Sep 15 23:36:43 2007 +0000 +++ b/pidgin/gtkblist.c Sat Sep 15 23:40:00 2007 +0000 @@ -315,6 +315,13 @@ serv_send_file(b->account->gc, b->name, NULL); } +static void gtk_blist_menu_move_to_cb(GtkWidget *w, PurpleBlistNode *node) +{ + PurpleBlistNode *group = g_object_get_data(w, "groupnode"); + purple_blist_add_contact(node, group, NULL); + +} + static void gtk_blist_menu_autojoin_cb(GtkWidget *w, PurpleChat *chat) { purple_blist_node_set_bool((PurpleBlistNode*)chat, "gtk-autojoin", @@ -1243,6 +1250,34 @@ g_list_free(ll); } + + +static void +pidgin_append_blist_node_move_to_menu(GtkWidget *menu, PurpleBlistNode *node) +{ + GtkWidget *submenu; + GtkWidget *menuitem; + PurpleBlistNode *group; + + menuitem = gtk_menu_item_new_with_label(_("Move to")); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); + gtk_widget_show(menuitem); + + submenu = gtk_menu_new(); + gtk_menu_item_set_submenu(menuitem, submenu); + + for (group = purple_blist_get_root(); group; group = group->next) { + if (group->type != PURPLE_BLIST_GROUP_NODE) + continue; + if (group == node->parent) + continue; + menuitem = pidgin_new_item_from_stock(submenu, purple_group_get_name(group), NULL, + G_CALLBACK(gtk_blist_menu_move_to_cb), node, 0, 0, NULL); + g_object_set_data(G_OBJECT(menuitem), "groupnode", group); + } + gtk_widget_show_all(submenu); +} + void pidgin_blist_make_buddy_menu(GtkWidget *menu, PurpleBuddy *buddy, gboolean sub) { PurplePluginProtocolInfo *prpl_info; @@ -1294,6 +1329,9 @@ (PurpleBlistNode *)buddy); pidgin_append_blist_node_extended_menu(menu, (PurpleBlistNode *)buddy); + if (!contact_expanded) + pidgin_append_blist_node_move_to_menu(menu, contact); + if (((PurpleBlistNode*)buddy)->parent && ((PurpleBlistNode*)buddy)->parent->child->next && !sub && !contact_expanded) { pidgin_separator(menu); @@ -1434,7 +1472,6 @@ node, 0, 0, NULL); pidgin_append_blist_node_extended_menu(menu, node); - return menu; } @@ -5168,7 +5205,7 @@ STATUS_ICON_COLUMN, NULL, NAME_COLUMN, title, NODE_COLUMN, gnode, - BGCOLOR_COLUMN, &bgcolor, + /* BGCOLOR_COLUMN, &bgcolor, */ GROUP_EXPANDER_COLUMN, TRUE, GROUP_EXPANDER_VISIBLE_COLUMN, TRUE, CONTACT_EXPANDER_VISIBLE_COLUMN, FALSE, diff -r fee0eea83e58 -r 8c33d2e73060 pidgin/gtkcellrendererexpander.c --- a/pidgin/gtkcellrendererexpander.c Sat Sep 15 23:36:43 2007 +0000 +++ b/pidgin/gtkcellrendererexpander.c Sat Sep 15 23:40:00 2007 +0000 @@ -269,6 +269,7 @@ cell_area->x + cell->xpad + (width / 2), cell_area->y + cell->ypad + (height / 2), cell->is_expanded ? GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED); + gtk_paint_hline (widget->style, window, state, NULL, widget, NULL, 0, widget->allocation.width, cell_area->y + cell_area->height); } static gboolean pidgin_cell_renderer_expander_activate(GtkCellRenderer *r, diff -r fee0eea83e58 -r 8c33d2e73060 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Sat Sep 15 23:36:43 2007 +0000 +++ b/pidgin/gtkconv.c Sat Sep 15 23:40:00 2007 +0000 @@ -6414,8 +6414,13 @@ if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) && (gtkconv->u.im->anim)) { + PurpleBuddy *buddy = purple_find_buddy(conv->account, conv->name); window_icon = gdk_pixbuf_animation_get_static_image(gtkconv->u.im->anim); + + if (buddy && !PURPLE_BUDDY_IS_ONLINE(buddy)) + gdk_pixbuf_saturate_and_pixelate(window_icon, window_icon, 0.0, FALSE); + g_object_ref(window_icon); l = g_list_append(l, window_icon); } else { diff -r fee0eea83e58 -r 8c33d2e73060 pidgin/pixmaps/emotes/default/24/default.theme.in --- a/pidgin/pixmaps/emotes/default/24/default.theme.in Sat Sep 15 23:36:43 2007 +0000 +++ b/pidgin/pixmaps/emotes/default/24/default.theme.in Sat Sep 15 23:40:00 2007 +0000 @@ -262,7 +262,6 @@ shout.png >:o >:O beer.png *DRINK* smile-big.png :-D :D -moneymouth.png :-$ glasses-cool.png 8-) in-love.png *IN\ LOVE* ! skywalker.png C:-) c:-) C:) c:) diff -r fee0eea83e58 -r 8c33d2e73060 pidgin/plugins/pidginrc.c --- a/pidgin/plugins/pidginrc.c Sat Sep 15 23:36:43 2007 +0000 +++ b/pidgin/plugins/pidginrc.c Sat Sep 15 23:40:00 2007 +0000 @@ -57,22 +57,16 @@ static const gchar *font_prefs[] = { "/plugins/gtk/purplerc/font/*pidgin_conv_entry", - "/plugins/gtk/purplerc/font/*pidgin_conv_imhtml", - "/plugins/gtk/purplerc/font/*pidgin_log_imhtml", "/plugins/gtk/purplerc/font/*pidgin_request_imhtml", "/plugins/gtk/purplerc/font/*pidgin_notify_imhtml", }; static const gchar *font_prefs_set[] = { "/plugins/gtk/purplerc/set/font/*pidgin_conv_entry", - "/plugins/gtk/purplerc/set/font/*pidgin_conv_imhtml", - "/plugins/gtk/purplerc/set/font/*pidgin_log_imhtml", "/plugins/gtk/purplerc/set/font/*pidgin_request_imhtml", "/plugins/gtk/purplerc/set/font/*pidgin_notify_imhtml", }; static const gchar *font_names[] = { N_("Conversation Entry"), - N_("Conversation History"), - N_("Log Viewer"), N_("Request Dialog"), N_("Notify Dialog") };