#include <string.h>
#include <sys/stat.h>
-#include <glib/gi18n.h>
+#include <glib/gi18n-lib.h>
#include <gtk/gtk.h>
-#include <glade/glade.h>
-
-#include <libmissioncontrol/mc-account.h>
-#include <libmissioncontrol/mc-protocol.h>
#include <libempathy/empathy-utils.h>
-#include <libempathy/empathy-debug.h>
#include <libempathy/empathy-irc-network-manager.h>
#include "empathy-irc-network-dialog.h"
#include "empathy-account-widget.h"
+#include "empathy-account-widget-private.h"
#include "empathy-account-widget-irc.h"
#include "empathy-ui-utils.h"
-#define DEBUG_DOMAIN "AccountWidgetIRC"
+#define DEBUG_FLAG EMPATHY_DEBUG_ACCOUNT | EMPATHY_DEBUG_IRC
+#include <libempathy/empathy-debug.h>
#define IRC_NETWORKS_FILENAME "irc-networks.xml"
typedef struct {
- McAccount *account;
+ EmpathyAccountWidget *self;
EmpathyIrcNetworkManager *network_manager;
GtkWidget *vbox_settings;
GtkWidget *combobox_network;
- GtkWidget *button_add_network;
- GtkWidget *button_network;
- GtkWidget *button_remove;
} EmpathyAccountWidgetIrc;
enum {
EmpathyAccountWidgetIrc *settings)
{
g_object_unref (settings->network_manager);
- g_object_unref (settings->account);
g_slice_free (EmpathyAccountWidgetIrc, settings);
}
static void
unset_server_params (EmpathyAccountWidgetIrc *settings)
{
- empathy_debug (DEBUG_DOMAIN, "Unset server, port and use-ssl");
- mc_account_unset_param (settings->account, "server");
- mc_account_unset_param (settings->account, "port");
- mc_account_unset_param (settings->account, "use-ssl");
+ EmpathyAccountSettings *ac_settings;
+
+ g_object_get (settings->self, "settings", &ac_settings, NULL);
+ DEBUG ("Unset server, port and use-ssl");
+ empathy_account_settings_unset (ac_settings, "server");
+ empathy_account_settings_unset (ac_settings, "port");
+ empathy_account_settings_unset (ac_settings, "use-ssl");
}
static void
EmpathyIrcNetwork *network;
GSList *servers;
gchar *charset;
+ EmpathyAccountSettings *ac_settings;
+
+ g_object_get (settings->self, "settings", &ac_settings, NULL);
if (!gtk_combo_box_get_active_iter (
GTK_COMBO_BOX (settings->combobox_network), &iter))
g_assert (network != NULL);
g_object_get (network, "charset", &charset, NULL);
- empathy_debug (DEBUG_DOMAIN, "Setting charset to %s", charset);
- mc_account_set_param_string (settings->account, "charset", charset);
+ DEBUG ("Setting charset to %s", charset);
+ empathy_account_settings_set_string (ac_settings, "charset", charset);
g_free (charset);
servers = empathy_irc_network_get_servers (network);
"ssl", &ssl,
NULL);
- empathy_debug (DEBUG_DOMAIN, "Setting server to %s", address);
- mc_account_set_param_string (settings->account, "server", address);
- empathy_debug (DEBUG_DOMAIN, "Setting port to %u", port);
- mc_account_set_param_int (settings->account, "port", port);
- empathy_debug (DEBUG_DOMAIN, "Setting use-ssl to %s",
- ssl ? "TRUE": "FALSE" );
- mc_account_set_param_boolean (settings->account, "use-ssl", ssl);
+ DEBUG ("Setting server to %s", address);
+ empathy_account_settings_set_string (ac_settings, "server", address);
+ DEBUG ("Setting port to %u", port);
+ empathy_account_settings_set_uint32 (ac_settings, "port", port);
+ DEBUG ("Setting use-ssl to %s", ssl ? "TRUE": "FALSE" );
+ empathy_account_settings_set_boolean (ac_settings, "use-ssl", ssl);
g_free (address);
}
g_assert (network != NULL);
g_object_get (network, "name", &name, NULL);
- empathy_debug (DEBUG_DOMAIN, "Remove network %s", name);
+ DEBUG ("Remove network %s", name);
gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
empathy_irc_network_manager_remove (settings->network_manager, network);
EmpathyAccountWidgetIrc *settings)
{
update_server_params (settings);
+ empathy_account_widget_changed (settings->self);
}
static void
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;
+ EmpathyAccountSettings *ac_settings;
+
+ g_object_get (settings->self, "settings", &ac_settings, NULL);
- mc_account_get_param_string (settings->account, "account", &nick);
- mc_account_get_param_string (settings->account, "fullname", &fullname);
- mc_account_get_param_string (settings->account, "server", &server);
- mc_account_get_param_string (settings->account, "charset", &charset);
- mc_account_get_param_int (settings->account, "port", &port);
- mc_account_get_param_boolean (settings->account, "use-ssl", &ssl);
+ nick = empathy_account_settings_get_string (ac_settings, "account");
+ fullname = empathy_account_settings_get_string (ac_settings,
+ "fullname");
+ server = empathy_account_settings_get_string (ac_settings, "server");
+ charset = empathy_account_settings_get_string (ac_settings, "charset");
+ port = empathy_account_settings_get_uint32 (ac_settings, "port");
+ ssl = empathy_account_settings_get_boolean (ac_settings, "use-ssl");
if (!nick)
{
nick = g_strdup (g_get_user_name ());
- mc_account_set_param_string (settings->account, "account", nick);
+ empathy_account_settings_set_string (ac_settings,
+ "account", nick);
}
if (!fullname)
{
fullname = g_strdup (nick);
}
- mc_account_set_param_string (settings->account, "fullname", fullname);
+ empathy_account_settings_set_string (ac_settings,
+ "fullname", fullname);
}
if (server != NULL)
g_object_set (network, "charset", charset, NULL);
g_object_get (network, "name", &name, NULL);
- empathy_debug (DEBUG_DOMAIN, "Account use network %s", name);
+ DEBUG ("Account use network %s", name);
g_free (name);
}
EmpathyIrcServer *srv;
GtkTreeIter iter;
- empathy_debug (DEBUG_DOMAIN, "Create a network %s", server);
+ DEBUG ("Create a network %s", server);
network = empathy_irc_network_new (server);
srv = empathy_irc_server_new (server, port, ssl);
fill_networks_model (settings, network);
-
- g_free (nick);
- g_free (fullname);
- g_free (server);
- g_free (charset);
}
-/**
- * empathy_account_widget_irc_new:
- * @account: the #McAccount to configure
- *
- * Creates a new IRC account widget to configure a given #McAccount
- *
- * Returns: The toplevel container of the configuration widget
- */
-GtkWidget *
-empathy_account_widget_irc_new (McAccount *account)
+void
+empathy_account_widget_irc_build (EmpathyAccountWidget *self,
+ const char *filename,
+ GtkWidget **table_common_settings)
{
EmpathyAccountWidgetIrc *settings;
gchar *dir, *user_file_with_path, *global_file_with_path;
- GladeXML *glade;
GtkListStore *store;
GtkCellRenderer *renderer;
settings = g_slice_new0 (EmpathyAccountWidgetIrc);
- settings->account = g_object_ref (account);
+ settings->self = self;
- dir = g_build_filename (g_get_home_dir (), ".gnome2", PACKAGE_NAME, NULL);
+ dir = g_build_filename (g_get_user_config_dir (), PACKAGE_NAME, NULL);
g_mkdir_with_parents (dir, S_IRUSR | S_IWUSR | S_IXUSR);
user_file_with_path = g_build_filename (dir, IRC_NETWORKS_FILENAME, NULL);
g_free (dir);
g_free (global_file_with_path);
g_free (user_file_with_path);
- glade = empathy_glade_get_file ("empathy-account-widget-irc.glade",
- "vbox_irc_settings",
- NULL,
- "vbox_irc_settings", &settings->vbox_settings,
+ self->ui_details->gui = empathy_builder_get_file (filename,
+ "table_irc_settings", table_common_settings,
+ "vbox_irc", &self->ui_details->widget,
+ "table_irc_settings", &settings->vbox_settings,
"combobox_network", &settings->combobox_network,
- "button_network", &settings->button_network,
- "button_add_network", &settings->button_add_network,
- "button_remove", &settings->button_remove,
NULL);
/* Fill the networks combobox */
store = gtk_list_store_new (2, G_TYPE_OBJECT, G_TYPE_STRING);
- gtk_cell_layout_clear (GTK_CELL_LAYOUT (settings->combobox_network));
+ gtk_cell_layout_clear (GTK_CELL_LAYOUT (settings->combobox_network));
renderer = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (settings->combobox_network),
renderer, TRUE);
account_widget_irc_setup (settings);
- empathy_account_widget_handle_params (account, glade,
+ empathy_account_widget_handle_params (self,
"entry_nick", "account",
"entry_fullname", "fullname",
"entry_password", "password",
"entry_quit_message", "quit-message",
NULL);
- empathy_glade_connect (glade, 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", "clicked", account_widget_irc_button_remove_clicked_cb,
- "combobox_network", "changed", account_widget_irc_combobox_network_changed_cb,
+ empathy_builder_connect (self->ui_details->gui, settings,
+ "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);
- g_object_unref (glade);
-
- return settings->vbox_settings;
+ self->ui_details->default_focus = g_strdup ("entry_nick");
}