Mercurial > pidgin.yaz
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 |