]> git.0d.be Git - empathy.git/blobdiff - src/empathy-import-dialog.c
Be more compatible with Facebook emoticon codes
[empathy.git] / src / empathy-import-dialog.c
index da0c9d3ea91f895970c02c1a24ce653e84068132..9d86dd1dec4a69044220c6b23f21abaa10f706e4 100644 (file)
  *          Cosimo Cecchi <cosimo.cecchi@collabora.co.uk>
  */
 
-#include <config.h>
+#include "config.h"
+#include "empathy-import-dialog.h"
 
-#include <glib.h>
-#include <gtk/gtk.h>
 #include <glib/gi18n-lib.h>
 
-#include <telepathy-glib/util.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-gtk/empathy-ui-utils.h>
+#include "empathy-debug.h"
 
 enum {
   PROP_PARENT = 1,
-  PROP_SHOW_WARNING
+  PROP_SHOW_WARNING,
+  PROP_CMS,
 };
 
 typedef struct {
@@ -48,6 +43,7 @@ typedef struct {
   EmpathyImportWidget *iw;
 
   gboolean show_warning;
+  TpawConnectionManagers *cms;
 } EmpathyImportDialogPriv;
 
 G_DEFINE_TYPE (EmpathyImportDialog, empathy_import_dialog, GTK_TYPE_DIALOG)
@@ -62,15 +58,17 @@ import_dialog_add_import_widget (EmpathyImportDialog *self)
 
   area = gtk_dialog_get_content_area (GTK_DIALOG (self));
 
-  iw = empathy_import_widget_new (EMPATHY_IMPORT_APPLICATION_ALL);
+  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
@@ -78,8 +76,8 @@ import_dialog_show_warning_message (EmpathyImportDialog *self)
 {
   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."));
@@ -134,6 +132,9 @@ do_get_property (GObject *object,
     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);
     }
@@ -155,6 +156,9 @@ do_set_property (GObject *object,
     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);
     }
@@ -199,6 +203,15 @@ empathy_import_dialog_init (EmpathyImportDialog *self)
   gtk_window_set_title (GTK_WINDOW (self), _("Import Accounts"));
   gtk_window_set_modal (GTK_WINDOW (self), TRUE);
 }
+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
 empathy_import_dialog_class_init (EmpathyImportDialogClass *klass)
@@ -210,6 +223,7 @@ empathy_import_dialog_class_init (EmpathyImportDialogClass *klass)
   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;
 
@@ -226,13 +240,25 @@ empathy_import_dialog_class_init (EmpathyImportDialogClass *klass)
       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);
 }