#include <libempathy/empathy-contact-manager.h>
#include <libempathy/empathy-contact-list.h>
+#include <libempathy/empathy-tp-contact-factory.h>
#include <libempathy/empathy-utils.h>
#include "empathy-contact-dialogs.h"
contact = empathy_contact_widget_get_contact (contact_widget);
if (response == GTK_RESPONSE_YES) {
+ EmpathyTpContactFactory *factory;
+
+ factory = empathy_tp_contact_factory_dup_singleton (
+ empathy_contact_get_connection (contact));
+
empathy_contact_list_add (EMPATHY_CONTACT_LIST (manager),
contact, "");
+ empathy_tp_contact_factory_set_alias (factory, contact,
+ empathy_contact_widget_get_alias (contact_widget));
+
+ g_object_unref (factory);
}
else if (response == GTK_RESPONSE_NO) {
empathy_contact_list_remove (EMPATHY_CONTACT_LIST (manager),
/* Contact info widget */
contact_widget = empathy_contact_widget_new (contact,
+ EMPATHY_CONTACT_WIDGET_NO_SET_ALIAS |
EMPATHY_CONTACT_WIDGET_EDIT_ALIAS |
EMPATHY_CONTACT_WIDGET_EDIT_GROUPS);
gtk_box_pack_end (GTK_BOX (hbox_subscription),
if (information->flags & EMPATHY_CONTACT_WIDGET_EDIT_ALIAS)
{
information->widget_alias = gtk_entry_new ();
- g_signal_connect (information->widget_alias, "focus-out-event",
- G_CALLBACK (contact_widget_entry_alias_focus_event_cb),
- information);
+
+ if (!(information->flags & EMPATHY_CONTACT_WIDGET_NO_SET_ALIAS))
+ g_signal_connect (information->widget_alias, "focus-out-event",
+ G_CALLBACK (contact_widget_entry_alias_focus_event_cb),
+ information);
+
/* Make return activate the window default (the Close button) */
gtk_entry_set_activates_default (GTK_ENTRY (information->widget_alias),
TRUE);
return information->contact;
}
+const gchar *
+empathy_contact_widget_get_alias (GtkWidget *widget)
+{
+ EmpathyContactWidget *information;
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+
+ information = g_object_get_data (G_OBJECT (widget), "EmpathyContactWidget");
+ if (!information)
+ return NULL;
+
+ return gtk_entry_get_text (GTK_ENTRY (information->widget_alias));
+}
+
/**
* empathy_contact_widget_set_contact:
* @widget: an #EmpathyContactWidget
EMPATHY_CONTACT_WIDGET_EDIT_GROUPS = 1 << 4,
EMPATHY_CONTACT_WIDGET_FOR_TOOLTIP = 1 << 5,
EMPATHY_CONTACT_WIDGET_SHOW_LOCATION = 1 << 6,
+ EMPATHY_CONTACT_WIDGET_NO_SET_ALIAS = 1 << 7,
} EmpathyContactWidgetFlags;
GtkWidget * empathy_contact_widget_new (EmpathyContact *contact,
EmpathyContact *contact);
void empathy_contact_widget_set_account_filter (GtkWidget *widget,
EmpathyAccountChooserFilterFunc filter, gpointer user_data);
+const gchar *empathy_contact_widget_get_alias (GtkWidget *widget);
G_END_DECLS