]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-account-widget-irc.c
Merge commit 'upstream/master' into mc5
[empathy.git] / libempathy-gtk / empathy-account-widget-irc.c
index c0699b23a70fec490a0a9e78853d556d2b6e1d2c..c04f3463da89f01f0a16c2560993d50646d5014f 100644 (file)
@@ -27,8 +27,6 @@
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-protocol.h>
-
 #include <libempathy/empathy-utils.h>
 #include <libempathy/empathy-irc-network-manager.h>
 
@@ -43,7 +41,7 @@
 #define IRC_NETWORKS_FILENAME "irc-networks.xml"
 
 typedef struct {
-  EmpathyAccount *account;
+  EmpathyAccountSettings *settings;
   EmpathyIrcNetworkManager *network_manager;
 
   GtkWidget *vbox_settings;
@@ -61,7 +59,7 @@ account_widget_irc_destroy_cb (GtkWidget *widget,
                                EmpathyAccountWidgetIrc *settings)
 {
   g_object_unref (settings->network_manager);
-  g_object_unref (settings->account);
+  g_object_unref (settings->settings);
   g_slice_free (EmpathyAccountWidgetIrc, settings);
 }
 
@@ -69,9 +67,9 @@ static void
 unset_server_params (EmpathyAccountWidgetIrc *settings)
 {
   DEBUG ("Unset server, port and use-ssl");
-  empathy_account_unset_param (settings->account, "server");
-  empathy_account_unset_param (settings->account, "port");
-  empathy_account_unset_param (settings->account, "use-ssl");
+  empathy_account_settings_unset (settings->settings, "server");
+  empathy_account_settings_unset (settings->settings, "port");
+  empathy_account_settings_unset (settings->settings, "use-ssl");
 }
 
 static void
@@ -97,7 +95,7 @@ update_server_params (EmpathyAccountWidgetIrc *settings)
 
   g_object_get (network, "charset", &charset, NULL);
   DEBUG ("Setting charset to %s", charset);
-  empathy_account_set_param_string (settings->account, "charset", charset);
+  empathy_account_settings_set_string (settings->settings, "charset", charset);
   g_free (charset);
 
   servers = empathy_irc_network_get_servers (network);
@@ -116,11 +114,13 @@ update_server_params (EmpathyAccountWidgetIrc *settings)
           NULL);
 
       DEBUG ("Setting server to %s", address);
-      empathy_account_set_param_string (settings->account, "server", address);
+      empathy_account_settings_set_string (settings->settings,
+        "server", address);
       DEBUG ("Setting port to %u", port);
-      empathy_account_set_param_int (settings->account, "port", port);
+      empathy_account_settings_set_uint32 (settings->settings, "port", port);
       DEBUG ("Setting use-ssl to %s", ssl ? "TRUE": "FALSE" );
-      empathy_account_set_param_boolean (settings->account, "use-ssl", ssl);
+      empathy_account_settings_set_boolean (settings->settings,
+        "use-ssl", ssl);
 
       g_free (address);
     }
@@ -323,25 +323,27 @@ fill_networks_model (EmpathyAccountWidgetIrc *settings,
 static void
 account_widget_irc_setup (EmpathyAccountWidgetIrc *settings)
 {
-  gchar *nick = NULL;
-  gchar *fullname = NULL;
-  gchar *server = NULL;
+  const gchar *nick = NULL;
+  const gchar *fullname = NULL;
+  const gchar *server = NULL;
   gint port = 6667;
-  gchar *charset;
+  const gchar *charset;
   gboolean ssl = FALSE;
   EmpathyIrcNetwork *network = NULL;
 
-  nick = empathy_account_get_param_string (settings->account, "account");
-  fullname = empathy_account_get_param_string (settings->account, "fullname");
-  server = empathy_account_get_param_string (settings->account, "server");
-  charset = empathy_account_get_param_string (settings->account, "charset");
-  port = empathy_account_get_param_int (settings->account, "port");
-  ssl = empathy_account_get_param_boolean (settings->account, "use-ssl");
+  nick = empathy_account_settings_get_string (settings->settings, "account");
+  fullname = empathy_account_settings_get_string (settings->settings,
+      "fullname");
+  server = empathy_account_settings_get_string (settings->settings, "server");
+  charset = empathy_account_settings_get_string (settings->settings, "charset");
+  port = empathy_account_settings_get_uint32 (settings->settings, "port");
+  ssl = empathy_account_settings_get_boolean (settings->settings, "use-ssl");
 
   if (!nick)
     {
       nick = g_strdup (g_get_user_name ());
-      empathy_account_set_param_string (settings->account, "account", nick);
+      empathy_account_settings_set_string (settings->settings,
+        "account", nick);
     }
 
   if (!fullname)
@@ -351,7 +353,8 @@ account_widget_irc_setup (EmpathyAccountWidgetIrc *settings)
         {
           fullname = g_strdup (nick);
         }
-      empathy_account_set_param_string (settings->account, "fullname", fullname);
+      empathy_account_settings_set_string (settings->settings,
+          "fullname", fullname);
     }
 
   if (server != NULL)
@@ -404,33 +407,29 @@ account_widget_irc_setup (EmpathyAccountWidgetIrc *settings)
 
 
   fill_networks_model (settings, network);
-
-  g_free (nick);
-  g_free (fullname);
-  g_free (server);
-  g_free (charset);
 }
 
 /**
  * empathy_account_widget_irc_new:
- * @account: the #EmpathyAccount to configure
+ * @settings: the #EmpathyAccountSettings to configure
  *
  * Creates a new IRC account widget to configure a given #EmpathyAccount
  *
  * Returns: The toplevel container of the configuration widget
  */
 GtkWidget *
