summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEtan Reisner <deryni@pidgin.im>2008-03-05 01:24:23 +0000
committerEtan Reisner <deryni@pidgin.im>2008-03-05 01:24:23 +0000
commitbb269dc668af40a78a43cfd292a74ca986a99a90 (patch)
tree5133513cb97dc14c6165e2191d1d7835ddf10479
parent196901ddbed13d61c36b0369c7f3184c406ff7e4 (diff)
parentdbb24a83f2c45f949f2e760b9b21e04dbda12e03 (diff)
downloadpidgin-bb269dc668af40a78a43cfd292a74ca986a99a90.tar.gz
merge of '1bfa76bf7cda696c94ac34777673d8e3025d642c'
and '21bcf7de74f148bff495044810290d6a99ecd398'
-rw-r--r--libpurple/account.c7
-rw-r--r--libpurple/plugins/test.pl54
-rw-r--r--pidgin/gtkblist.c74
3 files changed, 57 insertions, 78 deletions
diff --git a/libpurple/account.c b/libpurple/account.c
index 0b1e1daeb3..c41598a0f2 100644
--- a/libpurple/account.c
+++ b/libpurple/account.c
@@ -751,6 +751,7 @@ parse_current_error(xmlnode *node, PurpleAccount *account)
description = g_strdup("");
current_error = g_new0(PurpleConnectionErrorInfo, 1);
+ PURPLE_DBUS_REGISTER_POINTER(current_error, PurpleConnectionErrorInfo);
current_error->type = type;
current_error->description = description;
@@ -1009,6 +1010,7 @@ purple_account_destroy(PurpleAccount *account)
purple_log_free(account->system_log);
priv = PURPLE_ACCOUNT_GET_PRIVATE(account);
+ PURPLE_DBUS_UNREGISTER_POINTER(priv->current_error);
g_free(priv->current_error);
g_free(priv);
@@ -2365,8 +2367,7 @@ signed_on_cb(PurpleConnection *gc,
}
static void
-set_current_error(PurpleAccount *account,
- PurpleConnectionErrorInfo *new_err)
+set_current_error(PurpleAccount *account, PurpleConnectionErrorInfo *new_err)
{
PurpleAccountPrivate *priv;
PurpleConnectionErrorInfo *old_err;
@@ -2389,6 +2390,7 @@ set_current_error(PurpleAccount *account,
if(old_err)
g_free(old_err->description);
+ PURPLE_DBUS_UNREGISTER_POINTER(old_err);
g_free(old_err);
}
@@ -2406,6 +2408,7 @@ connection_error_cb(PurpleConnection *gc,
g_return_if_fail(account != NULL);
err = g_new0(PurpleConnectionErrorInfo, 1);
+ PURPLE_DBUS_REGISTER_POINTER(err, PurpleConnectionErrorInfo);
err->type = type;
err->description = g_strdup(description);
diff --git a/libpurple/plugins/test.pl b/libpurple/plugins/test.pl
index 01466658f2..f2c4acbfe4 100644
--- a/libpurple/plugins/test.pl
+++ b/libpurple/plugins/test.pl
@@ -1,6 +1,4 @@
-#!/usr/bin/env perl -w
-
-use Gaim;
+use Purple;
%PLUGIN_INFO = (
perl_api_version => 2,
@@ -8,51 +6,37 @@ use Gaim;
version => '1.0',
summary => 'Provides as a test base for the perl plugin.',
description => 'Provides as a test base for the perl plugin.',
- author => 'Christian Hammond <chipx86@gnupdate.org>',
+ author => 'Etan Reisner <deryni\@pidgin.im>',
url => 'http://pidgin.im',
- load => "plugin_load",
- unload => "plugin_unload"
+ load => "plugin_load"
);
-sub account_away_cb {
- Gaim::debug_info("perl test plugin", "In account_away_cb\n");
+sub plugin_init {
+ return %PLUGIN_INFO;
+}
- my ($account, $state, $message, $data) = @_;
+sub account_status_cb {
+ my ($account, $old, $new, $data) = @_;
- Gaim::debug_info("perl test plugin", "Account " .
- $account->get_username() . " went away.\n");
- Gaim::debug_info("perl test plugin", $data . "\n");
-}
+ Purple::Debug::info("perl test plugin", "In account_status_cb\n");
-sub plugin_init {
- return %PLUGIN_INFO;
+ Purple::Debug::info("perl test plugin", "Account " .
+ $account->get_username() . " changed status.\n");
+ Purple::Debug::info("perl test plugin", $data . "\n");
}
sub plugin_load {
- Gaim::debug_info("perl test plugin", "plugin_load\n");
my $plugin = shift;
- Gaim::debug_info("perl test plugin", "Listing accounts.\n");
- foreach $account (Gaim::accounts()) {
- Gaim::debug_info("perl test plugin", $account->get_username() . "\n");
- }
-
- Gaim::debug_info("perl test plugin", "Listing buddy list.\n");
- foreach $group (Gaim::BuddyList::groups()) {
- Gaim::debug_info("perl test plugin",
- $group->get_name() . ":\n");
+ Purple::Debug::info("perl test plugin", "plugin_load\n");
- foreach $buddy ($group->buddies()) {
- Gaim::debug_info("perl test plugin",
- " " . $buddy->get_name() . "\n");
- }
+ Purple::Debug::info("perl test plugin", "Listing accounts.\n");
+ foreach $account (Purple::Accounts::get_all()) {
+ Purple::Debug::info("perl test plugin", $account->get_username() . "\n");
}
- Gaim::signal_connect(Gaim::Accounts::handle, "account-away",
- $plugin, \&account_away_cb, "test");
-}
-
-sub plugin_unload {
- my $plugin = shift;
+ Purple::Signal::connect(Purple::Accounts::get_handle(),
+ "account-status-changed", $plugin,
+ \&account_status_cb, "test");
}
diff --git a/pidgin/gtkblist.c b/pidgin/gtkblist.c
index 4ef585817f..1f8ab8047c 100644
--- a/pidgin/gtkblist.c
+++ b/pidgin/gtkblist.c
@@ -3318,24 +3318,34 @@ static char *pidgin_get_tooltip_text(PurpleBlistNode *node, gboolean full)
purple_notify_user_info_destroy(user_info);
} else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
+ gint count;
PurpleGroup *group = (PurpleGroup*)node;
PurpleNotifyUserInfo *user_info;
user_info = purple_notify_user_info_new();
- /* Total buddies (from online accounts) in group */
- tmp = g_strdup_printf("%d",
- purple_blist_get_group_size(group, FALSE));
- purple_notify_user_info_add_pair(user_info, _("Total Buddies"),
- tmp);
- g_free(tmp);
+ count = purple_blist_get_group_online_count(group);
- /* Online buddies in group */
- tmp = g_strdup_printf("%d",
- purple_blist_get_group_online_count(group));
- purple_notify_user_info_add_pair(user_info, _("Online Buddies"),
- tmp);
- g_free(tmp);
+ if (count != 0) {
+ /* Online buddies in group */
+ tmp = g_strdup_printf("%d", count);
+ purple_notify_user_info_add_pair(user_info,
+ _("Online Buddies"),
+ tmp);
+ g_free(tmp);
+ }
+ count = 0;
+
+ count = purple_blist_get_group_size(group, FALSE);
+ if (count != 0) {
+ /* Total buddies (from online accounts) in group */
+ tmp = g_strdup_printf("%d", count);
+ purple_notify_user_info_add_pair(user_info,
+ _("Total Buddies"),
+ tmp);
+ g_free(tmp);
+ }
+ count = 0;
tmp = purple_notify_user_info_get_text_with_newline(user_info, "\n");
g_string_append(str, tmp);
@@ -6320,43 +6330,25 @@ pidgin_blist_request_add_buddy(PurpleAccount *account, const char *username,
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(hbox), vbox);
- label = gtk_label_new(
- _("Please enter the screen name of the person you would like "
- "to add to your buddy list. You may optionally enter an alias, "
- "or nickname, for the buddy. The alias will be displayed in "
- "place of the screen name whenever possible.\n"));
+ g_signal_connect(G_OBJECT(data->window), "destroy",
+ G_CALLBACK(destroy_add_buddy_dialog_cb), data);
- gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1);
- gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+ label = gtk_label_new(_("Add a buddy.\n"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- gtk_container_add(GTK_CONTAINER(vbox), hbox);
-
- g_signal_connect(G_OBJECT(data->window), "destroy",
- G_CALLBACK(destroy_add_buddy_dialog_cb), data);
-
table = gtk_table_new(4, 2, FALSE);
gtk_table_set_row_spacings(GTK_TABLE(table), 5);
gtk_table_set_col_spacings(GTK_TABLE(table), 5);
gtk_container_set_border_width(GTK_CONTAINER(table), 0);
gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
- /* Set up stuff for the account box */
- label = gtk_label_new_with_mnemonic(_("A_ccount:"));
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
-
data->account_box = pidgin_account_option_menu_new(account, FALSE,
G_CALLBACK(add_buddy_select_account_cb), NULL, data);
- gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 1, 2, 0, 1);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->account_box);
- pidgin_set_accessible_label (data->account_box, label);
- /* End of account box */
+ gtk_table_attach_defaults(GTK_TABLE(table), data->account_box, 0, 2, 0, 1);
- label = gtk_label_new_with_mnemonic(_("_Screen name:"));
+ label = gtk_label_new_with_mnemonic(_("Buddy's _screen name:"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
@@ -6368,23 +6360,23 @@ pidgin_blist_request_add_buddy(PurpleAccount *account, const char *username,
gtk_entry_set_text(GTK_ENTRY(data->entry), username);
else
gtk_dialog_set_response_sensitive(GTK_DIALOG(data->window),
- GTK_RESPONSE_OK, FALSE);
+ GTK_RESPONSE_OK, FALSE);
gtk_entry_set_activates_default (GTK_ENTRY(data->entry), TRUE);
gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry);
pidgin_set_accessible_label (data->entry, label);
g_signal_connect(G_OBJECT(data->entry), "changed",
- G_CALLBACK(pidgin_set_sensitive_if_input),
- data->window);
+ G_CALLBACK(pidgin_set_sensitive_if_input),
+ data->window);
- label = gtk_label_new_with_mnemonic(_("A_lias:"));
+ label = gtk_label_new_with_mnemonic(_("(Optional) A_lias:"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
data->entry_for_alias = gtk_entry_new();
gtk_table_attach_defaults(GTK_TABLE(table),
- data->entry_for_alias, 1, 2, 2, 3);
+ data->entry_for_alias, 1, 2, 2, 3);
if (alias != NULL)
gtk_entry_set_text(GTK_ENTRY(data->entry_for_alias), alias);
@@ -6396,7 +6388,7 @@ pidgin_blist_request_add_buddy(PurpleAccount *account, const char *username,
gtk_label_set_mnemonic_widget(GTK_LABEL(label), data->entry_for_alias);
pidgin_set_accessible_label (data->entry_for_alias, label);
- label = gtk_label_new_with_mnemonic(_("_Group:"));
+ label = gtk_label_new_with_mnemonic(_("Add buddy to _group:"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);