diff options
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-account-widget-irc.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-account-widget-irc.h | 7 | ||||
-rw-r--r-- | libempathy-gtk/empathy-account-widget.c | 24 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-linker.c | 20 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-linker.h | 3 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-menu.c | 191 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-menu.h | 26 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-view.c | 28 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-widget.c | 2 | ||||
-rw-r--r-- | libempathy-gtk/empathy-irc-network-chooser.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-irc-network-chooser.h | 4 | ||||
-rw-r--r-- | libempathy-gtk/empathy-linking-dialog.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-linking-dialog.h | 5 |
13 files changed, 294 insertions, 40 deletions
diff --git a/libempathy-gtk/empathy-account-widget-irc.c b/libempathy-gtk/empathy-account-widget-irc.c index 6cb1e22dd..450767751 100644 --- a/libempathy-gtk/empathy-account-widget-irc.c +++ b/libempathy-gtk/empathy-account-widget-irc.c @@ -99,7 +99,7 @@ network_changed_cb (EmpathyIrcNetworkChooser *chooser, empathy_account_widget_changed (settings->self); } -void +EmpathyIrcNetworkChooser * empathy_account_widget_irc_build (EmpathyAccountWidget *self, const char *filename, GtkWidget **table_common_settings) @@ -145,9 +145,11 @@ empathy_account_widget_irc_build (EmpathyAccountWidget *self, self->ui_details->default_focus = g_strdup ("entry_nick"); g_object_unref (ac_settings); + + return EMPATHY_IRC_NETWORK_CHOOSER (settings->network_chooser); } -void +EmpathyIrcNetworkChooser * empathy_account_widget_irc_build_simple (EmpathyAccountWidget *self, const char *filename) { @@ -186,4 +188,6 @@ empathy_account_widget_irc_build_simple (EmpathyAccountWidget *self, self->ui_details->default_focus = g_strdup ("entry_nick_simple"); g_object_unref (ac_settings); + + return EMPATHY_IRC_NETWORK_CHOOSER (settings->network_chooser); } diff --git a/libempathy-gtk/empathy-account-widget-irc.h b/libempathy-gtk/empathy-account-widget-irc.h index 0c51cfa8f..cc5dfff27 100644 --- a/libempathy-gtk/empathy-account-widget-irc.h +++ b/libempathy-gtk/empathy-account-widget-irc.h @@ -23,14 +23,17 @@ #include <gtk/gtk.h> #include <libempathy-gtk/empathy-account-widget.h> +#include <libempathy-gtk/empathy-irc-network-chooser.h> G_BEGIN_DECLS -void empathy_account_widget_irc_build (EmpathyAccountWidget *self, +EmpathyIrcNetworkChooser * empathy_account_widget_irc_build ( + EmpathyAccountWidget *self, const char *filename, GtkWidget **table_common_settings); -void empathy_account_widget_irc_build_simple (EmpathyAccountWidget *self, +EmpathyIrcNetworkChooser * empathy_account_widget_irc_build_simple ( + EmpathyAccountWidget *self, const char *filename); G_END_DECLS diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c index f6bf28d60..a5c3e8dc4 100644 --- a/libempathy-gtk/empathy-account-widget.c +++ b/libempathy-gtk/empathy-account-widget.c @@ -88,6 +88,9 @@ typedef struct { GtkWidget *param_account_widget; GtkWidget *param_password_widget; + /* Used only for IRC accounts */ + EmpathyIrcNetworkChooser *irc_network_chooser; + gboolean dispose_run; } EmpathyAccountWidgetPriv; @@ -904,12 +907,13 @@ account_widget_build_irc (EmpathyAccountWidget *self, if (priv->simple) { - empathy_account_widget_irc_build_simple (self, filename); + priv->irc_network_chooser = empathy_account_widget_irc_build_simple (self, + filename); } else { - empathy_account_widget_irc_build (self, filename, - &priv->table_common_settings); + priv->irc_network_chooser = empathy_account_widget_irc_build (self, + filename, &priv->table_common_settings); } } @@ -2017,17 +2021,19 @@ empathy_account_widget_get_default_display_name (EmpathyAccountWidget *self) /* TODO: this should be done in empathy-account-widget-irc */ if (!tp_strdiff (protocol, "irc")) { - const gchar* server; - server = empathy_account_settings_get_string (priv->settings, - "server"); + EmpathyIrcNetwork *network; + + network = empathy_irc_network_chooser_get_network ( + priv->irc_network_chooser); + g_assert (network != NULL); /* To translators: The first parameter is the login id and the - * second one is the server. The resulting string will be something - * like: "MyUserName on chat.freenode.net". + * second one is the network. The resulting string will be something + * like: "MyUserName on freenode". * You should reverse the order of these arguments if the * server should come before the login id in your locale.*/ default_display_name = g_strdup_printf (_("%1$s on %2$s"), - login_id, server); + login_id, empathy_irc_network_get_name (network)); } else if (account_widget_is_facebook (self)) { diff --git a/libempathy-gtk/empathy-individual-linker.c b/libempathy-gtk/empathy-individual-linker.c index eea1eaeef..8da456947 100644 --- a/libempathy-gtk/empathy-individual-linker.c +++ b/libempathy-gtk/empathy-individual-linker.c @@ -68,6 +68,7 @@ typedef struct { EmpathyPersonaStore *persona_store; /* owned */ GtkTreeViewColumn *toggle_column; /* child widget */ GtkCellRenderer *toggle_renderer; /* child widget */ + GtkWidget *search_widget; /* child widget */ FolksIndividual *start_individual; /* owned, allow-none */ FolksIndividual *new_individual; /* owned, allow-none */ @@ -330,7 +331,7 @@ set_up (EmpathyIndividualLinker *self) EmpathyIndividualManager *individual_manager; GtkWidget *top_vbox; GtkPaned *paned; - GtkWidget *label, *scrolled_window, *search_bar; + GtkWidget *label, *scrolled_window; GtkBox *vbox; EmpathyPersonaView *persona_view; gchar *tmp; @@ -406,11 +407,12 @@ set_up (EmpathyIndividualLinker *self) gtk_widget_show (scrolled_window); /* Live search */ - search_bar = empathy_live_search_new (GTK_WIDGET (priv->individual_view)); + priv->search_widget = empathy_live_search_new ( + GTK_WIDGET (priv->individual_view)); empathy_individual_view_set_live_search (priv->individual_view, - EMPATHY_LIVE_SEARCH (search_bar)); + EMPATHY_LIVE_SEARCH (priv->search_widget)); - gtk_box_pack_end (vbox, search_bar, FALSE, TRUE, 0); + gtk_box_pack_end (vbox, priv->search_widget, FALSE, TRUE, 0); gtk_container_add (GTK_CONTAINER (alignment), GTK_WIDGET (vbox)); gtk_paned_pack1 (paned, alignment, TRUE, FALSE); @@ -806,3 +808,13 @@ empathy_individual_linker_get_has_changed (EmpathyIndividualLinker *self) return (g_hash_table_size (priv->changed_individuals) > 0) ? TRUE : FALSE; } + +void +empathy_individual_linker_set_search_text (EmpathyIndividualLinker *self, + const gchar *search_text) +{ + g_return_if_fail (EMPATHY_IS_INDIVIDUAL_LINKER (self)); + + empathy_live_search_set_text ( + EMPATHY_LIVE_SEARCH (GET_PRIV (self)->search_widget), search_text); +} diff --git a/libempathy-gtk/empathy-individual-linker.h b/libempathy-gtk/empathy-individual-linker.h index 74fcfa6af..9d122dc51 100644 --- a/libempathy-gtk/empathy-individual-linker.h +++ b/libempathy-gtk/empathy-individual-linker.h @@ -68,6 +68,9 @@ GList * empathy_individual_linker_get_linked_personas ( gboolean empathy_individual_linker_get_has_changed ( EmpathyIndividualLinker *self); +void empathy_individual_linker_set_search_text (EmpathyIndividualLinker *self, + const gchar *search_text); + G_END_DECLS #endif /* __EMPATHY_INDIVIDUAL_LINKER_H__ */ diff --git a/libempathy-gtk/empathy-individual-menu.c b/libempathy-gtk/empathy-individual-menu.c index 69f0330f4..b0d734e58 100644 --- a/libempathy-gtk/empathy-individual-menu.c +++ b/libempathy-gtk/empathy-individual-menu.c @@ -42,6 +42,7 @@ #include "empathy-images.h" #include "empathy-log-window.h" #include "empathy-contact-dialogs.h" +#include "empathy-gtk-enum-types.h" #include "empathy-individual-dialogs.h" #include "empathy-individual-edit-dialog.h" #include "empathy-individual-information-dialog.h" @@ -49,6 +50,27 @@ #include "empathy-share-my-desktop.h" #include "empathy-linking-dialog.h" +#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyIndividualMenu) + +typedef struct { + FolksIndividual *individual; /* owned */ + EmpathyIndividualFeatureFlags features; +} EmpathyIndividualMenuPriv; + +enum { + PROP_INDIVIDUAL = 1, + PROP_FEATURES, +}; + +enum { + SIGNAL_LINK_CONTACTS_ACTIVATED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + +G_DEFINE_TYPE (EmpathyIndividualMenu, empathy_individual_menu, GTK_TYPE_MENU); + static void individual_menu_add_personas (GtkMenuShell *menu, FolksIndividual *individual, @@ -173,21 +195,38 @@ individual_menu_add_personas (GtkMenuShell *menu, } } -GtkWidget * -empathy_individual_menu_new (FolksIndividual *individual, - EmpathyIndividualFeatureFlags features) +static void +individual_link_menu_item_activate_cb (EmpathyIndividualMenu *self) { - GtkWidget *menu; - GtkMenuShell *shell; - GtkWidget *item; + EmpathyIndividualMenuPriv *priv = GET_PRIV (self); + GtkWidget *dialog; - g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL); + dialog = empathy_linking_dialog_show (priv->individual, NULL); + g_signal_emit (self, signals[SIGNAL_LINK_CONTACTS_ACTIVATED], 0, dialog); +} - if (features == EMPATHY_INDIVIDUAL_FEATURE_NONE) - return NULL; +static void +empathy_individual_menu_init (EmpathyIndividualMenu *self) +{ + EmpathyIndividualMenuPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + EMPATHY_TYPE_INDIVIDUAL_MENU, EmpathyIndividualMenuPriv); - menu = gtk_menu_new (); - shell = GTK_MENU_SHELL (menu); + self->priv = priv; +} + +static void +constructed (GObject *object) +{ + EmpathyIndividualMenuPriv *priv = GET_PRIV (object); + GtkMenuShell *shell; + GtkWidget *item; + FolksIndividual *individual; + EmpathyIndividualFeatureFlags features; + + /* Build the menu */ + shell = GTK_MENU_SHELL (object); + individual = priv->individual; + features = priv->features; /* Add Contact */ item = empathy_individual_add_menu_item_new (individual); @@ -247,7 +286,7 @@ empathy_individual_menu_new (FolksIndividual *individual, gtk_widget_show (item); /* Menu items to target specific contacts */ - individual_menu_add_personas (GTK_MENU_SHELL (menu), individual, features); + individual_menu_add_personas (GTK_MENU_SHELL (object), individual, features); /* Separator */ if (features & (EMPATHY_INDIVIDUAL_FEATURE_EDIT | @@ -273,6 +312,10 @@ empathy_individual_menu_new (FolksIndividual *individual, { item = empathy_individual_link_menu_item_new (individual); gtk_menu_shell_append (shell, item); + + g_signal_connect_swapped (item, "activate", + (GCallback) individual_link_menu_item_activate_cb, object); + gtk_widget_show (item); } @@ -291,8 +334,121 @@ empathy_individual_menu_new (FolksIndividual *individual, gtk_menu_shell_append (shell, item); gtk_widget_show (item); } +} + +static void +get_property (GObject *object, + guint param_id, + GValue *value, + GParamSpec *pspec) +{ + EmpathyIndividualMenuPriv *priv; + + priv = GET_PRIV (object); + + switch (param_id) + { + case PROP_INDIVIDUAL: + g_value_set_object (value, priv->individual); + break; + case PROP_FEATURES: + g_value_set_flags (value, priv->features); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); + break; + } +} + +static void +set_property (GObject *object, + guint param_id, + const GValue *value, + GParamSpec *pspec) +{ + EmpathyIndividualMenuPriv *priv; - return menu; + priv = GET_PRIV (object); + + switch (param_id) + { + case PROP_INDIVIDUAL: + priv->individual = g_value_dup_object (value); + break; + case PROP_FEATURES: + priv->features = g_value_get_flags (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); + break; + } +} + +static void +dispose (GObject *object) +{ + EmpathyIndividualMenuPriv *priv = GET_PRIV (object); + + tp_clear_object (&priv->individual); + + G_OBJECT_CLASS (empathy_individual_menu_parent_class)->dispose (object); +} + +static void +empathy_individual_menu_class_init (EmpathyIndividualMenuClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->constructed = constructed; + object_class->get_property = get_property; + object_class->set_property = set_property; + object_class->dispose = dispose; + + /** + * EmpathyIndividualMenu:individual: + * + * The #FolksIndividual the menu is for. + */ + g_object_class_install_property (object_class, PROP_INDIVIDUAL, + g_param_spec_object ("individual", + "Individual", + "The #FolksIndividual the menu is for.", + FOLKS_TYPE_INDIVIDUAL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + + /** + * EmpathyIndividualMenu:features: + * + * A set of feature flags controlling which entries are shown. + */ + g_object_class_install_property (object_class, PROP_FEATURES, + g_param_spec_flags ("features", + "Features", + "A set of feature flags controlling which entries are shown.", + EMPATHY_TYPE_INDIVIDUAL_FEATURE_FLAGS, + EMPATHY_INDIVIDUAL_FEATURE_NONE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + + signals[SIGNAL_LINK_CONTACTS_ACTIVATED] = + g_signal_new ("link-contacts-activated", G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, EMPATHY_TYPE_LINKING_DIALOG); + + g_type_class_add_private (object_class, sizeof (EmpathyIndividualMenuPriv)); +} + +GtkWidget * +empathy_individual_menu_new (FolksIndividual *individual, + EmpathyIndividualFeatureFlags features) +{ + g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL); + g_return_val_if_fail (features != EMPATHY_INDIVIDUAL_FEATURE_NONE, NULL); + + return g_object_new (EMPATHY_TYPE_INDIVIDUAL_MENU, + "individual", individual, + "features", features, + NULL); } static void @@ -837,12 +993,6 @@ empathy_individual_edit_menu_item_new (FolksIndividual *individual) return item; } -static void -individual_link_menu_item_activate_cb (FolksIndividual *individual) -{ - empathy_linking_dialog_show (individual, NULL); -} - GtkWidget * empathy_individual_link_menu_item_new (FolksIndividual *individual) { @@ -865,9 +1015,6 @@ empathy_individual_link_menu_item_new (FolksIndividual *individual) folks_individual_get_trust_level (individual) == FOLKS_TRUST_LEVEL_PERSONAS); - g_signal_connect_swapped (item, "activate", - G_CALLBACK (individual_link_menu_item_activate_cb), individual); - return item; } diff --git a/libempathy-gtk/empathy-individual-menu.h b/libempathy-gtk/empathy-individual-menu.h index a00de3dfb..41eac601b 100644 --- a/libempathy-gtk/empathy-individual-menu.h +++ b/libempathy-gtk/empathy-individual-menu.h @@ -39,6 +39,32 @@ typedef enum { EMPATHY_INDIVIDUAL_FEATURE_ALL = (1 << 7) - 1, } EmpathyIndividualFeatureFlags; +#define EMPATHY_TYPE_INDIVIDUAL_MENU (empathy_individual_menu_get_type ()) +#define EMPATHY_INDIVIDUAL_MENU(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ + EMPATHY_TYPE_INDIVIDUAL_MENU, EmpathyIndividualMenu)) +#define EMPATHY_INDIVIDUAL_MENU_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), \ + EMPATHY_TYPE_INDIVIDUAL_MENU, EmpathyIndividualMenuClass)) +#define EMPATHY_IS_INDIVIDUAL_MENU(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ + EMPATHY_TYPE_INDIVIDUAL_MENU)) +#define EMPATHY_IS_INDIVIDUAL_MENU_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \ + EMPATHY_TYPE_INDIVIDUAL_MENU)) +#define EMPATHY_INDIVIDUAL_MENU_GET_CLASS(o) ( \ + G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_INDIVIDUAL_MENU, \ + EmpathyIndividualMenuClass)) + +typedef struct { + GtkMenu parent; + + /*<private>*/ + gpointer priv; +} EmpathyIndividualMenu; + +typedef struct { + GtkMenuClass parent_class; +} EmpathyIndividualMenuClass; + +GType empathy_individual_menu_get_type (void) G_GNUC_CONST; + GtkWidget * empathy_individual_menu_new (FolksIndividual *individual, EmpathyIndividualFeatureFlags features); GtkWidget * empathy_individual_add_menu_item_new (FolksIndividual *individual); diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c index d18fb2a10..573cef6f9 100644 --- a/libempathy-gtk/empathy-individual-view.c +++ b/libempathy-gtk/empathy-individual-view.c @@ -48,6 +48,7 @@ #include "empathy-individual-menu.h" #include "empathy-individual-store.h" #include "empathy-images.h" +#include "empathy-linking-dialog.h" #include "empathy-cell-renderer-expander.h" #include "empathy-cell-renderer-text.h" #include "empathy-cell-renderer-activatable.h" @@ -1503,8 +1504,12 @@ individual_view_expand_idle_cb (EmpathyIndividualView *self) g_signal_handlers_unblock_by_func (self, individual_view_row_expand_or_collapse_cb, GINT_TO_POINTER (TRUE)); - g_object_unref (self); + /* Empty the table of groups to expand/contract, since it may contain groups + * which no longer exist in the tree view. This can happen after going + * offline, for example. */ + g_hash_table_remove_all (priv->expand_groups); priv->expand_groups_idle_handler = 0; + g_object_unref (self); return FALSE; } @@ -1922,6 +1927,8 @@ individual_view_finalize (GObject *object) { EmpathyIndividualViewPriv *priv = GET_PRIV (object); + if (priv->expand_groups_idle_handler != 0) + g_source_remove (priv->expand_groups_idle_handler); g_hash_table_destroy (priv->expand_groups); G_OBJECT_CLASS (empathy_individual_view_parent_class)->finalize (object); @@ -2350,6 +2357,19 @@ individual_view_remove_activate_cb (GtkMenuItem *menuitem, } } +static void +individual_menu_link_contacts_activated_cb (EmpathyIndividualMenu *menu, + EmpathyLinkingDialog *linking_dialog, + EmpathyIndividualView *self) +{ + EmpathyIndividualViewPriv *priv = GET_PRIV (self); + EmpathyIndividualLinker *linker; + + linker = empathy_linking_dialog_get_individual_linker (linking_dialog); + empathy_individual_linker_set_search_text (linker, + empathy_live_search_get_text (EMPATHY_LIVE_SEARCH (priv->search_widget))); +} + GtkWidget * empathy_individual_view_get_individual_menu (EmpathyIndividualView *view) { @@ -2397,6 +2417,12 @@ empathy_individual_view_get_individual_menu (EmpathyIndividualView *view) G_CALLBACK (individual_view_remove_activate_cb), view); } + /* Connect to EmpathyIndividualMenu::link-contacts-activated so that we can + * set the live search text on the new linking dialogue to be the same as + * our own. */ + g_signal_connect (menu, "link-contacts-activated", + (GCallback) individual_menu_link_contacts_activated_cb, view); + g_object_unref (individual); return menu; diff --git a/libempathy-gtk/empathy-individual-widget.c b/libempathy-gtk/empathy-individual-widget.c index 7e4be2235..40ece1eec 100644 --- a/libempathy-gtk/empathy-individual-widget.c +++ b/libempathy-gtk/empathy-individual-widget.c @@ -1676,6 +1676,8 @@ personas_changed_cb (FolksIndividual *individual, /* Remove all Personas */ for (l = personas; l != NULL; l = l->next) remove_persona (self, FOLKS_PERSONA (l->data)); + for (l = removed; l != NULL; l = l->next) + remove_persona (self, FOLKS_PERSONA (l->data)); /* Set up the Individual table instead */ individual_table_set_up (self); diff --git a/libempathy-gtk/empathy-irc-network-chooser.c b/libempathy-gtk/empathy-irc-network-chooser.c index 55a90fd0c..cc6b1cd95 100644 --- a/libempathy-gtk/empathy-irc-network-chooser.c +++ b/libempathy-gtk/empathy-irc-network-chooser.c @@ -358,3 +358,11 @@ empathy_irc_network_chooser_new (EmpathyAccountSettings *settings) "settings", settings, NULL); } + +EmpathyIrcNetwork * +empathy_irc_network_chooser_get_network (EmpathyIrcNetworkChooser *self) +{ + EmpathyIrcNetworkChooserPriv *priv = GET_PRIV (self); + + return priv->network; +} diff --git a/libempathy-gtk/empathy-irc-network-chooser.h b/libempathy-gtk/empathy-irc-network-chooser.h index 442ac2d53..3b6125050 100644 --- a/libempathy-gtk/empathy-irc-network-chooser.h +++ b/libempathy-gtk/empathy-irc-network-chooser.h @@ -25,6 +25,7 @@ #include <gtk/gtk.h> #include <libempathy/empathy-account-settings.h> +#include <libempathy/empathy-irc-network.h> G_BEGIN_DECLS @@ -56,6 +57,9 @@ GType empathy_irc_network_chooser_get_type (void) G_GNUC_CONST; GtkWidget * empathy_irc_network_chooser_new (EmpathyAccountSettings *settings); +EmpathyIrcNetwork * empathy_irc_network_chooser_get_network ( + EmpathyIrcNetworkChooser *self); + G_END_DECLS #endif /* __EMPATHY_IRC_NETWORK_CHOOSER_H__ */ diff --git a/libempathy-gtk/empathy-linking-dialog.c b/libempathy-gtk/empathy-linking-dialog.c index 6d76ea1de..804884861 100644 --- a/libempathy-gtk/empathy-linking-dialog.c +++ b/libempathy-gtk/empathy-linking-dialog.c @@ -196,3 +196,11 @@ empathy_linking_dialog_show (FolksIndividual *individual, return linking_dialog; } + +EmpathyIndividualLinker * +empathy_linking_dialog_get_individual_linker (EmpathyLinkingDialog *self) +{ + g_return_val_if_fail (EMPATHY_IS_LINKING_DIALOG (self), NULL); + + return GET_PRIV (self)->linker; +} diff --git a/libempathy-gtk/empathy-linking-dialog.h b/libempathy-gtk/empathy-linking-dialog.h index 912a3ce4d..fb47641ca 100644 --- a/libempathy-gtk/empathy-linking-dialog.h +++ b/libempathy-gtk/empathy-linking-dialog.h @@ -25,6 +25,8 @@ #include <folks/folks.h> +#include "empathy-individual-linker.h" + G_BEGIN_DECLS #define EMPATHY_TYPE_LINKING_DIALOG (empathy_linking_dialog_get_type ()) @@ -56,6 +58,9 @@ GType empathy_linking_dialog_get_type (void) G_GNUC_CONST; GtkWidget * empathy_linking_dialog_show (FolksIndividual *individual, GtkWindow *parent); +EmpathyIndividualLinker * empathy_linking_dialog_get_individual_linker ( + EmpathyLinkingDialog *self); + G_END_DECLS #endif /* __EMPATHY_LINKING_DIALOG_H__ */ |