-empathy_account_widget_irc_new (EmpathyAccount *account)
+empathy_account_widget_irc_new (EmpathyAccountSettings *account_settings)
 {
   EmpathyAccountWidgetIrc *settings;
   gchar *dir, *user_file_with_path, *global_file_with_path;
   GtkBuilder *gui;
+  GtkWidget *widget;
   GtkListStore *store;
   GtkCellRenderer *renderer;
   gchar *filename;
 
   settings = g_slice_new0 (EmpathyAccountWidgetIrc);
-  settings->account = g_object_ref (account);
+  settings->settings = g_object_ref (account_settings);
 
   dir = g_build_filename (g_get_user_config_dir (), PACKAGE_NAME, NULL);
   g_mkdir_with_parents (dir, S_IRUSR | S_IWUSR | S_IXUSR);
@@ -456,7 +455,8 @@ empathy_account_widget_irc_new (EmpathyAccount *account)
   filename = empathy_file_lookup ("empathy-account-widget-irc.ui",
       "libempathy-gtk");
   gui = empathy_builder_get_file (filename,
-      "vbox_irc_settings", &settings->vbox_settings,
+      "vbox_irc", &widget,
+      "table_irc_settings", &settings->vbox_settings,
       "combobox_network", &settings->combobox_network,
       NULL);
   g_free (filename);
@@ -483,7 +483,7 @@ empathy_account_widget_irc_new (EmpathyAccount *account)
 
   account_widget_irc_setup (settings);
 
-  empathy_account_widget_handle_params (account, gui,
+  empathy_account_widget_handle_params (account_settings, gui,
       "entry_nick", "account",
       "entry_fullname", "fullname",
       "entry_password", "password",
@@ -491,14 +491,19 @@ empathy_account_widget_irc_new (EmpathyAccount *account)
       NULL);
 
   empathy_builder_connect (gui, settings,
-      "vbox_irc_settings", "destroy", account_widget_irc_destroy_cb,
-      "button_network", "clicked", account_widget_irc_button_edit_network_clicked_cb,
-      "button_add_network", "clicked", account_widget_irc_button_add_network_clicked_cb,
-      "button_remove_network", "clicked", account_widget_irc_button_remove_clicked_cb,
-      "combobox_network", "changed", account_widget_irc_combobox_network_changed_cb,
+      "table_irc_settings", "destroy", account_widget_irc_destroy_cb,
+      "button_network", "clicked",
+          account_widget_irc_button_edit_network_clicked_cb,
+      "button_add_network", "clicked",
+          account_widget_irc_button_add_network_clicked_cb,
+      "button_remove_network", "clicked",
+          account_widget_irc_button_remove_clicked_cb,
+      "combobox_network", "changed",
+          account_widget_irc_combobox_network_changed_cb,
       NULL);
 
   empathy_account_widget_set_default_focus (gui, "entry_nick");
+  empathy_account_widget_add_apply_button (account_settings, widget);
 
-  return empathy_builder_unref_and_keep_widget (gui, settings->vbox_settings);
+  return empathy_builder_unref_and_keep_widget (gui, widget);
 }