static void update_server_params (EmpathyIrcNetworkChooser *self) { EmpathyIrcNetworkChooserPriv *priv = GET_PRIV (self); GSList *servers; const gchar *charset; g_assert (priv->network != NULL); charset = empathy_irc_network_get_charset (priv->network); DEBUG ("Setting charset to %s", charset); empathy_account_settings_set_string (priv->settings, "charset", charset); servers = empathy_irc_network_get_servers (priv->network); if (g_slist_length (servers) > 0) { /* set the first server as CM server */ EmpathyIrcServer *server = servers->data; gchar *address; guint port; gboolean ssl; gchar *service; g_object_get (server, "address", &address, "port", &port, "ssl", &ssl, NULL); DEBUG ("Setting server to %s", address); empathy_account_settings_set_string (priv->settings, "server", address); DEBUG ("Setting port to %u", port); empathy_account_settings_set_uint32 (priv->settings, "port", port); DEBUG ("Setting use-ssl to %s", ssl ? "TRUE": "FALSE" ); empathy_account_settings_set_boolean (priv->settings, "use-ssl", ssl); /* Set Account.Service */ service = dup_network_service (priv->network); DEBUG ("Setting Service to %s", service); empathy_account_settings_set_service (priv->settings, service); g_free (address); g_free (service); } else { /* No server. Unset values */ unset_server_params (self); } g_slist_foreach (servers, (GFunc) g_object_unref, NULL); g_slist_free (servers); }
static void account_widget_int_changed_cb (GtkWidget *widget, EmpathyAccountWidget *self) { const gchar *param_name; gint value; const gchar *signature; EmpathyAccountWidgetPriv *priv = GET_PRIV (self); value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); param_name = g_object_get_data (G_OBJECT (widget), "param_name"); signature = empathy_account_settings_get_dbus_signature (priv->settings, param_name); g_return_if_fail (signature != NULL); DEBUG ("Setting %s to %d", param_name, value); switch ((int)*signature) { case DBUS_TYPE_INT16: case DBUS_TYPE_INT32: empathy_account_settings_set_int32 (priv->settings, param_name, value); break; case DBUS_TYPE_INT64: empathy_account_settings_set_int64 (priv->settings, param_name, value); break; case DBUS_TYPE_UINT16: case DBUS_TYPE_UINT32: empathy_account_settings_set_uint32 (priv->settings, param_name, value); break; case DBUS_TYPE_UINT64: empathy_account_settings_set_uint64 (priv->settings, param_name, value); break; default: g_return_if_reached (); } account_widget_handle_control_buttons_sensitivity (self); }
static void update_server_params (EmpathyAccountWidgetIrc *settings) { GtkTreeIter iter; GtkTreeModel *model; 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)) { unset_server_params (settings); return; } model = gtk_combo_box_get_model (GTK_COMBO_BOX (settings->combobox_network)); gtk_tree_model_get (model, &iter, COL_NETWORK_OBJ, &network, -1); g_assert (network != NULL); g_object_get (network, "charset", &charset, NULL); 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); if (g_slist_length (servers) > 0) { /* set the first server as CM server */ EmpathyIrcServer *server = servers->data; gchar *address; guint port; gboolean ssl; g_object_get (server, "address", &address, "port", &port, "ssl", &ssl, NULL); 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); } else { /* No server. Unset values */ unset_server_params (settings); } g_slist_foreach (servers, (GFunc) g_object_unref, NULL); g_slist_free (servers); g_object_unref (network); }