comparison pidgin/gtkblist.c @ 25011:ae544623840b

propagate from branch 'im.pidgin.pidgin' (head f018e11a7ea08e07f22667e6daca2ec7e64f9710) to branch 'org.darkrain42.pidgin.buddy-add' (head e4fae922272cfd510a1f55595c374c2b9f665767)
author Paul Aurich <paul@darkrain42.org>
date Fri, 02 Jan 2009 19:27:02 +0000
parents 6eecd6ba2862 289227f729ec
children 7bfaa0b61a83
comparison
equal deleted inserted replaced
25010:6eecd6ba2862 25011:ae544623840b
600 serv_alias_buddy((PurpleBuddy *)node); 600 serv_alias_buddy((PurpleBuddy *)node);
601 gtk_blist_auto_personize(node->parent->parent, arg2); 601 gtk_blist_auto_personize(node->parent->parent, arg2);
602 break; 602 break;
603 case PURPLE_BLIST_GROUP_NODE: 603 case PURPLE_BLIST_GROUP_NODE:
604 dest = purple_find_group(arg2); 604 dest = purple_find_group(arg2);
605 if (dest != NULL && strcmp(arg2, ((PurpleGroup*) node)->name)) { 605 if (dest != NULL && purple_utf8_strcasecmp(arg2, ((PurpleGroup*) node)->name)) {
606 pidgin_dialogs_merge_groups((PurpleGroup*) node, arg2); 606 pidgin_dialogs_merge_groups((PurpleGroup*) node, arg2);
607 } else 607 } else
608 purple_blist_rename_group((PurpleGroup*)node, arg2); 608 purple_blist_rename_group((PurpleGroup*)node, arg2);
609 break; 609 break;
610 case PURPLE_BLIST_CHAT_NODE: 610 case PURPLE_BLIST_CHAT_NODE:
7666 { 7666 {
7667 GtkWidget *menuitem = NULL, *submenu = NULL; 7667 GtkWidget *menuitem = NULL, *submenu = NULL;
7668 GtkAccelGroup *accel_group = NULL; 7668 GtkAccelGroup *accel_group = NULL;
7669 GList *l = NULL, *accounts = NULL; 7669 GList *l = NULL, *accounts = NULL;
7670 gboolean disabled_accounts = FALSE; 7670 gboolean disabled_accounts = FALSE;
7671 gboolean enabled_accounts = FALSE;
7671 7672
7672 if (accountmenu == NULL) 7673 if (accountmenu == NULL)
7673 return; 7674 return;
7674 7675
7675 /* Clear the old Accounts menu */ 7676 /* Clear the old Accounts menu */
7719 } 7720 }
7720 g_signal_connect(G_OBJECT(menuitem), "activate", 7721 g_signal_connect(G_OBJECT(menuitem), "activate",
7721 G_CALLBACK(enable_account_cb), account); 7722 G_CALLBACK(enable_account_cb), account);
7722 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); 7723 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
7723 gtk_widget_show(menuitem); 7724 gtk_widget_show(menuitem);
7724 } 7725 } else {
7725 } 7726 enabled_accounts = TRUE;
7727 }
7728 }
7729
7730 if (!enabled_accounts)
7731 return;
7726 7732
7727 pidgin_separator(accountmenu); 7733 pidgin_separator(accountmenu);
7734 accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu));
7728 7735
7729 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) { 7736 for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) {
7730 char *buf = NULL; 7737 char *buf = NULL;
7731 char *accel_path_buf = NULL; 7738 char *accel_path_buf = NULL;
7732 GtkWidget *image = NULL; 7739 GtkWidget *image = NULL;
7734 PurpleAccount *account = NULL; 7741 PurpleAccount *account = NULL;
7735 GdkPixbuf *pixbuf = NULL; 7742 GdkPixbuf *pixbuf = NULL;
7736 PurplePlugin *plugin = NULL; 7743 PurplePlugin *plugin = NULL;
7737 7744
7738 account = accounts->data; 7745 account = accounts->data;
7739 accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu)); 7746
7740 7747 if (!purple_account_get_enabled(account, PIDGIN_UI))
7741 if(purple_account_get_enabled(account, PIDGIN_UI)) { 7748 continue;
7742 buf = g_strconcat(purple_account_get_username(account), " (", 7749
7743 purple_account_get_protocol_name(account), ")", NULL); 7750 buf = g_strconcat(purple_account_get_username(account), " (",
7744 menuitem = gtk_image_menu_item_new_with_label(buf); 7751 purple_account_get_protocol_name(account), ")", NULL);
7745 accel_path_buf = g_strconcat(N_("<PurpleMain>/Accounts/"), buf, NULL); 7752 menuitem = gtk_image_menu_item_new_with_label(buf);
7746 g_free(buf); 7753 accel_path_buf = g_strconcat(N_("<PurpleMain>/Accounts/"), buf, NULL);
7747 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); 7754 g_free(buf);
7748 if (pixbuf != NULL) 7755 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
7749 { 7756 if (pixbuf != NULL) {
7750 if (!purple_account_is_connected(account)) 7757 if (!purple_account_is_connected(account))
7751 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 7758 gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf,
7752 0.0, FALSE); 7759 0.0, FALSE);
7753 image = gtk_image_new_from_pixbuf(pixbuf); 7760 image = gtk_image_new_from_pixbuf(pixbuf);
7754 g_object_unref(G_OBJECT(pixbuf)); 7761 g_object_unref(G_OBJECT(pixbuf));
7755 gtk_widget_show(image); 7762 gtk_widget_show(image);
7756 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); 7763 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image);
7757 } 7764 }
7758 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); 7765 gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem);
7766 gtk_widget_show(menuitem);
7767
7768 submenu = gtk_menu_new();
7769 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group);
7770 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf);
7771 g_free(accel_path_buf);
7772 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu);
7773 gtk_widget_show(submenu);
7774
7775
7776 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account"));
7777 g_signal_connect(G_OBJECT(menuitem), "activate",
7778 G_CALLBACK(modify_account_cb), account);
7779 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
7780 gtk_widget_show(menuitem);
7781
7782 pidgin_separator(submenu);
7783
7784 gc = purple_account_get_connection(account);
7785 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL;
7786 if (plugin && PURPLE_PLUGIN_HAS_ACTIONS(plugin)) {
7787 build_plugin_actions(submenu, plugin, gc);
7788 } else {
7789 menuitem = gtk_menu_item_new_with_label(_("No actions available"));
7790 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
7791 gtk_widget_set_sensitive(menuitem, FALSE);
7759 gtk_widget_show(menuitem); 7792 gtk_widget_show(menuitem);
7760 7793 }
7761 submenu = gtk_menu_new(); 7794
7762 gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); 7795 pidgin_separator(submenu);
7763 gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf); 7796
7764 g_free(accel_path_buf); 7797 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable"));
7765 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); 7798 g_signal_connect(G_OBJECT(menuitem), "activate",
7766 gtk_widget_show(submenu); 7799 G_CALLBACK(disable_account_cb), account);
7767 7800 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
7768 7801 gtk_widget_show(menuitem);
7769 menuitem = gtk_menu_item_new_with_mnemonic(_("_Edit Account")); 7802 }
7770 g_signal_connect(G_OBJECT(menuitem), "activate",
7771 G_CALLBACK(modify_account_cb), account);
7772 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
7773 gtk_widget_show(menuitem);
7774
7775 pidgin_separator(submenu);
7776
7777 gc = purple_account_get_connection(account);
7778 plugin = gc && PURPLE_CONNECTION_IS_CONNECTED(gc) ? gc->prpl : NULL;
7779 if (plugin && PURPLE_PLUGIN_HAS_ACTIONS(plugin)) {
7780 build_plugin_actions(submenu, plugin, gc);
7781 } else {
7782 menuitem = gtk_menu_item_new_with_label(_("No actions available"));
7783 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
7784 gtk_widget_set_sensitive(menuitem, FALSE);
7785 gtk_widget_show(menuitem);
7786 }
7787
7788 pidgin_separator(submenu);
7789
7790 menuitem = gtk_menu_item_new_with_mnemonic(_("_Disable"));
7791 g_signal_connect(G_OBJECT(menuitem), "activate",
7792 G_CALLBACK(disable_account_cb), account);
7793 gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem);
7794 gtk_widget_show(menuitem);
7795 } else {
7796 disabled_accounts = TRUE;
7797 }
7798 }
7799
7800 } 7803 }
7801 7804
7802 static GList *plugin_submenus = NULL; 7805 static GList *plugin_submenus = NULL;
7803 7806
7804 void 7807 void