aboutsummaryrefslogtreecommitdiffstats
path: root/src/empathy-import-widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/empathy-import-widget.c')
-rw-r--r--src/empathy-import-widget.c82
1 files changed, 67 insertions, 15 deletions
diff --git a/src/empathy-import-widget.c b/src/empathy-import-widget.c
index d276c03e5..03117350c 100644
--- a/src/empathy-import-widget.c
+++ b/src/empathy-import-widget.c
@@ -53,11 +53,16 @@ enum
COL_COUNT
};
+enum {
+ PROP_APPLICATION_ID = 1
+};
+
typedef struct {
GtkWidget *vbox;
GtkWidget *treeview;
GList *accounts;
+ EmpathyImportApplication app_id;
EmpathyConnectionManagers *cms;
@@ -322,16 +327,19 @@ import_widget_set_up_account_list (EmpathyImportWidget *self)
gtk_tree_view_column_pack_start (column, cell, TRUE);
gtk_tree_view_column_add_attribute (column, cell, "text", COL_NAME);
- /* Source column */
- column = gtk_tree_view_column_new ();
- gtk_tree_view_column_set_title (column, _("Source"));
- gtk_tree_view_column_set_expand (column, TRUE);
- gtk_tree_view_append_column (view, column);
-
- cell = gtk_cell_renderer_text_new ();
- g_object_set (cell, "editable", FALSE, NULL);
- gtk_tree_view_column_pack_start (column, cell, TRUE);
- gtk_tree_view_column_add_attribute (column, cell, "text", COL_SOURCE);
+ if (priv->app_id == EMPATHY_IMPORT_APPLICATION_ALL)
+ {
+ /* Source column */
+ column = gtk_tree_view_column_new ();
+ gtk_tree_view_column_set_title (column, _("Source"));
+ gtk_tree_view_column_set_expand (column, TRUE);
+ gtk_tree_view_append_column (view, column);
+
+ cell = gtk_cell_renderer_text_new ();
+ g_object_set (cell, "editable", FALSE, NULL);
+ gtk_tree_view_column_pack_start (column, cell, TRUE);
+ gtk_tree_view_column_add_attribute (column, cell, "text", COL_SOURCE);
+ }
import_widget_add_accounts_to_model (self);
}
@@ -353,6 +361,42 @@ import_widget_destroy_cb (GtkWidget *w,
}
static void
+do_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ EmpathyImportWidgetPriv *priv = GET_PRIV (object);
+
+ switch (property_id)
+ {
+ case PROP_APPLICATION_ID:
+ g_value_set_int (value, priv->app_id);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
+}
+
+static void
+do_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ EmpathyImportWidgetPriv *priv = GET_PRIV (object);
+
+ switch (property_id)
+ {
+ case PROP_APPLICATION_ID:
+ priv->app_id = g_value_get_int (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
+}
+
+static void
do_finalize (GObject *obj)
{
EmpathyImportWidgetPriv *priv = GET_PRIV (obj);
@@ -393,6 +437,8 @@ do_constructed (GObject *obj)
GtkBuilder *gui;
gchar *filename;
+ priv->accounts = empathy_import_accounts_load (priv->app_id);
+
filename = empathy_file_lookup ("empathy-import-dialog.ui", "src");
gui = empathy_builder_get_file (filename,
"widget_vbox", &priv->vbox,
@@ -416,10 +462,19 @@ static void
empathy_import_widget_class_init (EmpathyImportWidgetClass *klass)
{
GObjectClass *oclass = G_OBJECT_CLASS (klass);
+ GParamSpec *param_spec;
oclass->constructed = do_constructed;
oclass->finalize = do_finalize;
oclass->dispose = do_dispose;
+ oclass->set_property = do_set_property;
+ oclass->get_property = do_get_property;
+
+ param_spec = g_param_spec_int ("application-id",
+ "application-id", "The application id to import from",
+ 0, EMPATHY_IMPORT_APPLICATION_INVALID, EMPATHY_IMPORT_APPLICATION_ALL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
+ g_object_class_install_property (oclass, PROP_APPLICATION_ID, param_spec);
g_type_class_add_private (klass, sizeof (EmpathyImportWidgetPriv));
}
@@ -433,16 +488,13 @@ empathy_import_widget_init (EmpathyImportWidget *self)
self->priv = priv;
- /* Load all accounts from all supported applications */
- priv->accounts = empathy_import_pidgin_load ();
-
priv->cms = empathy_connection_managers_dup_singleton ();
}
EmpathyImportWidget *
-empathy_import_widget_new (void)
+empathy_import_widget_new (EmpathyImportApplication id)
{
- return g_object_new (EMPATHY_TYPE_IMPORT_WIDGET, NULL);
+ return g_object_new (EMPATHY_TYPE_IMPORT_WIDGET, "application-id", id, NULL);
}
GtkWidget *