#include <gtk/gtk.h>
#include <glib/gi18n-lib.h>
-#ifdef HAVE_MEEGO
-#include <mx-gtk/mx-gtk.h>
-#endif /* HAVE_MEEGO */
#include <gio/gdesktopappinfo.h>
#include <libempathy/empathy-utils.h>
static ServiceInfo services_infos[N_SERVICES] = {
{ "label_username_example", TRUE },
- { "label_username_g_example", TRUE },
+ { "label_username_g_example", FALSE },
{ "label_username_f_example", FALSE },
};
typedef struct {
EmpathyAccountSettings *settings;
- GtkWidget *table_common_settings;
+ GtkWidget *grid_common_settings;
GtkWidget *apply_button;
GtkWidget *cancel_button;
GtkWidget *entry_password;
GtkWidget *spinbutton_port;
- GtkWidget *enabled_checkbox;
GtkWidget *radiobutton_reuse;
gboolean simple;
#define ALPHADIGITDASHS "(["ALPHADIGITDASH"]*)"
#define HOSTNUMBER "("DIGITS"\\."DIGITS"\\."DIGITS"\\."DIGITS")"
-#define TOPLABEL ALPHAS"|(["ALPHA"]" ALPHADIGITDASHS "["ALPHADIGIT"])"
-#define DOMAINLABEL ALPHADIGITS"|(["ALPHADIGIT"]" ALPHADIGITDASHS \
- "["ALPHADIGIT"])"
+#define TOPLABEL "("ALPHAS \
+ "| (["ALPHA"]"ALPHADIGITDASHS "["ALPHADIGIT"]))"
+#define DOMAINLABEL "("ALPHADIGITS"|(["ALPHADIGIT"]" ALPHADIGITDASHS \
+ "["ALPHADIGIT"]))"
#define HOSTNAME "((" DOMAINLABEL "\\.)+" TOPLABEL ")"
/* Based on http://www.ietf.org/rfc/rfc1738.txt (section 5) */
#define HOST "("HOSTNAME "|" HOSTNUMBER")"
/* Based on http://www.ietf.org/rfc/rfc2812.txt (section 2.3.1) */
#define IRC_SPECIAL "_\\[\\]{}\\\\|`^"
-#define IRC_USER_NAME "(["ALPHA IRC_SPECIAL"]["ALPHADIGITDASH IRC_SPECIAL"]*)"
+#define IRC_NICK_NAME "(["ALPHA IRC_SPECIAL"]["ALPHADIGITDASH IRC_SPECIAL"]*)"
+/* user = 1*( %x01-09 / %x0B-0C / %x0E-1F / %x21-3F / %x41-FF )
+ * ; any octet except NUL, CR, LF, " " and "@"
+ *
+ * so technically, like so many other places in IRC, we should be using arrays
+ * of bytes here rather than UTF-8 strings. Life: too short. In practice this
+ * will always be ASCII.
+ */
+#define IRC_USER_NAME "([^\r\n@ ])+"
+
/* Based on http://www.ietf.org/rfc/rfc4622.txt (section 2.2)
* We just exclude invalid characters to avoid ucschars and other redundant
* complexity */
* http://www.hypothetic.org/docs/msn/general/names.php */
#define MSN_USER_NAME EMAIL_LOCALPART
/* Based on the official help:
- * http://help.yahoo.com/l/us/yahoo/edit/registration/edit-01.html */
-#define YAHOO_USER_NAME "(["ALPHA"]["ALPHADIGIT"_\\.]{3,31})"
+ * http://help.yahoo.com/l/us/yahoo/edit/registration/edit-01.html
+ * Looks like an email address can be used as well (bgo #655959)
+ * */
+#define YAHOO_USER_NAME "(["ALPHA"]["ALPHADIGIT"_\\.]{3,31})|("EMAIL_LOCALPART"@"HOST")"
#define ACCOUNT_REGEX_ICQ "^"ICQ_USER_NAME"$"
-#define ACCOUNT_REGEX_IRC "^"IRC_USER_NAME"$"
+#define ACCOUNT_REGEX_IRC "^"IRC_NICK_NAME"$"
+#define USERNAME_REGEX_IRC "^"IRC_USER_NAME"$"
#define ACCOUNT_REGEX_JABBER "^"JABBER_USER_NAME"@"HOST"$"
#define ACCOUNT_REGEX_MSN "^"MSN_USER_NAME"@"HOST"$"
#define ACCOUNT_REGEX_YAHOO "^"YAHOO_USER_NAME"$"
{
DEBUG ("Unknown type of widget for param %s", param_name);
}
+
+ gtk_widget_set_sensitive (widget,
+ empathy_account_settings_param_is_supported (priv->settings, param_name));
}
static GHashTable *
static void
accounts_widget_generic_setup (EmpathyAccountWidget *self,
- GtkWidget *table_common_settings,
- GtkWidget *table_advanced_settings)
+ GtkWidget *grid_common_settings,
+ GtkWidget *grid_advanced_settings)
{
TpConnectionManagerParam *params, *param;
EmpathyAccountWidgetPriv *priv = GET_PRIV (self);
+ guint row_common = 0, row_advanced = 0;
params = empathy_account_settings_get_tp_params (priv->settings);
for (param = params; param != NULL && param->name != NULL; param++)
{
- GtkWidget *table_settings;
- guint n_rows = 0;
+ GtkWidget *grid_settings;
+ guint row;
GtkWidget *widget = NULL;
gchar *param_name_formatted;
if (param->flags & TP_CONN_MGR_PARAM_FLAG_REQUIRED)
- table_settings = table_common_settings;
+ {
+ grid_settings = grid_common_settings;
+ row = row_common++;
+ }
else if (priv->simple)
- return;
+ {
+ return;
+ }
else
- table_settings = table_advanced_settings;
+ {
+ grid_settings = grid_advanced_settings;
+ row = row_advanced++;
+ }
param_name_formatted = account_widget_generic_format_param_name
(param->name);
- g_object_get (table_settings, "n-rows", &n_rows, NULL);
- gtk_table_resize (GTK_TABLE (table_settings), ++n_rows, 2);
if (param->dbus_signature[0] == 's')
{
gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5);
g_free (str);
- gtk_table_attach (GTK_TABLE (table_settings),
- widget,
- 0, 1,
- n_rows - 1, n_rows,
- GTK_FILL, 0,
- 0, 0);
+ gtk_grid_attach (GTK_GRID (grid_settings),
+ widget, 0, row, 1, 1);
+
gtk_widget_show (widget);
widget = gtk_entry_new ();
G_CALLBACK (gtk_widget_grab_focus),
NULL);
}
- gtk_table_attach (GTK_TABLE (table_settings),
- widget,
- 1, 2,
- n_rows - 1, n_rows,
- GTK_FILL | GTK_EXPAND, 0,
- 0, 0);
+
+ gtk_grid_attach (GTK_GRID (grid_settings),
+ widget, 1, row, 1, 1);
+
gtk_widget_show (widget);
}
/* int types: ynqiuxt. double type is 'd' */
gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5);
g_free (str);
- gtk_table_attach (GTK_TABLE (table_settings),
- widget,
- 0, 1,
- n_rows - 1, n_rows,
- GTK_FILL, 0,
- 0, 0);
+ gtk_grid_attach (GTK_GRID (grid_settings),
+ widget, 0, row, 1, 1);
gtk_widget_show (widget);
widget = gtk_spin_button_new_with_range (minint, maxint, step);
- gtk_table_attach (GTK_TABLE (table_settings),
- widget,
- 1, 2,
- n_rows - 1, n_rows,
- GTK_FILL | GTK_EXPAND, 0,
- 0, 0);
+ gtk_grid_attach (GTK_GRID (grid_settings),
+ widget, 1, row, 1, 1);
gtk_widget_show (widget);
}
else if (param->dbus_signature[0] == 'b')
{
widget = gtk_check_button_new_with_label (param_name_formatted);
- gtk_table_attach (GTK_TABLE (table_settings),
- widget,
- 0, 2,
- n_rows - 1, n_rows,
- GTK_FILL | GTK_EXPAND, 0,
- 0, 0);
+ gtk_grid_attach (GTK_GRID (grid_settings),
+ widget, 0, row, 2, 1);
gtk_widget_show (widget);
}
else
account_widget_account_enabled_cb, widget);
g_signal_emit (widget, signals[ACCOUNT_CREATED], 0, account);
}
- else if (priv->enabled_checkbox != NULL)
+ else
{
- gboolean enabled_checked;
-
- enabled_checked =
-#ifdef HAVE_MEEGO
- mx_gtk_light_switch_get_active (
- MX_GTK_LIGHT_SWITCH (priv->enabled_checkbox));
-#else
- gtk_toggle_button_get_active (
- GTK_TOGGLE_BUTTON (priv->enabled_checkbox));
-#endif /* HAVE_MEEGO */
-
/* If the account was offline, we always want to try reconnecting,
* to give it a chance to connect if the previous params were wrong.
* tp_account_reconnect_async() won't do anything if the requested
reconnect_required = TRUE;
if (reconnect_required && tp_account_is_enabled (account)
- && enabled_checked)
+ && tp_account_is_enabled (account))
{
/* After having applied changes to a user account, we
* reconnect it if needed. This is done so the new
static void
account_widget_setup_generic (EmpathyAccountWidget *self)
{
- GtkWidget *table_common_settings;
- GtkWidget *table_advanced_settings;
+ GtkWidget *grid_common_settings;
+ GtkWidget *grid_advanced_settings;
- table_common_settings = GTK_WIDGET (gtk_builder_get_object
- (self->ui_details->gui, "table_common_settings"));
- table_advanced_settings = GTK_WIDGET (gtk_builder_get_object
- (self->ui_details->gui, "table_advanced_settings"));
+ grid_common_settings = GTK_WIDGET (gtk_builder_get_object
+ (self->ui_details->gui, "grid_common_settings"));
+ grid_advanced_settings = GTK_WIDGET (gtk_builder_get_object
+ (self->ui_details->gui, "grid_advanced_settings"));
- accounts_widget_generic_setup (self, table_common_settings,
- table_advanced_settings);
+ accounts_widget_generic_setup (self, grid_common_settings,
+ grid_advanced_settings);
g_object_unref (self->ui_details->gui);
}
GtkWidget *expander_advanced;
self->ui_details->gui = empathy_builder_get_file (filename,
- "table_common_settings", &priv->table_common_settings,
+ "grid_common_settings", &priv->grid_common_settings,
"vbox_generic_settings", &self->ui_details->widget,
"expander_advanced_settings", &expander_advanced,
NULL);
static void
account_widget_launch_external_clicked (GtkWidget *button,
TpAccount *account)
+{
+ GdkAppLaunchContext *context = NULL;
+ GdkDisplay *display;
+ GAppInfo *app_info;
+ GError *error = NULL;
+
+ app_info = g_object_get_data (G_OBJECT (button), "app-info");
+
+ g_return_if_fail (G_IS_APP_INFO (app_info));
+
+ display = gdk_display_get_default ();
+ context = gdk_display_get_app_launch_context (display);
+
+ if (!g_app_info_launch (app_info, NULL, (GAppLaunchContext *) context,
+ &error))
+ {
+ g_critical ("Failed to bisho: %s", error->message);
+ g_clear_error (&error);
+ }
+}
+
+static void
+account_widget_launch_external_clicked_meego (GtkWidget *button,
+ TpAccount *account)
{
if (!tp_strdiff (tp_account_get_storage_provider (account),
"com.meego.libsocialweb"))
TpAccount *account = empathy_account_settings_get_account (settings);
GtkWidget *bar, *widget;
gchar *str;
+ const gchar *provider, *name = NULL;
+ GDesktopAppInfo *desktop_info = NULL;
- self->ui_details->widget = gtk_vbox_new (FALSE, 6);
- priv->table_common_settings = gtk_table_new (1, 2, FALSE);
+ self->ui_details->widget = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
+ priv->grid_common_settings = gtk_grid_new ();
- if (!tp_strdiff (tp_account_get_storage_provider (account),
- "com.meego.libsocialweb"))
+ provider = tp_account_get_storage_provider (account);
+
+ if (!tp_strdiff (provider, "com.meego.libsocialweb"))
+ {
+ name = _("My Web Accounts");
+ }
+ else if (!tp_strdiff (provider, "org.gnome.OnlineAccounts"))
+ {
+ /* FIXME: we should publish the .desktop file in some general way */
+ desktop_info = g_desktop_app_info_new (
+ "gnome-online-accounts-panel.desktop");
+
+ if (desktop_info == NULL)
+ g_critical ("Could not locate 'gnome-online-accounts-panel.desktop'");
+ else
+ name = g_app_info_get_name (G_APP_INFO (desktop_info));
+ }
+
+ if (name != NULL)
{
- /* we know how to handle this external provider */
str = g_strdup_printf (
- _("The account %s is edited via My Web Accounts."),
- empathy_account_settings_get_display_name (settings));
+ _("The account %s is edited via %s."),
+ empathy_account_settings_get_display_name (settings), name);
}
else
{
widget);
gtk_container_set_border_width (GTK_CONTAINER (bar), 6);
- if (!tp_strdiff (tp_account_get_storage_provider (account),
- "com.meego.libsocialweb"))
+ if (!tp_strdiff (provider, "com.meego.libsocialweb"))
{
/* we know how to handle this external provider */
widget = gtk_info_bar_add_button (GTK_INFO_BAR (bar),
_("Launch My Web Accounts"), RESPONSE_LAUNCH);
+ g_signal_connect (widget, "clicked",
+ G_CALLBACK (account_widget_launch_external_clicked_meego), account);
+ }
+ else if (desktop_info != NULL)
+ {
+ /* general handler */
+ str = g_strdup_printf (_("Edit %s"), name);
+
+ widget = gtk_info_bar_add_button (GTK_INFO_BAR (bar),
+ str, RESPONSE_LAUNCH);
+
+ g_object_set_data_full (G_OBJECT (widget), "app-info",
+ g_object_ref (desktop_info), g_object_unref);
+
g_signal_connect (widget, "clicked",
G_CALLBACK (account_widget_launch_external_clicked), account);
+
+ g_free (str);
}
gtk_box_pack_start (GTK_BOX (self->ui_details->widget), bar,
FALSE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (self->ui_details->widget),
- priv->table_common_settings, FALSE, TRUE, 0);
+ priv->grid_common_settings, FALSE, TRUE, 0);
gtk_widget_show_all (self->ui_details->widget);
+
+ tp_clear_object (&desktop_info);
}
static void
GtkWidget *expander_advanced;
self->ui_details->gui = empathy_builder_get_file (filename,
- "table_common_settings", &priv->table_common_settings,
+ "grid_common_settings", &priv->grid_common_settings,
"vbox_salut_settings", &self->ui_details->widget,
"expander_advanced_settings", &expander_advanced,
NULL);
empathy_account_settings_set_regex (priv->settings, "account",
ACCOUNT_REGEX_IRC);
+ empathy_account_settings_set_regex (priv->settings, "username",
+ USERNAME_REGEX_IRC);
if (priv->simple)
{
else
{
priv->irc_network_chooser = empathy_account_widget_irc_build (self,
- filename, &priv->table_common_settings);
+ filename, &priv->grid_common_settings);
}
}
{
EmpathyAccountWidgetPriv *priv = GET_PRIV (self);
empathy_account_widget_sip_build (self, filename,
- &priv->table_common_settings);
+ &priv->grid_common_settings);
if (priv->simple)
{
else
{
self->ui_details->gui = empathy_builder_get_file (filename,
- "table_common_msn_settings", &priv->table_common_settings,
+ "grid_common_msn_settings", &priv->grid_common_settings,
"vbox_msn_settings", &self->ui_details->widget,
NULL);
/* Full widget for XMPP, Google Talk and Facebook*/
self->ui_details->gui = empathy_builder_get_file (filename,
- "table_common_settings", &priv->table_common_settings,
+ "grid_common_settings", &priv->grid_common_settings,
"vbox_jabber_settings", &self->ui_details->widget,
"spinbutton_port", &spinbutton_port,
"checkbutton_ssl", &checkbutton_ssl,
else
{
self->ui_details->gui = empathy_builder_get_file (filename,
- "table_common_settings", &priv->table_common_settings,
+ "grid_common_settings", &priv->grid_common_settings,
"vbox_icq_settings", &self->ui_details->widget,
"spinbutton_port", &spinbutton_port,
NULL);
else
{
self->ui_details->gui = empathy_builder_get_file (filename,
- "table_common_settings", &priv->table_common_settings,
+ "grid_common_settings", &priv->grid_common_settings,
"vbox_aim_settings", &self->ui_details->widget,
"spinbutton_port", &spinbutton_port,
NULL);
else
{
self->ui_details->gui = empathy_builder_get_file (filename,
- "table_common_settings", &priv->table_common_settings,
+ "grid_common_settings", &priv->grid_common_settings,
"vbox_yahoo_settings", &self->ui_details->widget,
NULL);
else
{
self->ui_details->gui = empathy_builder_get_file (filename,
- "table_common_groupwise_settings", &priv->table_common_settings,
+ "grid_common_groupwise_settings", &priv->grid_common_settings,
"vbox_groupwise_settings", &self->ui_details->widget,
NULL);
g_object_unref (self);
}
-static void
-empathy_account_widget_enabled_cb (TpAccount *account,
- GParamSpec *spec,
- gpointer user_data)
-{
- EmpathyAccountWidget *widget = EMPATHY_ACCOUNT_WIDGET (user_data);
- EmpathyAccountWidgetPriv *priv = GET_PRIV (widget);
- gboolean enabled = tp_account_is_enabled (account);
-
- if (priv->enabled_checkbox != NULL)
- {
-#ifdef HAVE_MEEGO
- mx_gtk_light_switch_set_active (
- MX_GTK_LIGHT_SWITCH (priv->enabled_checkbox),
- enabled);
-#else
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->enabled_checkbox),
- enabled);
-#endif /* HAVE_MEEGO */
- }
-}
-
-static void
-#ifdef HAVE_MEEGO
-account_widget_switch_flipped_cb (MxGtkLightSwitch *sw,
- gboolean state,
- gpointer user_data)
-#else
-account_widget_enabled_toggled_cb (GtkToggleButton *toggle_button,
- gpointer user_data)
-#endif /* HAVE_MEEGO */
-{
- EmpathyAccountWidgetPriv *priv = GET_PRIV (user_data);
- TpAccount *account;
-#ifndef HAVE_MEEGO
- gboolean state;
-
- state = gtk_toggle_button_get_active (toggle_button);
-#endif /* HAVE_MEEGO */
-
- account = empathy_account_settings_get_account (priv->settings);
-
- /* Enable the account according to the value of the "Enabled" checkbox */
- /* workaround to keep widget alive during async call */
- g_object_ref (user_data);
- tp_account_set_enabled_async (account, state,
- account_widget_account_enabled_cb, user_data);
-}
-
void
empathy_account_widget_set_other_accounts_exist (EmpathyAccountWidget *self,
gboolean others_exist)
GError *error = NULL;
TpConnectionPresenceType state;
- if (!tp_account_manager_prepare_finish (account_manager, result, &error))
+ if (!tp_proxy_prepare_finish (account_manager, result, &error))
{
DEBUG ("Failed to prepare account manager: %s", error->message);
g_error_free (error);
{ #cm, #proto, "empathy-account-widget-"#proto".ui", \
account_widget_build_##proto }
-static void
-add_enable_checkbox (EmpathyAccountWidget *self,
- TpAccount *account)
-{
- EmpathyAccountWidgetPriv *priv = GET_PRIV (self);
-#ifdef HAVE_MEEGO
- GtkWidget *w;
-#else
- GtkWidget *vbox = self->ui_details->widget;
-#endif /* HAVE_MEEGO */
- guint nb_rows, nb_columns;
- gboolean is_enabled;
-
- /* handle the "Enabled" checkbox. We only add it when modifying an account */
- if (priv->creating_account || priv->table_common_settings == NULL)
- return;
-
- is_enabled = tp_account_is_enabled (account);
-
-#ifdef HAVE_MEEGO
- w = gtk_label_new (_("Account:"));
- gtk_misc_set_alignment (GTK_MISC (w), 0, 0.5);
-
- priv->enabled_checkbox = mx_gtk_light_switch_new ();
-
- mx_gtk_light_switch_set_active (
- MX_GTK_LIGHT_SWITCH (priv->enabled_checkbox), is_enabled);
-
- gtk_widget_show (w);
-#else
- /* translators: this is the label of a checkbox used to enable/disable IM
- * accounts */
- priv->enabled_checkbox =
- gtk_check_button_new_with_mnemonic (_("_Enabled"));
-
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->enabled_checkbox),
- is_enabled);
-#endif /* HAVE_MEEGO */
-
- g_object_get (priv->table_common_settings, "n-rows", &nb_rows,
- "n-columns", &nb_columns, NULL);
-
- gtk_table_resize (GTK_TABLE (priv->table_common_settings), ++nb_rows,
- nb_columns);
-
-#ifdef HAVE_MEEGO
- gtk_table_attach (GTK_TABLE (priv->table_common_settings),
- w,
- 0, 1, nb_rows - 1, nb_rows,
- GTK_FILL, 0, 0, 0);
- gtk_table_attach (GTK_TABLE (priv->table_common_settings),
- priv->enabled_checkbox,
- 1, nb_columns, nb_rows - 1, nb_rows,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
-#else
- gtk_box_pack_start (GTK_BOX (vbox), priv->enabled_checkbox, FALSE, FALSE, 0);
- gtk_box_reorder_child (GTK_BOX (vbox), priv->enabled_checkbox, 0);
-#endif /* HAVE_MEEGO */
-
- gtk_widget_show (priv->enabled_checkbox);
-
-#ifdef HAVE_MEEGO
- g_signal_connect (G_OBJECT (priv->enabled_checkbox), "switch-flipped",
- G_CALLBACK (account_widget_switch_flipped_cb), self);
-#else
- g_signal_connect (G_OBJECT (priv->enabled_checkbox), "toggled",
- G_CALLBACK (account_widget_enabled_toggled_cb), self);
-#endif /* HAVE_MEEGO */
-}
-
#ifndef HAVE_MEEGO
/* Meego doesn't support registration */
static void
/* The password might not have been retrieved from the
* keyring yet. We should update the remember password
* toggle button and the password entry when/if it is. */
- g_signal_connect (priv->settings, "password-retrieved",
- G_CALLBACK (account_settings_password_retrieved_cb), self);
+ tp_g_signal_connect_object (priv->settings, "password-retrieved",
+ G_CALLBACK (account_settings_password_retrieved_cb), self, 0);
}
g_signal_connect (priv->remember_password_widget, "toggled",
priv->account_manager = tp_account_manager_dup ();
g_object_ref (self);
- tp_account_manager_prepare_async (priv->account_manager, NULL,
+ tp_proxy_prepare_async (priv->account_manager, NULL,
account_manager_ready_cb, self);
/* handle apply and cancel button */
!(storage_restrictions &
TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_PARAMETERS))
{
- GtkWidget *hbox = gtk_hbox_new (TRUE, 3);
+ GtkWidget *hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
GtkWidget *image;
+ gtk_box_set_homogeneous (hbox, TRUE);
+
/* We can't use the stock button as its accelerator ('C') clashes with
* the Close button. */
priv->cancel_button = gtk_button_new ();
account_widget_set_control_buttons_sensitivity (self, FALSE);
}
- if (account != NULL)
- {
- g_signal_connect (account, "notify::enabled",
- G_CALLBACK (empathy_account_widget_enabled_cb), self);
- }
-
#ifndef HAVE_MEEGO
add_register_buttons (self, account);
#endif /* HAVE_MEEGO */
- /* add the Enable checkbox to accounts that support it */
- if (!(storage_restrictions & TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_ENABLED))
- add_enable_checkbox (self, account);
-
/* hook up to widget destruction to unref ourselves */
g_signal_connect (self->ui_details->widget, "destroy",
G_CALLBACK (account_widget_destroy_cb), self);
if (priv->settings != NULL)
{
- TpAccount *account;
- account = empathy_account_settings_get_account (priv->settings);
-
- if (account != NULL)
- {
- g_signal_handlers_disconnect_by_func (account,
- empathy_account_widget_enabled_cb, self);
- }
-
g_object_unref (priv->settings);
priv->settings = NULL;
}
signals[HANDLE_APPLY] =
g_signal_new ("handle-apply", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
- g_cclosure_marshal_VOID__BOOLEAN,
+ g_cclosure_marshal_generic,
G_TYPE_NONE,
1, G_TYPE_BOOLEAN);
signals[ACCOUNT_CREATED] =
g_signal_new ("account-created", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
+ g_cclosure_marshal_generic,
G_TYPE_NONE,
1, G_TYPE_OBJECT);
signals[CANCELLED] =
g_signal_new ("cancelled", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
+ g_cclosure_marshal_generic,
G_TYPE_NONE,
0);
default_display_name = g_strdup_printf (_("%1$s on %2$s"),
login_id, empathy_irc_network_get_name (network));
}
- else if (service == FACEBOOK_SERVICE)
+ else if (service == FACEBOOK_SERVICE && priv->jid_suffix != NULL)
{
gchar *tmp;
gtk_entry_set_text (GTK_ENTRY (priv->param_password_widget), account);
}
+
+EmpathyAccountSettings *
+empathy_account_widget_get_settings (EmpathyAccountWidget *self)
+{
+ EmpathyAccountWidgetPriv *priv = GET_PRIV (self);
+
+ return priv->settings;
+}