aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-account-widget-irc.c8
-rw-r--r--libempathy-gtk/empathy-account-widget-irc.h7
-rw-r--r--libempathy-gtk/empathy-account-widget.c24
-rw-r--r--libempathy-gtk/empathy-individual-linker.c20
-rw-r--r--libempathy-gtk/empathy-individual-linker.h3
-rw-r--r--libempathy-gtk/empathy-individual-menu.c191
-rw-r--r--libempathy-gtk/empathy-individual-menu.h26
-rw-r--r--libempathy-gtk/empathy-individual-view.c28
-rw-r--r--libempathy-gtk/empathy-individual-widget.c2
-rw-r--r--libempathy-gtk/empathy-irc-network-chooser.c8
-rw-r--r--libempathy-gtk/empathy-irc-network-chooser.h4
-rw-r--r--libempathy-gtk/empathy-linking-dialog.c8
-rw-r--r--libempathy-gtk/empathy-linking-dialog.h5
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__ */