aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-contact-selector-dialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk/empathy-contact-selector-dialog.c')
-rw-r--r--libempathy-gtk/empathy-contact-selector-dialog.c56
1 files changed, 25 insertions, 31 deletions
diff --git a/libempathy-gtk/empathy-contact-selector-dialog.c b/libempathy-gtk/empathy-contact-selector-dialog.c
index 1f3e21a6d..58e0fff35 100644
--- a/libempathy-gtk/empathy-contact-selector-dialog.c
+++ b/libempathy-gtk/empathy-contact-selector-dialog.c
@@ -202,34 +202,6 @@ out:
}
static void
-contact_selector_dialog_response_cb (GtkWidget *widget,
- gint response,
- EmpathyContactSelectorDialog *dialog)
-{
- EmpathyContactSelectorDialogPriv *priv = GET_PRIV (dialog);
- TpConnection *connection;
- const gchar *id;
- EmpathyContactSelectorDialogClass *class = \
- EMPATHY_CONTACT_SELECTOR_DIALOG_GET_CLASS (dialog);
-
- connection = empathy_account_chooser_get_connection (
- EMPATHY_ACCOUNT_CHOOSER (priv->account_chooser));
- id = gtk_entry_get_text (GTK_ENTRY (priv->entry_id));
- if (!connection || EMP_STR_EMPTY (id))
- {
- gtk_widget_destroy (widget);
- return;
- }
-
- if (response == GTK_RESPONSE_ACCEPT)
- {
- class->got_response (dialog, connection, id);
- }
-
- gtk_widget_destroy (widget);
-}
-
-static void
contact_selector_change_state_button_cb (GtkEditable *editable,
EmpathyContactSelectorDialog *dialog)
{
@@ -331,9 +303,6 @@ empathy_contact_selector_dialog_init (EmpathyContactSelectorDialog *dialog)
g_object_unref (completion);
g_object_unref (model);
- g_signal_connect (dialog, "response",
- G_CALLBACK (contact_selector_dialog_response_cb), dialog);
-
empathy_builder_connect (gui, dialog,
"entry_id", "changed", contact_selector_change_state_button_cb,
NULL);
@@ -435,6 +404,31 @@ empathy_contact_selector_dialog_class_init (
G_PARAM_READWRITE));
}
+const gchar *
+empathy_contact_selector_dialog_get_selected (
+ EmpathyContactSelectorDialog *self,
+ TpConnection **connection)
+{
+ EmpathyContactSelectorDialogPriv *priv;
+ const char *id;
+
+ g_return_val_if_fail (EMPATHY_IS_CONTACT_SELECTOR_DIALOG (self), NULL);
+
+ priv = GET_PRIV (self);
+
+ if (connection)
+ {
+ if (priv->show_account_chooser)
+ *connection = empathy_account_chooser_get_connection (
+ EMPATHY_ACCOUNT_CHOOSER (priv->account_chooser));
+ else
+ *connection = NULL;
+ }
+
+ id = gtk_entry_get_text (GTK_ENTRY (priv->entry_id));
+ return id;
+}
+
void
empathy_contact_selector_dialog_set_show_account_chooser (
EmpathyContactSelectorDialog *self,