static void account_widget_irc_combobox_network_changed_cb (GtkWidget *combobox, EmpathyAccountWidgetIrc *settings) { update_server_params (settings); empathy_account_widget_changed (settings->self); }
static void dialog_response_cb (GtkDialog *dialog, gint response, EmpathyIrcNetworkChooser *self) { EmpathyIrcNetworkChooserPriv *priv = GET_PRIV (self); EmpathyIrcNetworkChooserDialog *chooser = EMPATHY_IRC_NETWORK_CHOOSER_DIALOG (priv->dialog); if (response != GTK_RESPONSE_CLOSE && response != GTK_RESPONSE_DELETE_EVENT) return; if (empathy_irc_network_chooser_dialog_get_changed (chooser)) { tp_clear_object (&priv->network); priv->network = g_object_ref ( empathy_irc_network_chooser_dialog_get_network (chooser)); update_server_params (self); set_label (self); g_signal_emit (self, signals[SIG_CHANGED], 0); } gtk_widget_destroy (priv->dialog); priv->dialog = NULL; }
static void set_label_from_settings (EmpathyIrcNetworkChooser *self) { EmpathyIrcNetworkChooserPriv *priv = GET_PRIV (self); const gchar *server; tp_clear_object (&priv->network); server = empathy_account_settings_get_string (priv->settings, "server"); if (server != NULL) { EmpathyIrcServer *srv; gint port; gboolean ssl; priv->network = empathy_irc_network_manager_find_network_by_address ( priv->network_manager, server); if (priv->network != NULL) { /* The network is known */ g_object_ref (priv->network); set_label (self); return; } /* We don't have this network. Let's create it */ port = empathy_account_settings_get_uint32 (priv->settings, "port"); ssl = empathy_account_settings_get_boolean (priv->settings, "use-ssl"); DEBUG ("Create a network %s", server); priv->network = empathy_irc_network_new (server); srv = empathy_irc_server_new (server, port, ssl); empathy_irc_network_append_server (priv->network, srv); empathy_irc_network_manager_add (priv->network_manager, priv->network); set_label (self); g_object_unref (srv); return; } /* Set default network */ priv->network = empathy_irc_network_manager_find_network_by_address ( priv->network_manager, DEFAULT_IRC_NETWORK); g_assert (priv->network != NULL); set_label (self); update_server_params (self); g_object_ref (priv->network); }
static void fill_networks_model (EmpathyAccountWidgetIrc *settings, EmpathyIrcNetwork *network_to_select) { GSList *networks, *l; GtkTreeModel *model; GtkListStore *store; networks = empathy_irc_network_manager_get_networks ( settings->network_manager); model = gtk_combo_box_get_model (GTK_COMBO_BOX (settings->combobox_network)); store = GTK_LIST_STORE (model); for (l = networks; l != NULL; l = g_slist_next (l)) { gchar *name; EmpathyIrcNetwork *network = l->data; GtkTreeIter iter; g_object_get (network, "name", &name, NULL); gtk_list_store_insert_with_values (store, &iter, -1, COL_NETWORK_OBJ, network, COL_NETWORK_NAME, name, -1); if (network == network_to_select) { gtk_combo_box_set_active_iter ( GTK_COMBO_BOX (settings->combobox_network), &iter); } g_free (name); g_object_unref (network); } if (network_to_select == NULL) { /* Select the first network */ GtkTreeIter iter; if (gtk_tree_model_get_iter_first (model, &iter)) { gtk_combo_box_set_active_iter ( GTK_COMBO_BOX (settings->combobox_network), &iter); update_server_params (settings); } } g_slist_free (networks); }
static void irc_network_dialog_destroy_cb (GtkWidget *widget, EmpathyAccountWidgetIrc *settings) { GtkTreeIter iter; GtkTreeModel *model; EmpathyIrcNetwork *network; gchar *name; /* name could be changed */ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (settings->combobox_network), &iter); model = gtk_combo_box_get_model (GTK_COMBO_BOX (settings->combobox_network)); gtk_tree_model_get (model, &iter, COL_NETWORK_OBJ, &network, -1); g_object_get (network, "name", &name, NULL); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COL_NETWORK_NAME, name, -1); update_server_params (settings); g_object_unref (network); g_free (name); }