* Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
*/
-#include <config.h>
-
-#include <string.h>
-
-#include <glib.h>
-#include <gtk/gtk.h>
-#include <glib/gi18n.h>
+#include "config.h"
+#include "empathy-import-dialog.h"
-#include <telepathy-glib/util.h>
+#include <glib/gi18n-lib.h>
-#include "empathy-import-dialog.h"
-#include "empathy-import-pidgin.h"
#include "empathy-import-widget.h"
+#include "empathy-utils.h"
#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
-#include <libempathy/empathy-debug.h>
-#include <libempathy/empathy-utils.h>
-#include <libempathy/empathy-account-manager.h>
-#include <libempathy/empathy-connection-managers.h>
-#include <libempathy-gtk/empathy-ui-utils.h>
+#include "empathy-debug.h"
enum {
PROP_PARENT = 1,
- PROP_SHOW_WARNING
+ PROP_SHOW_WARNING,
+ PROP_CMS,
};
typedef struct {
EmpathyImportWidget *iw;
gboolean show_warning;
+ TpawConnectionManagers *cms;
} EmpathyImportDialogPriv;
G_DEFINE_TYPE (EmpathyImportDialog, empathy_import_dialog, GTK_TYPE_DIALOG)
#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyImportDialog)
-EmpathyImportAccountData *
-empathy_import_account_data_new (const gchar *source)
-{
- EmpathyImportAccountData *data;
-
- g_return_val_if_fail (!EMP_STR_EMPTY (source), NULL);
-
- data = g_slice_new0 (EmpathyImportAccountData);
- data->settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
- (GDestroyNotify) tp_g_value_slice_free);
- data->source = g_strdup (source);
- data->protocol = NULL;
- data->connection_manager = NULL;
-
- return data;
-}
-
-void
-empathy_import_account_data_free (EmpathyImportAccountData *data)
-{
- if (data == NULL)
- return;
- if (data->protocol != NULL)
- g_free (data->protocol);
- if (data->connection_manager != NULL)
- g_free (data->connection_manager);
- if (data->settings != NULL)
- g_hash_table_destroy (data->settings);
- if (data->source != NULL)
- g_free (data->source);
-
- g_slice_free (EmpathyImportAccountData, data);
-}
-
-gboolean
-empathy_import_dialog_accounts_to_import (void)
-{
- return empathy_import_pidgin_accounts_to_import ();
-}
-
static void
import_dialog_add_import_widget (EmpathyImportDialog *self)
{
GtkWidget *widget, *area;
area = gtk_dialog_get_content_area (GTK_DIALOG (self));
-
- iw = empathy_import_widget_new ();
+
+ iw = empathy_import_widget_new (EMPATHY_IMPORT_APPLICATION_ALL, priv->cms);
widget = empathy_import_widget_get_widget (iw);
- gtk_box_pack_start (GTK_BOX (area), widget, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (area), widget, TRUE, TRUE, 0);
gtk_widget_show (widget);
priv->iw = iw;
-
- gtk_dialog_add_buttons (GTK_DIALOG (self), GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+
+ gtk_dialog_add_buttons (GTK_DIALOG (self),
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ _("_Import"), GTK_RESPONSE_OK,
+ NULL);
}
static void
{
GtkWidget *hbox, *vbox, *w;
- vbox = gtk_vbox_new (FALSE, 12);
- hbox = gtk_hbox_new (FALSE, 12);
+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
w = gtk_label_new (_("No accounts to import could be found. Empathy "
"currently only supports importing accounts from Pidgin."));
case PROP_SHOW_WARNING:
g_value_set_boolean (value, priv->show_warning);
break;
+ case PROP_CMS:
+ g_value_set_object (value, priv->cms);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
case PROP_SHOW_WARNING:
priv->show_warning = g_value_get_boolean (value);
break;
+ case PROP_CMS:
+ priv->cms = g_value_dup_object (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
EmpathyImportDialogPriv *priv = GET_PRIV (self);
gboolean have_accounts;
- have_accounts = empathy_import_dialog_accounts_to_import ();
+ have_accounts = empathy_import_accounts_to_import ();
if (!have_accounts)
{
gtk_container_set_border_width (GTK_CONTAINER (self), 5);
gtk_window_set_title (GTK_WINDOW (self), _("Import Accounts"));
gtk_window_set_modal (GTK_WINDOW (self), TRUE);
- gtk_dialog_set_has_separator (GTK_DIALOG (self), FALSE);
+}
+static void
+do_dispose (GObject *obj)
+{
+ EmpathyImportDialogPriv *priv = GET_PRIV (obj);
+
+ g_clear_object (&priv->cms);
+
+ G_OBJECT_CLASS (empathy_import_dialog_parent_class)->dispose (obj);
}
static void
oclass->constructed = do_constructed;
oclass->get_property = do_get_property;
oclass->set_property = do_set_property;
+ oclass->dispose = do_dispose;
gtkclass->response = impl_signal_response;
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_property (oclass, PROP_SHOW_WARNING, param_spec);
+ param_spec = g_param_spec_object ("cms",
+ "TpawConnectionManagers", "EmpathyConnectionManager",
+ TPAW_TYPE_CONNECTION_MANAGERS,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY);
+ g_object_class_install_property (oclass, PROP_CMS, param_spec);
+
g_type_class_add_private (klass, sizeof (EmpathyImportDialogPriv));
}
GtkWidget *
empathy_import_dialog_new (GtkWindow *parent,
- gboolean warning)
+ gboolean warning,
+ TpawConnectionManagers *cms)
{
- return g_object_new (EMPATHY_TYPE_IMPORT_DIALOG, "parent-window",
- parent, "show-warning", warning, NULL);
+ g_return_val_if_fail (TPAW_IS_CONNECTION_MANAGERS (cms), NULL);
+
+ return g_object_new (EMPATHY_TYPE_IMPORT_DIALOG,
+ "parent-window", parent,
+ "show-warning", warning,
+ "cms", cms,
+ NULL);
}